Текст книги "Разработка смарт-контрактов в Ethereum"
Автор книги: Тимур Машнин
сообщить о нарушении
Текущая страница: 3 (всего у книги 3 страниц)
Solidity Remix
Solidity – это высокоуровневый язык для виртуальной машины Ethereum с синтаксисом, похожим на JavaScript.
Программы на языке Solidity транслируются в байткод виртуальной машины Ethereum.
Для разработки смарт контрактов и изучения языка Solidity рекомендуется использовать среду разработки Remix.
Remix – это среда IDE для языка программирования Solidity, которая имеет встроенный отладчик и среду тестирования.
Среда Ремикс позволяет разрабатывать смарт-контракты с помощью редактора Solidity, отлаживать выполнение смарт-контракта, обеспечивает доступ к состоянию и свойствам уже развернутого смарт-контракта, отлаживать уже совершенную транзакцию, анализировать код Solidity, чтобы уменьшить ошибки кодирования и обеспечить соблюдение лучших практик.
Вместе с Mist или любым инструментом, который использует библиотеку web3, Remix можно использовать для тестирования и отладки децентрализованного приложения.
Доступна онлайн версия среды Remix.
Также можно установить локальную версию среды Remix.
Преимущество запуска локальной версии среды Remix заключается в том, что вы можете связаться с клиентом узла Ethereum, запущенным на вашей локальной машине через API-интерфейс Ethereum JSON-RPC, и локально выполнить смарт контракты.
Для установки локальной версии среды Remix можно открыть ветку github gh-pages и скачать архив.
Затем распаковать его и открыть страницу index.html.
Также можно установить Remix как npm модуль.
После установки Remix запускается командой remix-ide и открывается в браузере по адресу localhost.
При такой установке также устанавливается модуль Remixd – модуль npm, который предоставляет веб-приложению Ремикса доступ к папке на локальном компьютере.
По умолчанию это папка user.
Из Remix IDE вам необходимо активировать это соединение с локальным компьютером.
Для этого нажмите на значок подключения к локальному хосту.
В результате общая папка будет доступна в проводнике файлов среды Remix.
При запуске среды Remix из архива с помощью страницы index.html, доступа к папке локального компьютера не будет.
Для доступа нужно установить модуль Remixd глобально.
А затем запустить Remixd и расшарить какую-нибудь папку.
После этого можно перезапустить Remix и нажать кнопку соединения.
В результате общая папка будет доступна в проводнике файлов среды Remix.
Remix File Explorer
В проводнике файлов по умолчанию отображаются все файлы, хранящиеся в вашем браузере.
Вы можете увидеть их в папке браузера.
Вы всегда можете переименовать, удалить или добавить новые файлы в проводник файлов.
Обратите внимание, что очистка хранилища браузера удалит все файлы, которые вы написали.
Чтобы этого избежать, нужно использовать Remixd, который позволяет хранить и синхронизировать файлы в браузере с папкой локального компьютера.
При этом все изменения, сделанные в редакторе Remix будут автоматически сохраняться в файле папки локального компьютера.
Помимо соединения с локальным компьютером, кнопки вверху проводника файлов позволяют создать новый файл в хранилище браузере, импортировать локальный файл в хранилище браузера, скопировать файл из хранилища браузера в другой экземпляр Remix.
Также можно опубликовать файл из хранилища браузера в анонимный публичный gist.
Gist – это сервис Github, который позволяет обмениваться отдельными файлами, частями файлов и полными приложениями с другими людьми.
Remix Solidity Editor
Редактор Remix позволяет перекомпилировать код при каждом изменении текущего файла или выборе другого файла.
Он также обеспечивает подсветку синтаксиса, сопоставляемую с ключевыми словами языка Solidity.
Редактор Remix отображает открытые файлы в виде вкладок, отображает предупреждения компиляции и ошибки.
Кроме того, Remix непрерывно сохраняет текущий файл (в течение 5 секунд после последних изменений).
Кнопка +/– в верхнем левом углу позволяет увеличить/уменьшить размер шрифта редактора.
Внизу редактора расположен терминал, который отображает журнал при отладке контракта.
Remix Compile
Remix запускает компиляцию каждый раз при изменении текущего файла или выборе другого файла.
Если в контракте много зависимостей и требуется много времени для компиляции, можно отключить автокомпиляцию.
После каждой компиляции обновляется список со всеми скомпилированными контрактами.
В диалоговом окне Details отображается подробная информация о текущем выбранном контракте.
Ниже отображаются ошибки компиляции и предупреждения.
Здесь вы также можете опубликовать свой контракт на Swarm.
Remix Swarm
Swarm – это распределенная платформа хранения и служба распространения контента.
Хранение данных большого объема в самом блокчейне может стоить немалых денег.
Эта проблема решается с помощью децентрализованного хранилища Ethereum Swarm.
Swarm обеспечивает децентрализованное хранение данных в хранилищах узлов, владельцы которых отдают свои ресурсы в общее пользование.
Для работы децентрализованного хранилища Swarm устанавливаются узлы сети Swarm, которая работает поверх сети Ethereum.
При этом владельцы таких узлов получают вознаграждение за предоставление ресурсов, и стоимость размещения данных ниже, чем в традиционных облачных хранилищах.
Если вернуться к среде Remix, то при нажатии кнопки Publish on Swarm, в хранилище браузера будет создано хранилище Swarm, в которое сохранится файл.
При этом опубликованные данные будут содержать исходный код abi и solidity.
Application Binary Interface (ABI) – это механизм кодирования/декодирования данных в и из машинного кода виртуальной машины.
Исходный код ABI – это определение интерфейса контракта для доступа к бинарным данным контракта в блокчейне через интерфейс ABI.
Application Binary Interface (ABI) представляет собой схему кодирования данных, используемую в Ethereum для работы со смарт-контрактами.
Для реальной публикации файла в сеть Swarm требуется установка узла Swarm.
Кнопку Publish on Swarm среды Remix можно использовать для автоматической проверки исходного кода смарт-контракта или для извлечения определения интерфейса ABI.
При реальной публикации файла в сеть Swarm с помощью установленного узла Swarm, доступ к опубликованному файлу можно получить через свой локальный работающий узел Swarm по адресу http://localhost:8500/ и дальше URL адрес файла.
URL адрес файла представляет собой имя протокола bzz и дальше хэш файла.
Таким образом, Swarm определяет протокол bzz, который работает поверх сети ethereum.
И сеть Swarm представляет собой набор узлов в сети Ethereum, каждый из которых запускает протокол bzz.
Установку узла Swarm и его использование можно посмотреть в документации.
Remix Run
Вкладка Run среды Remix позволяет отправлять транзакции в текущую среду выполнения.
Здесь есть настройки, которые позволяют напрямую влиять на выполнение транзакции.
В списке можно выбрать среду выполнения.
Это JavaScript VM, где все транзакции будут выполняться в блокчейне браузера.
Это означает, что ничего не будет сохранено, и перезагрузка страницы браузера перезапустит новую цепочку с нуля, старая не будет сохранена.
Среда выполнения Injected Provider. Remix будет подключаться к инструменту со встроенным web3. Mist и Metamask являются примерами поставщиков, которые интегрированы с web3.
Среда выполнения Web3 Provider. В этом случае Remix будет подключаться к удаленному узлу.
И вам нужно будет указать URL-адрес выбранному поставщику, такому как geth, parity или любому другому клиенту Ethereum.
Что такое Web3?
Web3 – это официальная Javascript библиотека Ethereum, которая позволяет работать с Ethereum из кода пользовательского приложения.
web3.js – это библиотека, которая позволяет взаимодействовать с локальным или удаленным узлом ethereum, используя соединение HTTP или IPC.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.