В этом документе обозначен общий план разработки, который будет обновляться по мере прогресса в работе над версией 1.0. Нужно отметить, что эта дорожная карта применима только к программному обеспечению блокчейна и не относится к другим инструментам и утилитам, например, кошелькам и обозревателям блоков, для разработки которых после завершения Этапа 1 будут созданы отдельные команды и дорожные карты.
Всё содержимое этого документа находится на стадии черновика и может измениться в любое время. Предоставленная информация служит сугубо информационным целям. block.one не гарантирует точности информации в этой дорожной карте, которая предоставляется "как есть" без явных или подразумеваемых гарантий и заявлений.
Цель этого этапа — установить API, которые потребуются разработчикам, чтобы начать создавать и тестировать приложения на EOS.IO. Чтобы разработчики могли начать тестировать свои приложения, необходимо реализовать следующие пункты:
Автономный узел обеспечивает работу тестового блокчейна и производит блоки, предоставляя доступ к API. Этому узлу не нужно задействовать какой-либо код P2P сетей.
Программное обеспечение EOS.IO обладает рядом нативных контрактов. Это контракты, управляющие основными операциями блокчейна и существующие вне интерфейса Web Assembly. Эти контракты включают в себя:
- @eos - управляет переводами токена EOS
- @stake - управляет удерживаемыми EOS, голосованием и выборами Производителей
- @system - управляет разрешениями, сообщениями и обновлениями контактного кода
Контракты компилируются в WebAssembly (WASM), и WASM должен взаимодействовать с блокчейном через определенный API. Этот API — то, от чего зависит возможность разработчиков строить приложения и стабильно контролировать процесс, прежде чем разработчики действительно смогут начать строить на EOS.
Разработчикам будет предоставлен простой JSON RPC через HTTP интерфейс, что позволит им транслировать транзакции и запрашивать состояние приложения. Это крайне важно как для публикации, так и для взаимодействия с тестовыми приложениями.
Инструменты командной строки позволяют интегрировать интерфейс RPC в среды сборки разработчиков.
Документация, объясняющая разработчикам, как начать строить на блокчейнах EOS.IO. Включает в себя документацию по WASM API, интерфейсу RPC и инструментам командной строки.
Всё представленное в Этапе 1 предполагает наличие доверенной среды, которая работает только с кодом самого разработчика. Прежде чем будет развернута тестовая сеть, нужно будет внедрить и протестировать несколько дополнительных функций.
Это плагин, отвечающий за синхронизацию состояния блокчейна между двумя автономными узлами.
Код WASM требует чистки, дабы убедиться в отсутствии недетерминированного поведения, такого как операции с плавающей точкой и бесконечные петли.
В целях предотвращения злоупотреблений мониторинг ресурсов и отслеживание использования ограничивают пользователей по скорости в соответствии с их долей в EOS.
Необходимо разработать инструменты для экспорта данных из состояния распределения токенов EOS и создания файла исходной конфигурации. Это позволит всем участникам распределения токенов получить некоторый первоначальный тестовый EOS (TEOS).
Эта функция включает в себя проверку правильности хэширования Меркла транзакций.
На этом этапе платформа будет проходить интенсивные испытания, сфокусированные на поиске уязвимостей в безопасности и багов. В конце 3-го этапа будет выпущена версия 1.0.
Примеры приложений необходимы для доказательства того, что платформа предоставляет реальным разработчикам все необходимые функции.
Сеть будет активно атаковаться спамом, эксплойтами виртуальных машин, остановкой из-за багов и нетерминистическим поведением, но сначала нужно будет удостовериться в стабильности версии 1.0.
Добавление поддержки нескольких дополнительных языков, которые будут компилироваться в WASM: C++, Rust и т.п.
После выпуска стабильной версии продукта 1.0 мы перейдем к оптимизации кода для параллельного исполнения.