В Ethereum также есть два дополнительных протокола, реализующих поддержку однорангового обмена сообщениями и статическими файлами.
Одноранговый распределенный протокол для обмена сообщениями получил название whisper.
Он предоставляет пользователям возможности для личного защищенного общения с поддержкой отправки сообщений одному или нескольким адресатам и рассылке широковещательных сообщений.
Одноранговый протокол для обмена статическими файлами получил название swarm.
Whisper – это одноранговый протокол для конфиденциального обмена сообщениями с коротким сроком жизни.
Заголовок сообщений (тема) в Whisper хэшируется, а сами сообщения могут быть зашифрованы с помощью ключей в целях защиты данных.
Swarm представляет собой мотивированный файлообмен.
Файлы делятся на части, хранящиеся на узлах сети.
Для ведения учета отправленных и полученных частей файлов узлы используют специальный учетный протокол, а сама деятельность узлов оплачивается микроплатежами – мера, призванная поощрить кооперацию между ними.
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.
При этом владельцы таких узлов получают вознаграждение за предоставление ресурсов, и стоимость размещения данных ниже, чем в традиционных облачных хранилищах.