Пост «Настройка среды разработки для блокчейна» впервые появился на Coinpedia Fintech News

1. Введение

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

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

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

Операционная система: 

Вы можете разрабатывать блокчейн-приложения на любой ОС, но macOS и Linux предпочтительнее из-за лучшей совместимости и поддержки.

Linux: Linux является бесплатным продуктом с открытым исходным кодом и обеспечивает гибкость и настройку. Он имеет обширную поддержку сообщества и богатые ресурсы. Существуют популярные дистрибутивы Linux, которые широко используются. Один из них — Ubuntu, который идеально подходит для новичков, а другие — Fedora и Debian. В основе большинства проектов инструментов блокчейна лежит Linux.

MacOS: MacOS похожа на Linux; он основан на Unix и имеет сходство с инструментами командной строки и средой разработки. Интеграция аппаратного и программного обеспечения является бесшовной. Кроме того, он имеет отличную встроенную поддержку, такую ​​как Homebrew, Xcode и Docker.

Windows: вы по-прежнему можете использовать Windows с WSL (подсистема Windows для Linux), это позволяет запускать Linux вместе с Windows. Это дает вам лучшее из обоих миров: знакомство с Windows и мощными инструментами Linux.

Таблица различий между ОС/Mac/Linux

1.Редакторы кода/IDE:

Хороший редактор кода или IDE может сделать вашу работу более продуктивной. Вот несколько вариантов для размышления:

  • VSCode: Он довольно легкий и имеет отличные дополнения для различных языков кодирования и инфраструктур блокчейна.

  • IntelliJ IDEA: Это сильная идея, и она очень полезна, если вы возитесь с проектами блокчейна Java.

  • Sublime Text: это быстро, и вы можете многое настроить. Замечательно, если вам нравится, чтобы все было просто.

2. Системы контроля версий: 

Контроль версий очень важен для любого проекта, в котором вы что-то создаете. Git, наряду с такими веб-сайтами, как GitHub или GitLab, помогает вам хорошо управлять своим кодом, работать с другими людьми и следить за тем, что меняется. Эти инструменты упрощают управление вашей кодовой базой, объединение усилий с другими и будьте в курсе всех обновлений.

3. Установка необходимого программного обеспечения

Языки программирования

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

JavaScript/Машинопись:

Питон:

Идти:

Ржавчина:

Докер:

Docker помогает создать согласованную среду разработки.

  • Этапы установки Docker.

4. Платформы и инструменты разработки блокчейна

  • Общая настройка:

Общая настройка включает в себя различные инструменты и библиотеки, которые поддерживают блокчейн независимо от конкретного блокчейна. Существуют такие инструменты, как Truffle и Hardhat, которые обеспечивают комплексную среду разработки.

  • Популярные фреймворки:

  1. Hyperledger Fabric: специальная блокчейн-система, созданная для использования крупными компаниями.

  2. Tendermint: быстрый инструмент блокчейна, который поддерживает византийские отказоустойчивые (BFT) способы согласования вещей.

Контейнеризация и виртуализация:

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

5. Настройка локальных сетей блокчейна

  • Общие инструменты:

Ниже приведены некоторые общие инструменты, которые пригодятся для управления и эксплуатации локального блокчейна:

Docker Compose: Docker Compose используется для определения и запуска многоконтейнерных приложений Docker. Он использует файл docker-compose.yml. Вот шаги по установке:

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

Ямл-файл:

Развертывать:

  • Запуск локальных узлов:

Настройка локального узла полезна для тестирования вашего приложения в контролируемой среде. Вот шаги для настройки:

  • Использование виртуальных машин:

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

6. Разработка смарт-контрактов

Общие языки:

  • Смарт-контракты обычно пишутся на Solidity и Rust:

  • Solidity: Вот как вы можете установить Solidity:

npm install -g solcsolc –версия

Ржавчина:

Цель ржавчины добавить wasm32-unknown-unknown

