Я недавно обнаружил блокчейн Ethereum, хотя несколько месяцев назад я читал о взломе DAO. Я начал изучать язык программирования Solidity, один из языков, используемых для написания контрактов для блокчейна Ethereum, с прочтения официальной документации.

Язык Solidity — один из самых захватывающих языков, которые я когда-либо имел удовольствие изучать. Это молодой язык, так как он был создан еще в 2014 году. По сравнению с другими языками, этот молодой язык имеет очень небольшую встроенную библиотеку времени выполнения для поддержки проектов, разработанных с его использованием. Если вы хотите манипулировать строками, вы должны написать свои собственные подпрограммы манипулирования строками. Если вы хотите заниматься математикой, вы должны написать свои собственные математические процедуры. Поскольку Solidity используется для разработки контрактов на блокчейне Ethereum, и разработчики хотели, чтобы пользователи доверяли контрактам, большинство, если не все разработчики решили опубликовать свой код Solidity в Интернете, либо на Github, либо на Etherscan. Это позволяет быстро получить доступ и быстро учиться у некоторых из более опытных разработчиков Solidity.

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

  • Придумайте проект и напишите контракт. Имея в виду проект, вы сможете выучить целевой язык быстрее, чем если бы вы учились без цели. Я решил написать клиент обмена сообщениями для блокчейна, он позволит любому получать сообщения, отправленные в блокчейн, и отправлять сообщения в блокчейн, взимая с них небольшое количество эфира.
  • Чтобы быстро опробовать новые идеи, используйте код Solidity, опубликованный на Github (если разрешено его свободное использование), Etherscan и другие места.
  • Задавайте вопросы в StackExchange, Gitter и других интернет-сообществах. При создании своего клиента обмена сообщениями мне было интересно, почему я не могу получить все сообщения, и я спросил об этом на StackExchange.
  • Проверьте свои контракты в тестовых сетях, таких как Rinkeby, Ropsten, Kovan, перед их развертыванием. Если вам нужен эфир для проверки вашего кода, вы можете получить бесплатный эфир в кранах Rinkeby, Ropsten или Kovan.
  • Просматривайте свои транзакции в основной сети (также известной как Foundation) или тестовых сетях (Kovan, Rinkeby, Ropsten) с помощью Etherscan. Основная сеть — это место, где ваши действия имеют реальные последствия.

  • Быстро составьте свой контракт Solidity онлайн с помощью Remix. Вы можете использовать Remix, чтобы быстро получить бинарный интерфейс приложения (ABI) для вашего контракта. Затем вы можете использовать ABI на MyEtherWallet, когда/если вы используете MyEtherWallet для проверки своего контракта.
  • Напишите тесты с помощью Truffle, чтобы протестировать ваши контракты и интерфейс. Вы также можете протестировать свои контракты вручную, используя раздел контрактов MyEtherWallet и Parity.
  • Зарегистрируйте бесплатный DNS-адрес, например dyndns или no-ip, чтобы опробовать свой интерфейс и проверить, как ваш код работает в Интернете.
  • Прочтите документацию на все, что вы использовали и пробовали, например, Parity, Solidity.
  • Сообщайте об ошибках и проблемах на соответствующих сайтах, например, Metamask, Parity, Truffle, чтобы помочь улучшить экосистему.
  • Поделитесь тем, что вы узнали, написав или ведя блог об этом, чтобы закрепить полученные знания.
  • Полезные инструменты и сайты: Etherscan, Infura, Metamask, MyEtherWallet, Node.js, Parity, StackExchange, Truffle.
  • Чат-сайты: Метамаска, Ремикс, Solidity, Трюфель.

Для читателей, которым интересно, как выглядит прототип Project Scream, вот он:

В Интернете есть много материалов, инструментов и сообществ для изучения Solidity. Я предоставил некоторые из них в этом посте. Я с нетерпением жду ваших комментариев и отзывов о моем первом посте на Medium. Спасибо.