Про відповідність основній документації.
Solidity¶
Solidity - це, так звана, контрактно-орієнтована, високорівнева мова програмування для написання смарт контрактів (smart contracts). Натхнена такими мовами програмування як C++, Python та JavaScript і розроблена спеціально під віртуальну машину Ethereum (Ethereum Virtual Machine, або EVM).
Solidity статично типізована мова і серед інших функцій, підтримує успадкування (inheritance), бібліотеки та складні, визначені користувачем, типи даних.
Як ви зможете переконатися, Solidity дозволяє створити контракти для голосування, краудфандінгу, чесного аукціону, гаманці з мульти-підписом та багато чого іншого.
Примітка
Напростіший спосіб спробувати Solidity прямо зараз, це скористатися Remix (може довго завантажуватися, будьте терплячі). Remix - це online IDE, що дозволяє писати, деплоїти та запускати смарт контракти мовою Solidity.
Попередження
Програмне забезпечення пишеться людьми, тому не захищене від помилок. Тому, смарт контракти ви повинні писати з використанням добре відомих найкращих практик написання програмного забезпечення. Це code review, тестування, аудит та, так званий, доказ корректності (correctness proofs). Також зауважте, що користувачі програмного забезпечення часто більш впевнені в програмному коді, ніж в його авторі. І останнє, але не меньш важливе, blockchain має власні особливості за якими потрібно уважно стежити при написанні коду, тож прохання звернути увагу на розділ Security Considerations.
Документація іншими мовами¶
Solidity документація перекладена кількома мовами волонтерами DAPP спільноти. Англійська версія найбільш актуальна, та виступає джерелом для перекладу.
- Англійська (основна документація)
- Українська (Бажаєте допомогти з перекладом?)
- Китайська (перекладається)
- Іспанська
- Російська (неактуальна версія)
- Корейська (перекладається)
Корисні лінки¶
Існуючі способи розробки мовою Solidity¶
- Remix
- Online IDE з інтегрованим компілятором та Solidity runtime середовищем, що не потребує серверної частини (працює в браузері).
- Плагін для IntelliJ IDEA
- Плагін Solidity для IntelliJ IDEA (і всіх похідних IDE від JetBrains)
- Розширення для Visual Studio
- Плагін Solidity для Microsoft Visual Studio, що включає компілятор Solidity.
- Пакет для SublimeText
- Пакет Ethereum Solidity language syntax для редактора SublimeText, що дозволяє робити підсвітку синтаксису програмного коду на Solidity.
- Etheratom
- Плагін для редактора Atom, що дозволяє робити підсвітку синтаксису, компілятор та runtime серидовище.
- Atom Solidity Linter
- Плагін для редактора Atom, що перевіряє ваш Solidity код на відповідність стилю та стандартам.
- Atom Solium Linter
- Плагін для редактора Atom, що перевіряє ваш Solidity код на відповідність стилю та стандартам на базі Solium. Дозволяє зробити гнучку настройку своєї роботи.
- Solium
- Linter для знаходження та виправлення помилок та зауважень пов’язаних з безпекою та стилем програмного коду в Solidity.
- Solhint
- Linter для Solidity, що підсвічує помилки пов’язані з безпекою, стилем коду та допомагає у використанні найкращих практик написання смарт контрактів.
- Розшрення для Visual Studio Code
- Плагін Solidity для Microsoft Visual Studio Code, що включає в себе підсвітку синтаксису та компілятор Solidity.
- Emacs Solidity
- Плагін для редактора Emacs, що надає підсвітку синтаксису та перевірку помилок компіляції.
- Vim Solidity
- Плагін для редактора Vim, що надає підсвітку синтаксису.
- Vim Syntastic
- Плагін для редактора Vim, що перевіряє код на помилки компіляції.
Більше не підтримується:
- Mix IDE
- IDE на базі Qt для розробки, дебагінгу та тестування смарт контрактів на Solidity.
- Ethereum Studio
- Спеціалізований онлайн IDE, що надає shell доступ до повного середовища Ethereum.
Інструменти для Solidity¶
- Dapp
- Build інструмент, пакетний менеджер та deployment помічник для Solidity.
- Solidity REPL
- Спробуйне Solidity прямо зараз з командного рядка.
- solgraph
- Візуалізує роботу коду Solidity та підсвічує потенційні вразливості пов’язані з безпекою.
- evmdis
- Дизасемблер віртуальної машини Ethereum (EVM), що виконує статичний аналіз, щоб забезпечити більш високий рівень абстракції, ніж сирі операції EVM.
- Doxity
- Генератор документації для Solidity.
Інші парсери Solidity¶
- solidity-parser
- Парсер Solidity для JavaScript
- Solidity Grammar for ANTLR 4
- Граматика Solidity для парсера ANTLR 4-го покоління
Документація¶
На наступній сторінці ви спочатку побачите простий смарт контракт написаний мовою Solidity, далі основи технології blockchains та трохи про віртуальну машину Ethereum (EVM).
Наступний розділ пояснить кілька можливостей мови Solidity на корисних прикладах смарт контрактів. Пам’ятайте, що ви завжди можете спробувати/перевірити смарт контракти запустивши їх прямо у браузері!
Останній і найширший розділ глибоко охоплює всі аспекти Solidity.
Якщо після прочитання документації у вас все ще залишаться запитання, ви можете пошукати відповідь, або задати власне запитання на сайті Ethereum Stackexchange, або ласкаво просимо в наш gitter канал. Ми завжди вітаємо будь-які ідеї що до покращення мови Solidity, або цієї документації!
Зміст¶
Ключові слова в алфавітному порядку, Пошук
- Introduction to Smart Contracts
- Installing the Solidity Compiler
- Solidity by Example
- Детально про Solidity
- Security Considerations
- Using the compiler
- Contract Metadata
- Application Binary Interface Specification
- Joyfully Universal Language for (Inline) Assembly
- Style Guide
- Common Patterns
- List of Known Bugs
- Contributing
- Frequently Asked Questions