Ethereum Virtual Machine
Платформа Ethereum была создана Виталием Бутериным в 2015 году и очень эффективно развивается в течение последних двух лет. Концептуально, он расширил исходное предложение и обеспечил наличие платформы на основе цельной основы для управления интеллектуальными контрактами. Следует отметить, что сам биткойн - это интеллектуальный контракт, который включает в себя несколько правил и операций, таких как отправка активов, проверка баланса и т. д.
Основное отличие биткойна от Ethereum заключается в том, как программируется логика. Bitcoin - это язык программирования, основанный на языке программирования очень низкого уровня, что требует большого знания протокола Bitcoin, в то время как сеть Эфириума поддерживает высокий уровень языка программирования, который упрощает работу пользовательских логики и после компиляции преобразуется в байт-код, который выполняется далее в вызове Ethereum Virtual Machine (виртуальная машина Ethereum, EVM). В сети Эфириума существует много общего со структурой виртуальной машины Java.
Основная конфигурация
Чтобы начать работу с сетью Ethereum, ознакомьтесь с документацией, доступной в Интернете:
1. Основное введение для новичков в программирование интеллектуальных контрактов с Ethereum (на английском языке).
2. Как создать смарт-контракт с помощью командной строки (на английском языке).
3. Учебник по разработке сети Ethereum (на английском языке).
Вы должны установить программное обеспечение для бумажника Ethereum Mist. Он предлагает аналогичные функциональные возможности кошелька, но и включает в себя другие функции, такие как DAPP-браузер.
Если у вас нет эфира, родного токена Ethereum, вы должны подумать об установке и настройке клиента CLI Ethereum. Есть несколько альтернатив, но наиболее популярной является Geth (написанная в протоколе Go), которая предлагает очень полный интерфейс для управления узлами Ethereum. Посетите страницу Github, чтобы загрузить пакеты, доступные для многих платформ, и следуйте инструкциям по установке.
Еще одна возможность получить эфиры и перейти непосредственно к основной сети Ethereum - купить их через многочисленные и популярные онлайн-услуги (например, Coinbase).
Разработка смарт-контракта и тестирование
Помимо кошелька программного обеспечения существует множество полезных инструментов для ускорения развития экосистемы Ethereum. Вы должны рассмотреть вопрос об использовании протокола IDE, который предлагает множество полезных функций, таких как:
- проверка синтаксиса;
- байт-код и код интерфейса;
- развертывания генерации кода;
- автоматическое развертывание в нескольких цепочках из тестовой строки в памяти;
- управление приватной строкой от локального хоста и общедоступной строкой (с плагином MetaMask).
Существует бета-версия полной онлайн-среды для разработки Ethereum. Зарегистрируйтесь для этого на веб-сайте ether.camp.
В зависимости от того, выполняется ли ваше приложение внутри браузера или оно работает, как автономный компонент на Java или NodeJS, у вас есть много инструментов и ускорителей в вашем распоряжении. В общем, лучше всего использовать библиотеку высокого уровня для взаимодействия со строкой вместо прямого вызова Ethereum с использованием вызовов RPC. Библиотека, которая в настоящее время очень популярна для Ethereum, - это Web3 / js, как для JavaScript, так и для Java. Для приложений на базе браузера вам следует использовать MetaMask, доступный в настоящее время в качестве плагина Chrome.
В случае Java библиотека web3j имеет несколько полезных инструментов для создания классов оболочки Java непосредственно для кодов Solidity, которые затем могут использоваться для взаимодействия с блок-цепочкой. Web3j поддерживает будущий механизм, поэтому вам не придется беспокоиться о синхронизации потоков низкого уровня. Если вы решите подключиться к публичной блок-цепочке и не хотите запускать полный узел на вашем локальном компьютере (что может потребовать много памяти), вы можете использовать программу Infura, которая запускает полный узел в облаке и позволяет вам взаимодействовать с ним, используя простые HTTP-вызовы.
Если вы хотите ускорить процесс работы и избежать излишнего использования эфиров, проверьте TestRPC. Эта блок-цепочка в памяти - идеальная симуляция, которая может ускорить разработку вашего умного контракта и поможет вам сохранять ваши эфиры в других случаях.
Когда вы знакомы с Solidity и разработкой смарт-контрактов, самое время начать автоматизировать жизненный цикл контрактов. Существует очень практичный инструмент, который дает вам возможность создавать контракты, как часть более сложных систем. Система Эфириума позволяет контролировать процесс компиляции, тестирования и реализации смарт-контракта, как и классические инструменты Maven или Gradle на Java. Вы можете взаимодействовать с потоком в реальном времени, как государственным, так и частным, также у вас есть возможность работать с TestRPC.