Компиляторы и линтеры:

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

Вот этапы составления договора: 

1. Солидность:

solc –bin –abi –optimize -o build/ YourContract.sol

Создайте файл .solhint.json { “extends”: “solhint:recommended”,  “rules”: {    “indent”: [“error”, 4],    “кавычки”: [“error”, “double”]  }}

2. Ржавчина:

Установите компонент Clippy:rustup, добавьте клиппи Создайте файл Clipy.toml[clippy]warnings_as_errors = true

Написание смарт-контрактов

При написании смарт-контракта следует учитывать рекомендации и рекомендации, которым следует следовать:

  • Убедитесь, что ваш код является модульным и допускает повторное использование.

  • Проводить аудит безопасности

  • Обеспечьте эффективность использования газа для снижения транзакционных издержек

  • Провести тщательное тестирование 

  • Документируйте свой код правильно

  • Используйте библиотеки SafeMath

  • Всегда проверяйте возвращаемые значения и ошибки

  • Избегайте жесткого кодирования значений в вашем контракте

  • Следуйте единому стилю кодирования

  • Внедрить механизмы контроля доступа

  • Регулярно обновляйте зависимости

  • Используйте события для журналирования

  • Используйте стандартные библиотеки.

  • Используйте кошельки с мультиподписью 

  • Составьте долгосрочный план обслуживания вашего контракта.

7. Тестирование и отладка

Платформы тестирования:

  • Тестирование — последняя и самая сильная основа любой разработки. Mocha и Chai необходимы для тестирования контрактов в JavaScript. Mocha — это среда тестирования, а Chai — это библиотека утверждений, которые одновременно помогают выполнять тесты и писать тестовые утверждения. Waffle — это среда тестирования, которая легко интегрируется с Hardhat. Он предоставляет расширенные возможности тестирования и содержит исчерпывающие утверждения.

Инструменты отладки:

  • Отладка — это поиск ошибок и их исправление в коде. Некоторые инструменты помогают в этом. Для отладки используются такие инструменты, как Remix, GDB.

Непрерывное тестирование:

Постоянное тестирование очень важно в наши дни при создании программного обеспечения. Это гарантирует, что ваш код будет неоднократно проверяться и проверяться машинами. Используя инструменты, помогающие с непрерывной интеграцией (CI) и непрерывным развертыванием (CD), вы можете настроить систему, которая сама запускает тесты всякий раз, когда кто-то меняет код. Это помогает находить проблемы и поддерживать код в хорошем состоянии.

8. Инструменты развертывания

Общие стратегии развертывания:

  • Вот несколько общих стратегий развертывания:

  1. Локальное развертывание. Развертывание осуществляется локально и контролируемым образом с использованием таких инструментов, как Ganache и Docker.

  2. Развертывание тестовой сети. Это делается для тестирования приложения в реальной среде без реальных ресурсов.

  3. Развертывание основной сети: это важный шаг, при котором вы развертываетесь в основной сети, где происходят реальные активы и транзакции. Перед развертыванием такое развертывание требует тщательного тестирования.

  4. Автоматическое развертывание. Используйте конвейеры CI/CD для развертывания для автоматизации и повторения.

Скрипты и автоматизация:

Вот как можно написать скрипты для автоматизации:

Скрипты хардхата:

Использование облачных сервисов:

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

AWS: (Веб-сервисы Amazon):

  • AWS — это облачный сервис, управляемый Amazon, который полезен для настройки экземпляров EC2 для работы узлов. Мы можем развертывать смарт-контракты, используя лямбда-выражение AWS для бессерверного выполнения.

Лазурный

Служба Azure Blockchain помогает управлять сетями блокчейнов. Вы можете использовать функции Azure или Azure DevOps, чтобы привести в действие свой блокчейн и поддерживать его обновление.

GCP

