Как стать разработчиком смарт-контрактов?

Смарт-контракты Техническая статья Продвинутый
4/4/2022
233
Avatar
Автор
Oracle Labs

В настоящее время существует множество факторов, делающих профессию разработчика смарт-контрактов привлекательной для карьерного роста: от возможности работать с технологией, оказывающей преобразующее влияние на мир, до большого спроса на разработчиков смарт-контрактов на рынке талантов. 

Кроме того, навыки разработки смарт-контрактов становятся все более актуальными. В 1990-х годах инженеры перешли от закрытого мира мэйнфреймов к открытым базам данных Интернета, и аналогичный переход происходит сейчас с внедрением смарт-контрактов. Как тогда разработчики переходили на более актуальный для будущего технологический стек, так и сейчас разработчики переходят на стек Web 3.0. 

У начинающих разработчиков смарт-контрактов возникает множество вопросов о том, как осуществить этот переход: что такое стек разработчиков Web 3.0? Какие языки кодирования следует изучать? Какие технические навыки потребуются и как их приобрести? Ниже вы найдете ответы на эти и другие вопросы, которые помогут вам совершить прыжок в мир разработки смарт-контрактов.

Языки блокчейна

Основным языком смарт-контрактов блокчейна является Solidity, ведущим конкурентом которого является Vyper. В отличие от интерпретируемых языков, таких как Python, Solidity статически типизирован (типы переменных объявляются) и компилируется, то есть перед запуском необходимо сгенерировать двоичный файл. Solidity — это язык, разработанный Гэвином Вудом для решения уникальных проблем Ethereum в 2014 году, и сейчас он является языком по умолчанию для всех сетей, совместимых с Ethereum Virtual Machine (EVM). Это означает, что независимо от того, разрабатываете ли вы Ethereum, Avalanche, Polygon, Binance Smart Chain (BSC) или любую другую блокчейн сеть EVM, вам необходимо знать все тонкости Solidity. Однако есть некоторые блокчейны, которые не используют EVM и программируются на разных языках. Solana - один из примеров блокчейна, который не использует Solidity, а использует уже существующие языки Rust и C/C++.

Как же выбрать блокчейн для разработки? Здесь есть много соображений и нет универсального ответа. В настоящее время большинство dApps существует на Ethereum, и он, как правило, обладает наибольшей ликвидностью. Кроме того, значительная история Ethereum обеспечивает ему репутацию надежной платформы. Ethereum является хорошим выбором, если скорость и низкая стоимость транзакций не являются вашими основными задачами и у вас есть потребности экосистемы (например, dApp, с которым вы хотите взаимодействовать, работает только на Ethereum). 

Вы также можете развернуть систему на масштабируемом уровне (L2), таком как Arbitrum, который имеет полную совместимость с EVM, но "сворачивает" транзакции в сжатые пакеты, поэтому пропускная способность транзакций выше, а значит, затраты ниже, а скорость выше. Что касается других сетей EVM, то каждая из них в той или иной форме предлагает улучшение масштабируемости по сравнению с Ethereum: BSC использует более крупные блоки транзакций, Polygon является сайдчейном, который обменивает некоторую децентрализацию на масштабирование, а Avalanche использует новый алгоритм консенсуса для повышения скорости/стоимости транзакций. 

В рамках данной статьи мы сосредоточимся на работе с сетями EVM на Solidity, поскольку это наиболее распространенный вариант.

Технические навыки

Компилируемые, относительно низкоуровневые языки бэкенда, такие как C/C++, являются хорошей отправной точкой для начала программирования в Solidity. Тем, кто имеет опыт веб-разработки или опыт работы с такими языками, как JavaScript и Python, придется приспособиться к более низкоуровневому мышлению Solidity, где вы можете оказаться непосредственно оперирующим битами переменной. Тем не менее, программист блокчейна, работающий в полномасштабном режиме, должен обладать обоими навыками, поскольку именно через библиотеки web3.js, ethers.js и web3.py осуществляется большинство взаимодействий со смарт-контрактами Solidity. Хороший разработчик может работать как с бэкендом контрактов Solidity, так и с фронтендом на JS/Python, но отличный разработчик может работать со всем стеком. Библиотека контрактов OpenZeppelin также является отличным источником для использования, поскольку она избавляет разработчиков от необходимости писать некоторые общие контракты, например, контракт токенизации. 

Возможно, самым важным навыком, который необходимо развивать, является безопасность. Возможно, однажды ваш смарт-контракт будет работать с миллиардами долларов, поэтому крайне важно, чтобы в нем не было изъянов. Такие уязвимости, как повторное обращение, важно учитывать в смарт-контрактах. Поскольку смарт-контракты часто вызывают другие функции смарт-контрактов, существует возможность того, что другая функция может прервать выполнение вашего смарт-контракта. Это стало причиной знаменитого взлома DAO ETH за 70 млн долларов. Мышление безопасности необходимо для разработчиков смарт-контрактов.

