Останнє оновлення сторінки: December 4, 2020
Ресурси для розробників
Перші кроки
Якщо ви новачок у розробці з Ethereum, ви в потрібному місці. Ці посібники, створені спільнотою Ethereum, ознайомлять вас з основами технологічного стека Ethereum та представлять базові концепції, які можуть відрізнятись від розробки інших програм, з якими ви знайомі.
Бажаєте розпочати програмувати одразу? Розпочніть тут.
Потрібен простий приклад для початку? Перегляньте наші навчальні ресурси.
Корисні ресурси
- Введення в курс справ Ethereum 7 серпня 2017 р. — Matt Condon
- Ethereum в деталях. Частина 1 11 травня 2018 р. — Facu Spagnuolo
- Ethereum в деталях. Частина 2 24 липня 2018 р. — Facu Spagnuolo
- Покроковий посібник з програмування в Ethereum. Частини 1–5 14 січня 2018 р. — dev_zl
- Ethereum 101. Частини 1–7 13 лютого 2019 р. — Wil Barnes
- Посібник із створення комплексної децентралізованої програми для голосування "Hello World" для Ethereum лютий 2019 р. — Mahesh Murthy
- Опанування Ethereum — повний підручник, доступний безкоштовно в онлайн-режимі 1 грудня 2018 р. — Andreas Antonopoulos та Gavin Wood
- Портал для розробників Ethereum — все, що потрібно, щоб розпочати програмувати для Ethereum Часто оновлюється — ConsenSys
- Деконструкція контракту Solidity 13 серпня 2018 р. — Alejandro Santander та Leo Arias
- Серія посібників Full Stack Dapp Часто оновлюється — Joshua Cassidy
Мови програмування смарт-контрактів
Будь-яка програма, що працює на віртуальній машині Ethereum (EVM), зазвичай називається "смарт-контрактом". Найпопулярнішими мовами для написання смарт-контрактів на Ethereum є Solidity та Vyper, хоча існують й інші, які знаходяться в стадії розробки.
Solidity — найпопулярніша мова на Ethereum, натхненна C ++, Python та JavaScript.
Vyper — мова, орієнтована на безпеку Ethereum, базується на Python.
Шукаєте інші варіанти?
Особливі ресурси для мов
Ми створюємо набір сторінок для розробників для певної мови, щоб вони могли дізнатися про потрібну мову програмування для Ethereum.
- Ethereum для розробників на Java
- Ethereum для розробників на Python
- Ethereum для розробників на JavaScript
- Ethereum для розробників на Go
- Ethereum для розробників на Rust
- Ethereum для розробників на .NET
- Незабаром буде більше! Ваша мова не відображається в списку? Повідомте про проблему!
Інструменти для розробників
Ethereum має велику і постійно зростаючу кількість інструментів, які допомагають розробникам створювати, тестувати та розгортати свої програми. Нижче наведено найпопулярніші інструменти для початку роботи. Якщо ви хочете дізнатися більше, перегляньте цей повний список.
Платформи
Truffle — середовище розробки, система тестування, створення конвеєру та інші інструменти.
Embark — середовище розробки, система тестування та інші інструменти, інтегровані з Ethereum, IPFS і Whisper.
Waffle — платформа для просунутої розробки та тестування смарт-контрактів (на основі ethers.js).
Etherlime — платформа на основі Ethers.js для розробки (на Solidity та Vyper), розгортання, налагодження і тестування децентралізованих програм тощо.
Інші інструменти
Hardhat — засіб для запуску завдань для розробників смарт-контрактів Ethereum.
OpenZeppelin SDK — комплексний набір інструментів для смарт-контрактів: комплекс засобів, які допоможуть вам розробляти, компілювати, модернізувати та розгортати смарт-контракти, а також взаємодіяти з ними.
The Graph — протокол індексації даних Ethereum та IPFS і створення запитів з використанням GraphQL.
Tenderly — платформа для моніторингу ваших смарт-контрактів із відстеженням помилок, надсиланням сповіщень, показниками ефективності та детальною аналітикою контрактів.
Python Tooling — різноманітні бібліотеки для взаємодії Ethereum з використанням Python.
Brownie — платформа розробки і тестування на основі Python.
web3j — інтегрована бібліотека Java/Android/Kotlin/Scala для Ethereum.
One Click Dapp — створення клієнтських програм безпосередньо з ABI для швидкої розробки та тестування.
Шукаєте інші варіанти?
Інтегровані середовища розробки (IDE)
Ethereum Studio — IDE, що працює через Інтернет, є ідеальним ресурсом для починаючих розробників, які бажають експериментувати із смарт-контрактами. Ethereum Studio надає багато шаблонів, інтеграцію з MetaMask, реєстратор транзакцій та вбудовану в браузер віртуальну машину Ethereum (EVM), яка допоможе вам якнайшвидше почати створювати програми на Ethereum.
Visual Studio Code — професійна міжплатформенна IDE з офіційною підтримкою Ethereum.
- Visual Studio Code
- Набір для розробки блокчейну в Azure для Ethereum
- Плагін Azure Blockchain Workbench
- Приклади коду
- GitHub
Remix — IDE, що працює через Інтернет, із вбудованим статичним аналізом і тестовою віртуальною машиною блокчейну.
EthFiddle — IDE, що працює через Інтернет, яка дає змогу писати, компілювати та налагоджувати ваші смарт-контракти.
Шукаєте інші варіанти?
API Javascript для клієнтських програм
Web3.js — API Javascript для Ethereum.
Ethers.js — повна реалізація гаманця Ethereum та інших службових програм на JavaScript і TypeScript.
light.js — реактивна бібліотека JS високого рівня, оптимізована для легких клієнтів.
Web3-wrapper — Typescript-альтернатива для Web3.js.
Шукаєте інші варіанти?
API серверної частини
Infura — API Ethereum як сервіс.
Шлюз Cloudflare Ethereum.
Nodesmith — доступ API JSON-RPC до основних та тестових мереж Ethereum.
Chainstack — спільні та виділені вузли Ethereum як сервіс.
Сховище
IPFS — файлова система InterPlanetary, децентралізована система зберігання та передавання файлів для Ethereum
Swarm — платформа розподіленого зберігання та сервіс розповсюдження контенту для стека Ethereum web3.
OrbitDB — децентралізована однорангова база даних, що працює поверх IPFS.
Інструменти безпеки
Безпека смарт-контрактів
Slither — платформа статичного аналізу Solidity на Python 3.
MythX — аналіз безпеки API для смарт-контрактів Ethereum.
Mythril — інструмент для аналізу безпеки байт-коду EVM.
SmartContract.Codes — пошукова система для перевіреного вихідного коду Solidity.
Manticore — інтерфейс командного рядка, який використовує інструмент символьного виконання в смарт-контрактах та бінарних файлах.
Securify — сканер безпеки смарт-контрактів Ethereum.
ERC20 Verifier — інструмент перевірки, який використовується для перевірки відповідності компілювання контракту стандарту ERC20.
Офіційна перевірка
Інформація про офіційну перевірку
- Як працює офіційна перевірка смарт-контактів 20 липня 2018 р. — Brian Marick
- Як офіційна перевірка може забезпечити отримання бездоганних смарт-контрактів 29 січня 2018 р. — Bernard Mueller
Шукаєте інші варіанти?
Інструменти тестування
Solidity-Coverage — альтернативний інструмент перевірки коду на Solidity.
hevm — реалізація EVM, створена спеціально для модульного тестування та налагодження смарт-контрактів.
Whiteblock Genesis — ізольоване середовище для комплексної розробки і тестування блокчейну.
Шукаєте інші варіанти?
Інструменти дослідження блоків
Інструменти дослідження блоків — це сервіси, які дозволяють переглядати блокчейн Ethereum (та його тестові мережі) шляхом пошуку інформації про конкретні транзакції, блоки, контракти та інші операції в мережі.
Тестові мережі й роздача
Спільнота Ethereum підтримує декілька тестових мереж. Вони використовуються розробниками для тестування своїх програм в різних умовах перед розгортанням в головній мережі Ethereum.
Ropsten — підтвердження роботи блокчейн, можна видобути тестовий ether.
Rinkeby — підтвердження повноважень блокчейн, яке підтримується командою розробки Geth.
Goerli — підтвердження повноваження блокчейн між клієнтами, створене і підтримуване спільнотою Goerli
Клієнти та запуск власного вузла
Мережа Ethereum складається з багатьох вузлів, на яких працює із сумісне клієнтське програмне забезпечення. Більшість з цих вузлів працюють на платформах Geth або Parity, кожна з яких може бути налаштована по-різному відповідно до ваших потреб.
Клієнти
Geth — клієнти Ethereum, реалізований на Go.
Parity — клієнт Ethereum, реалізований на Rust.
Pantheon — клієнт Ethereum, реалізований на Java.
Nethermind — клієнт Ethereum, реалізований на C# .NET Core.
Запуск власного вузла
Ethnode — запускається як вузол Ethereum (на Geth або Parity) для локальної розробки.
Ресурси вузлів Ethereum
- Пам'ятка з налаштування вузлів 5 січня 2019 р. — Afri Schoeden
Шукаєте інші варіанти?
Передова практика, шаблони і антишаблони
Смарт-контракти
DappSys — безпечні, прості й гнучкі будівельні блоки для смарт-контрактів.
OpenZeppelin Contracts — бібліотека для розробки безпечних смарт-контрактів.
aragonOS — шаблони для оновлення і керування дозволами.
Реєстр слабких місць в смарт-контрактах (SCW)
Безпека
Посібник із найкращих методик для реалізації безпеки смарт-контрактів
- consensys.github.io/smart-contract-best-practices/
- GitHub
- Добірка рекомендацій з питань безпеки та найкращих методик
Стандарт перевірки безпеки смарт-контрактів (SCSVS)
Шукаєте інші варіанти?
Підтримка розробників і навчання
Загальне навчання
Ethereum Stackexchange
ConsenSys Academy — повний курс для розробників для Ethereum, призначений для проходження у власному темпі та відкритий цілий рік.
Чат Solidity Gitter
Всі чати Ethereum Gitter
Chainshot — посібники з розробки децентралізованих веб-програм (dapp).
Blockgeeks — онлайн-курси з технології блокчейну.
DappUniversity — дізнайтеся, як розробляти децентралізовані програми на блокчейні Ethereum.
B9lab Academy — головна сторінка найстарішого професійного курсу для розробників децентралізованих програм для Ethereum та подальше навчання для аудиторів і забезпечення якості. Включ. навчання та перевірку коду.
Навчання на основі гри
Cryptozombies — дізнайтеся, як розробляти ігри на Ethereum.
Ethernaut — варгейм, написана на Solidity, де кожен рівень є контрактом, який потрібно зламати.
Capture the Ether — гра в безпеку смарт-контрактів Ethereum.
Дизайн інтерфейсу/взаємодії з користувачем
- Виклик функцій взаємодії з користувачем в Ethereum 25 червня 2018 р. — Anna Rose
- Проектування блокчейну: у чому розбіжності і що поставлено на карту 22 березня 2018 р. — Sarah Baker Mills
Rimble UI — адаптивні компоненти та стандарти дизайну для децентралізованих програм.
Стандарти
Спільнота Ethereum прийняла багато корисних стандартів для розробників. Зазвичай вони вносяться як пропозиції щодо вдосконалення Ethereum (EIP, Ethereum Improvement Proposals), які обговорюються членами спільноти з використанням стандартного процесу.
- Список усіх EIP
- Репозіторій github для EIP
- Форум для обговорення EIP
- Огляд керування Ethereum 31 березня 2019 р. — Boris Mann
- Список записів всіх онлайн-зустрічей основних розробників Ethereum (Плейлист на YouTube)
Деякі EIP стосуються стандартів на рівні програм (наприклад, стандарт формату смарт-контрактів), які вводяться як запит на коментування Ethereum (ERC). Багато ERC є критично важливими і широко використовуються в екосистемі Ethereum.