Kubernetes Engine (GKE) или Compute Engine от Google Cloud позволяет настраивать узлы блокчейна. Функции Google Cloud и Cloud Build упрощают настройку блокчейна.

9. Подключение к внешним сетям

1. Конфигурация: шаги по настройке соединений:

  • Конфигурация сети: настройте конфигурации сети в соответствии с вашими требованиями. Здесь приведен пример Ethereum:

Файл Json: {  “networks”: {    “mainnet”: {      “url”: “https://mainnet.infura.io/v3/YOUR-PROJECT-ID”,      “accounts”: [“0xYOUR_PRIVATE_KEY”]    }  }}

  • Переменные среды: используйте файлы и библиотеки .env, такие как dotenv, для управления переменными среды и безопасного хранения информации о безопасности и закрытых ключей.

2. API и библиотеки:

  • Использование API и библиотек для взаимодействия с внешними сетями упрощает взаимодействие. Вот некоторые часто используемые API:

Ethers.js const { ethers } = require(“эфиры”); const поставщик = новый ethers.providers.InfuraProvider("усадьба", "ВАШ-ПРОЕКТ-ИД");

Polka.jsconst { ApiPromise, WsProvider } = require('@polkadot/api');const поставщик = новый WsProvider('wss://rpc.polkadot.io');const api = ждут ApiPromise.create({провайдер }) ;

Web3.js для Ethereum:const Web3 = require('web3');const web3 = new Web3('https://mainnet.infura.io/v3/YOUR-PROJECT-ID');

Интеграция кошелька:

  • Интеграция кошелька позволяет пользователям взаимодействовать с блокчейном посредством транзакций и взаимодействий. Вот шаги для интеграции кошелька:

Метамаска:

const поставщик = новый ethers.providers.Web3Provider(window.ethereum);

КошелекПодключение:

const WalletConnectProvider = require("@walletconnect/web3-provider");const поставщик = новый WalletConnectProvider({infuraId: "ВАШ-INFURA-ID" });

10. Непрерывная интеграция и развертывание (CI/CD)

Общие инструменты CI/CD:

  • Действия Github: Действия GitHub позволяют настроить CI/CD для блокчейна.

Трэвис CLI:

Circle CLI: CircleCI — это еще один способ реализации CI/CD, который хорошо работает с блокчейн-проектами. CircleCI предоставляет вам необычные возможности для самостоятельного развертывания.

Автоматизированное тестирование и развертывание:

  • Написание рабочих процессов для автоматического тестирования и развертывания обеспечивает согласованность кода и помогает выполнять быстрые итерации.

Тестирование: хард-хэт npx testDeployment: развертывание хард-хэта npx

11. Инструменты безопасности

Безопасность лежит в основе мира блокчейна, поэтому крайне важно использовать лучшие инструменты безопасности. Общие правила обеспечения безопасности:

  • Проводите регулярные проверки кода

  • Иметь точный контроль доступа к публичным и частным функциям

  • Проводите регулярные проверки

Инструменты статического анализа:

  • Инструменты статического анализа полезны для выявления уязвимостей нашего кода и их устранения. Некоторые инструменты, используемые для этого, — это Mythril и Slither.

Регулярные аудиты:

Проводить регулярные внешние и внутренние аудиты и устранять проблемы, возникающие до начала эксплуатации контрактов.

12. Лучшие практики

Структура папки:

  • Поддерживайте правильную и чистую структуру папок для организованного доступа и отсутствия беспорядка в проекте.

Переменные среды

  • Используйте файлы env и библиотеки dotenv. 

  • Используйте инструменты управления секретами, такие как менеджер секретов AWS или Azure Key Vault.

Документация:

Документирование кода так же важно, как и написание кода.

  • Поддерживайте правильный файл README, чтобы другие могли понять ваш проект.

  • Добавляйте комментарии в коде там, где это необходимо.

  • Используйте вики проекта или API-интерфейсы документации.

13. Заключение

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