Ну що, товариші, розкажу я вам, як по-справжньому писати смартконтракти, без прикрашання і дурниць, якими кишить інтернет. Я сам довго мучився з цим і готовий поділитися досвідом.
Розпочну з того, що писати смартконтракти — це не так складно, як здається, але й не так просто, як обіцяють усі ці "гуру" зі своїми курсами за шалені гроші. Особливо бісить, коли великі гравці ринку намагаються монополізувати цю сферу знань.
Вибір мови — перший крок до успіху або провалу
Для написання смартконтрактів в основному використовують Solidity — це як стандарт в індустрії. Але чесно кажучи, мова сама по собі достатньо сира і з купою дірок. Я працював з ним кілька років і постійно натикаючись на проблеми, про які ніхто не попереджає.
Альтернативи є — FunC для TON, наприклад. Але тут інша біда — документації мало, і вона часто англійською з кривим перекладом.
Облаштування робочого місця
Забудьте про складні інструкції. Мені найбільше підходить зв'язка Visual Studio Code + розширення для Solidity + Remix IDE для швидкого тестування. Не потрібно винаходити велосипед і встановлювати купу програм, як радять офіційні гайди.
Написання контракту — підводні камені
Коли пишеш контракт, головне пам'ятати — будь-яку твою помилку можуть використовувати для крадіжки грошей. Буквально будь-яку! Я сам наступав на ці граблі, коли забув перевірити переповнення в одній простій функції, і ледь не втратив велику суму.
Ось що я вам скажу — не довіряйте прикладам з документації. Вони часто містять небезпечний код, який у продакшн запускати категорично не можна. А різні корпоративні шаблони взагалі пишуться людьми, які іноді навіть не розуміють базових принципів роботи блокчейну.
Тестування — не економте на цьому
Перевірте все сто разів! Не вірте тим, хто каже «тестування можна зробити пізніше». У криптосвіті це шлях до втрати всього. Зазвичай я пишу тести ще до написання самого контракту, продумуючи різні сценарії атак.
Я бачив проєкти, які втрачали мільйони тільки тому, що розробники полінувалися протестувати всі граничні випадки або поспішили з випуском.
Деплой в мережу
Коли будете деплоїти контракт — не забудьте перевірити комісію. Іноді мережа перевантажена, і замість нормальної суми можна віддати ціле стан за деплой. Я одного разу ледь не надіслав транзакцію з комісією більше, ніж вартість самого проєкту.
І не довіряйте сліпо всяким популярним гаманцям — вони теж помиляються. Краще використовувати надійні інструменти, такі як hardhat або truffle.
Що далі?
Навіть після деплою потрібно моніторити контракт. Хакери не сплять, і кожен день знаходять нові вразливості. У цьому плані блокчейн безжальний — один раз задеплоїв з помилкою, і все, пиши пропало.
А взагалі, не думайте, що смартконтракти — це панацея. Більшість проектів у блокчейні — це гроші, викинуті на вітер. Але якщо ви робите щось варте — робіть це якісно.
Пам'ятайте: у блокчейні немає відкатів транзакцій і повернення грошей! Тут ви самі відповідаєте за свій код цілком і повністю.
Удачі з вашими контрактами! І так — не слухайте всіх цих "експертів" зі стажем у два тижні. Вчіться на чужих помилках, а не на своїх.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Написання смарт-контрактів — мої особисті нотатки та думки
Ну що, товариші, розкажу я вам, як по-справжньому писати смартконтракти, без прикрашання і дурниць, якими кишить інтернет. Я сам довго мучився з цим і готовий поділитися досвідом.
Розпочну з того, що писати смартконтракти — це не так складно, як здається, але й не так просто, як обіцяють усі ці "гуру" зі своїми курсами за шалені гроші. Особливо бісить, коли великі гравці ринку намагаються монополізувати цю сферу знань.
Вибір мови — перший крок до успіху або провалу
Для написання смартконтрактів в основному використовують Solidity — це як стандарт в індустрії. Але чесно кажучи, мова сама по собі достатньо сира і з купою дірок. Я працював з ним кілька років і постійно натикаючись на проблеми, про які ніхто не попереджає.
Альтернативи є — FunC для TON, наприклад. Але тут інша біда — документації мало, і вона часто англійською з кривим перекладом.
Облаштування робочого місця
Забудьте про складні інструкції. Мені найбільше підходить зв'язка Visual Studio Code + розширення для Solidity + Remix IDE для швидкого тестування. Не потрібно винаходити велосипед і встановлювати купу програм, як радять офіційні гайди.
Написання контракту — підводні камені
Коли пишеш контракт, головне пам'ятати — будь-яку твою помилку можуть використовувати для крадіжки грошей. Буквально будь-яку! Я сам наступав на ці граблі, коли забув перевірити переповнення в одній простій функції, і ледь не втратив велику суму.
Ось що я вам скажу — не довіряйте прикладам з документації. Вони часто містять небезпечний код, який у продакшн запускати категорично не можна. А різні корпоративні шаблони взагалі пишуться людьми, які іноді навіть не розуміють базових принципів роботи блокчейну.
Тестування — не економте на цьому
Перевірте все сто разів! Не вірте тим, хто каже «тестування можна зробити пізніше». У криптосвіті це шлях до втрати всього. Зазвичай я пишу тести ще до написання самого контракту, продумуючи різні сценарії атак.
Я бачив проєкти, які втрачали мільйони тільки тому, що розробники полінувалися протестувати всі граничні випадки або поспішили з випуском.
Деплой в мережу
Коли будете деплоїти контракт — не забудьте перевірити комісію. Іноді мережа перевантажена, і замість нормальної суми можна віддати ціле стан за деплой. Я одного разу ледь не надіслав транзакцію з комісією більше, ніж вартість самого проєкту.
І не довіряйте сліпо всяким популярним гаманцям — вони теж помиляються. Краще використовувати надійні інструменти, такі як hardhat або truffle.
Що далі?
Навіть після деплою потрібно моніторити контракт. Хакери не сплять, і кожен день знаходять нові вразливості. У цьому плані блокчейн безжальний — один раз задеплоїв з помилкою, і все, пиши пропало.
А взагалі, не думайте, що смартконтракти — це панацея. Більшість проектів у блокчейні — це гроші, викинуті на вітер. Але якщо ви робите щось варте — робіть це якісно.
Пам'ятайте: у блокчейні немає відкатів транзакцій і повернення грошей! Тут ви самі відповідаєте за свій код цілком і повністю.
Удачі з вашими контрактами! І так — не слухайте всіх цих "експертів" зі стажем у два тижні. Вчіться на чужих помилках, а не на своїх.