Как же выглядит процесс разработки этих контрактов? Существуют ли инструменты и IDE, которые могут нам помочь? Конечно! Популярной IDE является Remix, которая представляет собой веб-инструмент, способный обрабатывать как компиляцию контракта, так и его развертывание на выбранной вами сети. Кроме того, Truffle и Brownie — это два фреймворка для разработки, которые также созданы для того, чтобы помочь вам. Чтобы узнать больше о процессе от начала и до конца, включая использование этих фреймворков, мы настоятельно рекомендуем ознакомиться с чрезвычайно подробным курсом по смарт-контрактам, который ведущий защитник разработчиков Chainlink Labs Патрик Коллинз провел в рамках freeCodeCamp: Solidity, Blockchain и Smart Contract Course - Учебник по Python для начинающих и экспертов.

Вкратце, вот некоторые языки, библиотеки и инструменты, с которыми вам следует ознакомиться, чтобы стать разработчиком смарт-контрактов:

  • Solidity
  • JavaScript
  • Python
  • web3.js/web3.py
  • ethers.js
  • Truffle
  • Brownie
  • Remix

Сообщество блокчейн разработчиков

Сообщество чрезвычайно важно в сфере смарт-контрактов. При таком количестве инноваций, происходящих так быстро, трудно угнаться за ними в одиночку. Именно поэтому лучшие разработчики активно общаются в Twitter, участвуют в хакатонах, чтобы встретиться с другими разработчиками и потенциальными инвесторами или работодателями, получают вознаграждения в Gitcoin, чтобы помочь в разработке открытых исходных кодов, участвуют во вдумчивых форумах, таких как Smart Contract Research Forum, и общаются в Discord, чтобы учиться и помогать учиться другим.

Хакатоны - особенно хорошее место для развития навыков работы с умными контрактами. На хакатонах вы учитесь на практике и оттачиваете свои таланты в реальном времени в процессе создания, а авторитетные представители отрасли помогают вам - возможно, даже становятся соавторами вашего проекта! Chainlink Hackathon - отличное место для начала строительства. Благодаря призам, присутствию ведущих экспертов и венчурных инвесторов, а также тысячам разработчиков, с которыми можно познакомиться, он может стать мощным толчком для карьеры разработчика смарт-контрактов. Еще один фантастический ресурс - Chainlink Discord, где адвокаты разработчиков и активные члены сообщества готовы помочь вам начать работу.

Где учиться блокчейну в Интернет?

Существует огромное количество ресурсов для поддержки вашего обучения: хакатоны, блоги, серверы Discord, каналы YouTube и многое другое. Ниже мы отобрали восемь ресурсов, которые предлагают отличное сочетание для тех, кто хочет стать разработчиком смарт-контрактов, а затем перечислили лучшие ресурсы из каждой области.

YouTube

Если вы учитесь визуально и предпочитаете, чтобы кто-то проводил вас через учебник, а не следовал ему самостоятельно, YouTube - отличный ресурс. Все эти ютуберы предоставляют отличные материалы для тех, кто изучает разработку смарт-контрактов, предлагая подробные учебные пособия, которым вы можете следовать, чтобы облегчить свое обучение.

Сообщества

Участие в сообществе критически важно в сфере смарт-контрактов. Учитесь у более опытных, заводите друзей и помогайте другим, которые в свою очередь помогут вам. Сообщества Discord и Reddit — это мощный ресурс для получения помощи в реальном времени и расширения круга общения с другими разработчиками-единомышленниками. Вот несколько мест, которые помогут вам на пути разработки смарт-контрактов.

Хакатоны

Хакатоны — это захватывающий способ ускорить свой путь разработчика. Расширьте свои возможности, развиваясь на переднем крае новых технологий, в то время как известные лидеры сообщества готовы дать совет, а инвесторы ищут следующий крупный проект, который может оказаться вашим. Chainlink Hackathon - это отличное место для старта, где предлагается огромная коллекция ресурсов, семинаров, призов и возможностей для налаживания контактов.

Сделайте первый шаг на пути к смарт-контрактам

Существует множество путей к тому, чтобы стать разработчиком смарт-контрактов. Мы описали несколько вариантов, но вы сами должны выбрать, что вам больше подходит. Самое главное, чтобы вы начали, создали что-то для интереса, начали исследовать и задавать вопросы - остальное приложится. Независимо от того, являетесь ли вы бэкенд-разработчиком, веб-разработчиком или вообще новичком в разработке, для вас найдется путь к успеху и множество людей, которые будут рады помочь. Поэтому сделайте первый шаг: присоединяйтесь к Discords, читайте учебники, участвуйте в хакатонах и начинайте строить захватывающее будущее Web 3.0.

https://blog.chain.link/how-to-become-a-smart-contract-developer/ | How to Become a Smart Contract Developer


Время чтения: 6 минут
Поделитесь в соц. сетях:
Наверх