Глубокое погружение в отличный инструмент для успеха вашего проекта

Введение

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

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

В этой статье будет представлен краткий обзор шагов, необходимых для создания смарт-контракта Web3. В то же время мы рассмотрим, как вы можете успешно пройти эти этапы, написав, развернув и протестировав смарт-контракты с помощью уже известного вам инструмента — Visual Studio Code (VS Code) — и расширения Truffle for VS Code. .

Выбор правильных инструментов

Изучив основы блокчейна и Ethereum, вы, вероятно, вдохновились начать применять свои знания для создания собственных проектов Web3. По пути вы, возможно, собрали длинный список инструментов из различных проектов и учебных пособий. Вместо того, чтобы теряться в этом списке, давайте сосредоточимся на изучении шагов, необходимых для запуска нового проекта смарт-контракта с помощью одного из этих инструментов — расширения Truffle for VS Code — и на изучении того, как он может помочь в создании, отладке и развертывании вашего смарт-контракта. , безопасность и другие направления развития.

Создание проекта

Во-первых, давайте рассмотрим создание вашего первоначального проекта.

Расширение Truffle для VS Code

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

Приятным преимуществом использования расширения Truffle for VS Code является то, что вы можете быстро создать новый проект с правильной структурой с самого начала, либо создав новую папку с шаблонной файловой структурой и начальными файлами, либо просто создав проект из Трюфельная коробка.

Давайте начнем новый проект, чтобы увидеть, как выглядит правильная файловая структура. Во-первых, вам нужно установить расширение Truffle for VS Code. Чтобы получить подробные инструкции по установке и получить еще больше информации о его возможностях, ознакомьтесь с этим постом.

После установки расширения нажмите клавиши SHIFT + CTRL/CMD + P, чтобы открыть палитру команд. Далее введите команду Truffle New Solidity Project и выберите опцию «Создать базовый проект». После выбора пути к проекту будет создан новый проект с соответствующей файловой структурой.

Как видите, в проекте шаблона есть папка со смарт-контрактами, еще одна для миграции в среду блокчейна, третья для скриптов и еще одна папка для тестов. Проект также включает в себя .gitignore для хранения информации, которую вы не хотите отправлять в репозиторий, лицензионное соглашение с открытым исходным кодом и файл truffle-config.js.

Благодаря такой файловой структуре все остается аккуратным и упорядоченным, поэтому импорт из одного файла в другой или запуск команд Truffle просты и менее подвержены ошибкам.

Отладка вашего контракта

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

Одним из решений является использование функции Отладка транзакции через расширение Truffle for VS Code. Для работы с отладчиком снова откройте палитру команд и введите Truffle Debug Transaction. Оттуда вы можете просматривать сообщения о транзакциях и работать с ними шаг за шагом. Это важно для разработчиков, так как ошибки в определенной транзакции часто приводят к сбою следующих попыток транзакции (например, средства недоступны в определенном кошельке).

После выбора транзакции станет доступен отладчик. Здесь вы можете выполнять типичные функции отладки, такие как вход/выход/переход, просмотр стека вызовов, просмотр окон и так далее.

Развертывание вашего контракта

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

В расширении Truffle вы можете выполнять развертывание во всех трех типах сетей, не выходя из VS Code. Вы можете сделать это, щелкнув правой кнопкой мыши файл .SOL, который хотите развернуть, и выбрав «Развернуть контракты».

Локальная цепочка блоков: использование службы Ganache — это простой способ создать локальную цепочку блоков с несколькими адресами кошельков и протестировать Eth, который вы можете использовать для взаимодействия со своим смарт-контрактом. Вы можете создать новую сеть Ganache на панели Truffle — Networks в VS Code из расширения. После создания сети вы можете запускать/останавливать и перезапускать сервер по мере необходимости.

Тестовые сети.Тестовые сети предназначены для работы аналогично основной сети Ethereum, но у них нет финансовых затрат и рисков, связанных с развертыванием непосредственно в основной сети. Использование тестовой сети — отличный способ лучше понять, как ваш контракт будет работать после развертывания в основной сети.

Есть несколько тестовых сетей Ethereum на выбор, и все они могут быть подключены с помощью службы поставщика узлов, такой как Infura. После настройки учетной записи Infura в расширении у вас есть доступ к вашим существующим проектам Infura или вы можете легко создавать новые.

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

Давайте посмотрим, как мы можем защитить наш контракт, используя правильные инструменты и лучшие практики, прежде чем мы развернемся в основной сети.

Обеспечение вашего контракта

Безопасность всегда должна быть главным приоритетом при разработке смарт-контрактов. Миллионы долларов теряются из-за хакеров на регулярной основе. Как разработчик Web3, вы должны постоянно быть в курсе последних лучших практик безопасности.

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

Тем не менее, разработчики должны знать об общих уязвимостях при создании своих проектов. Один из частых векторов атак в Web3 — это когда хакеры используют ботов для сканирования развернутых контрактов на наличие потенциальных уязвимостей и секретной информации, такой как закрытые ключи кошелька, оставшиеся в коде после тестирования. Использование такого инструмента, как Truffle Dashboard, — это один из способов избежать потери средств и активов из-за ошибок разработки.

Панель инструментов Truffle избавляет разработчиков от необходимости хранить закрытые ключи в файле конфигурации в проекте Solidity. Разработчики могут выполнить однократную настройку, чтобы подключить свой кошелек Metamask к локально размещенной панели инструментов в браузере. После того, как это будет сделано, достаточно использовать ключевое слово панели инструментов вместо копирования и вставки ключей в файл конфигурации. Он также совместим с другими средами разработки, такими как Hardhat.

Чтобы использовать Truffle Dashboard, установите последнюю версию Truffle и введите команду truffle dashboard в своем терминале. Теперь любые действия, для которых потребовались бы ваши закрытые ключи, могут быть перенаправлены через панель управления. Например, чтобы развернуть контракт, убедитесь, что в файле truffle-config.js указан правильный порт, затем щелкните правой кнопкой мыши контракт, чтобы развернуть его, и выберите dashboard: 24012. По умолчанию 24012.

Правильные инструменты, правильный путь вперед

Создание проекта Web3 не должно быть сложным. С правильными инструментами путь вперед становится ясным. Есть много способов улучшить ваш рабочий процесс, но расширение Truffle for VS Code Extension поможет вам эффективно работать в среде, с которой вы, возможно, уже знакомы. Это пространство движется довольно быстро, и постоянно создаются новые инструменты. Так что, надеюсь, эта статья дала вам представление о простом способе упростить процесс разработки при навигации по стеку инструментов Web3.