🌐 Заря EOS.IO
В Технической Белой Бумаге EOS.IO мы представили появление программного обеспечения EOS.IO началом новой эры блокчейн-вычислений. Команда разработчиков EOS.IO провела лето в упорной работе. Лето закончилось, и разработка программного обеспечения EOS.IO даже опережает график. Теперь оно может использоваться с конфигурацией распределенной сети. У нас накопилось много интересных разработок ПО EOS.IO, о которых мы хотим вам сообщить, поэтому обязательно прочитайте до конца!
Доказательство производительности
Теперь, когда программное обеспечение EOS.IO можно использовать в конфигурациях распределенной сети, мы можем оценить его производительность. Наше внутреннее тестирование показало, что программное обеспечение в настоящее время может поддерживать более 10 000 однопоточных транзакций в секунду в многоузловой сети. Это делает нас ближе к цели обеспечить поддержку более 1 миллиона транзакций в секунду на машинах с более чем 100 ядрами ЦП.
Улучшения в архитектуре
Полагаем, разработчики будут рады узнать, что наши новейшие архитектурные усовершенствования программного обеспечения облегчают создание параллельных приложений, которые общаются друг с другом.
Общий доступ к базам данных
Теперь мы предоставили возможность одному приложению читать состояние базы данных другого приложения, не требуя при этом сложной асинхронной связи. Мы достигли этого, сохранив возможность параллельного выполнения, позволив каждой транзакции обозначать ту сферу действий (диапазон данных), в которой она может читать или записывать. Производители блоков будут планировать транзакции так, чтобы не возникало конфликтов данных.
Локальное хранение данных приложения пользователем
Помимо поддержки доступа к чтению данных для всех аккаунтов, приложения теперь могут хранить данные и на других аккаунтах. Это означает, что валютный контракт может хранить баланс на отдельных аккаунтах пользователей, а не в пределах его собственного хранилища. Перевод от Алисы к Бобу требует только доступа для чтения/записи к сфере действия Алисы и Боба – он никак не повлияет на сферу действия самого контракта. Это позволяет просто распараллеливать многие классы приложений и обрабатывать валютные переводы, обходя ограничение однопоточной пропускной способности. Насколько нам известно, никакая другая конструкция блокчейна не поддерживает столь легко масштабируемый и простой подход к разработке параллельной архитектуры программного обеспечения.
Встроенная передача сообщений
Отправлять сообщения другому приложению и точно знать, что они будут приняты и подтверждены, теперь проще, чем когда-либо. Приложение может создавать любое количество дополнительных сообщений для добавления в конец текущей транзакции. До тех пор, пока эти сгенерированные сообщения имеют одну и ту же сферу чтения/записи и могут выполниться в течение отведенного времени, они гарантированно будут доставлены, или же вся транзакция будет расформирована.
Этот подход в корне отличается от синхронного подхода, используемого другими платформами. Синхронная доставка сообщений, которая блокирует выполнение текущего потока до тех пор, пока он не завершится, создает потенциал для непредвиденного повторного входа. Повторный вход был источником многочисленных ошибок и эксплойтов, поскольку разработчикам сложно убедиться, что их контракт находится в согласованном состоянии до синхронного вызова. При встроенной передаче входящего сообщения, которая задерживает выполнение до окончания текущего обработчика транзакций, разработчики могут отправлять сообщение и действовать так, как будто доставка уже удалась. Если что-то пойдет не так, вся транзакция будет расформирована без каких-либо вредоносных побочных эффектов. Это означает, что ваши обработчики сообщений никогда не вызываются в несогласованном состоянии.
Передача отложенного сообщения
Иногда вам не известно, на самом ли деле сообщение действительно, или осталось ли время на часах, чтобы выполнить его в текущей транзакции. Также иногда вам нужно отправить сообщение, которое обращается к данным за пределами сферы действия текущей транзакции. В такой ситуации приложения могут запросить, чтобы производители блоков запланировали доставку сообщения в следующем цикле или в будущем блоке. Если оно действительно, ваше приложение может быть уведомлено; если это не так, то его доставка никогда не будет запланирована, и ваше приложение сможет очиститься после таймаута.
Неограниченное горизонтальное масштабирование
Последние достижения в области разработки программного обеспечения EOS.IO обеспечивают разработчикам высокую производительность на одной машине; предприятия смогут масштабироваться до миллиона транзакций в секунду, прежде чем им потребуется более сложная асинхронная архитектура.
Тем не менее, программное обеспечение EOS.IO по-прежнему будет поддерживать асинхронную передачу сообщений среди групп приложений, которым не требуется разделять одно состояние. Асинхронная передача сообщений обладает множеством преимуществ (среди которых простая поддержка кластеров), но эти преимущества связаны с повышенной сложностью разработки. Софт EOS.IO предоставляет такую опцию тем предприятиям, которым требуется несколько миллионов транзакций в секунду, но также предлагает оптимизированный подход для тех, кому это не нужно.
Топология сети следующего поколения
Программное обеспечение EOS.IO нацелено на расширение возможностей производителей блоков, чтобы они предоставляли высокопроизводительную децентрализованную инфраструктуру в качестве сервиса. Разработчикам приложений требуется нечто большее, чем группа производителей блоков, агрегирующих транзакции – им нужны узлы API, сид-ноды, индексы базы данных, хранилища и хостинг.
Высокопроизводительные блокчейны требуют наличия высокопроизводительных сетевых архитектур, требования к которым сильно разнятся от чейна к чейну. На уровне в миллион транзакций в секунду каждый узел должен разгоняться до 100 МБ/с на соединение. Это несложно для крупных дата-центров, но немыслимо для обычных пользователей.
Кроме того, высокопроизводительные блокчейны состоят из гетерогенных узлов, на которых запущены разные подмножества блокчейна, что, вероятно, сократит историю транзакций. Это заметный отход от предшествующих блокчейн-систем, где все узлы идентичны и содержат полную историю.
Традиционный блокчейн состоит из динамического набора соединенных случайным образом узлов в ячеистой сети. Он заточен под обычных пользователей с ограниченной пропускной способностью и предназначен для перемещения между домашними маршрутизаторами (NAT) и динамического добавления узлов в сеть. По нашему наблюдению эта архитектура не очень хорошо подходит для высокопроизводительной инфраструктуры блокчейна.
Программное обеспечение EOS.IO работает с предположением, что все узлы связаны друг с другом намеренно. Операторы узлов работают совместно, чтобы сетевая топология была безопасной, хорошо спланированной и эффективной. Это позволяет производителям блоков устанавливать прямые (и защищенные) соединения друг с другом и не позволяет злоумышленникам сканировать всю топологию сети для обнаружения и отключения узлов.
Производители блоков будут хостить публичные конечные узлы, к которым каждый сможет подключиться и подписаться на любые поднаборы данных транзакций, на которые пожелает. Это минимизирует требования к пропускной способности для полных узлов, управляемых не производителями блоков. Узлы, которые не хотят доверять какому-то одному производителю блоков, смогут либо подписаться на несколько источников, либо ждать подтверждения ⅔ производителей блоков (около 45 секунд).
Преимущество этой архитектуры в том, что новые узлы могут подключаться и синхронизироваться с очень высокой скоростью в инфраструктуре с высокой пропускной способностью, предоставляемой производителями блоков. Кроме того, эта архитектура в большей степени предназначена для обеспечения эффективной однонаправленной потоковой передачи, а не малоэффективных двунаправленных протоколов.
Если смотреть на всё в крупном масштабе, производители блоков будут управлять новой интернет-магистралью на программном обеспечении EOS.IO. Такие производители блоков будут подобны интернет-провайдерам 1-го уровня с выделенными оптоволоконными соединениями между континентами. Эти производители будут обеспечивать работу дата-центров, к которым могут подключаться абоненты 2-го уровня. 2-й уровень включает всех, кто хочет запустить полный или частичный узел или крупное приложение. Например, такие сервисы, как обозреватели блоков, веб-кошельки и криптовалютные биржи, будут абонентами 2-го уровня, подписанными на производителей блоков.
Мы думаем, что такая архитектура намеренного совместного построения сети позволит производителям блоков предлагать качество обслуживания, уникальное для криптовалютной индустрии.
Предстоящий путь
В сентябре этого года block.one выпустит EOS.IO Dawn 1.0, который должен быть достаточно стабильным и хорошо документированным для того, чтобы любой желающий запустил собственную тестовую сеть, в которой он сможет создавать и развертывать свои приложения. EOS.IO Dawn 1.0 станет первым пре-релизом нашего EOS.IO SDK (Software Development Kit).
Те, кто знаком с нашей дорожной картой EOS.IO, будут рады узнать, что мы опережаем график! Фаза 1 – Минимально жизнеспособная среда для тестирования, которая включает в себя автономный узел, исходные контракты, API виртуальной машины, RPC интерфейс, инструменты командной строки (eosc) и базовую документацию разработчика, завершена. Мы выпустим релиз, помеченный как «EOS.IO Dawn 1.0». По плану этот этап должен был завершиться летом 2017 года, до 22 сентября.
Мы уже выполнили половину фазы 2 – Минимально жизнеспособной тестовой сети. Этот этап планируется завершить осенью 2017 года, он включает в себя рабочий сетевой код, песочницу на виртуальной машине, ограничение на скорость и использование ресурсов, импорт генезиса и коммуникацию внутри блокчейна. На данный момент у нас уже есть функционирующие распределенные сети и песочница на виртуальной машине. Мы уверены, что завершим вторую фазу по графику.
EOS.IO Dawn 2.0, следующий крупный пре-релиз, выйдет в конце этого года. EOS.IO Dawn 2.0 будет включать в себя несколько важных функций, которых нет в EOS.IO Dawn 1.0, включая:
- Ограничение скорости использования ресурсов (предотвращение спама/злоупотребления)
- Генерация Дерева Меркла (для коммуникации между чейнами)
- Модернизация управления
- Более надежный SDK
- Общее улучшение инфраструктуры
- Пример снапшота на токенах ERC20
Цель EOS.IO Dawn 2.0 – быть достаточно функциональным, чтобы можно было запустить на нем жизнеспособный блокчейн.
И еще кое-что – хранилище EOS.IO!
Впервые разработчики смогут создавать и развертывать децентрализованные приложения и веб-интерфейсы, не беспокоясь о пропускной способности и расходах на хранение, или даже самостоятельно хостить любые серверы. Это позволяет создать множество новых инновационных децентрализованных бизнес-моделей, таких как децентрализованный YouTube, Soundcloud или другие подобные проекты с интенсивным использованием хранилища.
В дополнение к вычислительным мощностям, владельцы токенов, созданных на основе программного обеспечения EOS.IO, теперь получат доступ к бесплатному облачному хранилищу, хостингу и загрузочной пропускной способности через IPFS/HTTPS; этот доступ можно использовать без расходования или перевода токенов.
Чтобы этого добиться, производители блоков будут хостить файлы пользователей через IPFS/HTTPS и разрешать другим пользователям скачивать эти файлы. Ресурсы хранилища оплачиваются блокчейном за счет эмиссии и ограничиваются для держателей токенов пропорционально их запасам. Как и в модели пропускной способности EOS.IO, при хранении токены, созданные на основе программного обеспечения EOS.IO, не растрачиваются, и емкость хранилища из расчета на токен со временем увеличится с обновлением аппаратного обеспечения производителей блоков.
Решение для хранилища на программном обеспечении EOS.IO также может предоставлять публичный хостинг тем, у кого нет токенов. Более подробная информация будет опубликована на предстоящих ивентах, посвященных блокчейн-индустрии, которые пройдут в Шанхае и Лондоне.
Дисклеймер
block.one является компанией-разработчиком ПО и выпускает программное обеспечение EOS.IO в качестве бесплатного программного обеспечения с открытым исходным кодом. Это программное обеспечение может позволить тем, кто его устанавливает, запустить блокчейн или децентрализованное приложение с функциями, описанными выше. block.one не будет запускать публичный блокчейн на основе программного обеспечения EOS.IO. За реализацию функций и/или предоставление услуг, описанных выше, по своему усмотрению, будут нести ответственность исключительно третьи стороны и сообщество, а также те, кто захочет стать производителями блоков. block.one не гарантирует, что кто-либо будет реализовывать эти функции или предоставлять такие услуги, или что программное обеспечение EOS.IO будет принято и применено каким-либо определенным образом.
Все заявления в этом документе, за исключением заявлений об исторических фактах, включая любые заявления о бизнес-стратегии block.one, ее планах, перспективах, разработках и целях, являются лишь прогнозными заявлениями. Эти утверждения носят сугубо предсказательный характер и отражают текущие убеждения и ожидания block.one относительно будущих событий, которые основаны на предположениях и подвержены рискам, неопределенностям и изменениям в любое время. Мы работаем в быстро меняющейся среде. Время от времени появляются новые риски. Учитывая эти риски и неопределенности, мы предостерегаем вас от всецелого полагания на эти прогнозные заявления. Фактические результаты, производительность или события могут существенно отличаться от тех, которые содержатся в прогнозных заявлениях.
Некоторые из факторов, которые могут привести к существенным отличиям фактических результатов, производительности или событий от прогнозных заявлений, содержащихся в настоящем документе, включают в себя, без ограничений: волатильность рынка; постоянную доступность капитала, финансирования и персонала; принятие продукта; коммерческий успех любых новых продуктов или технологий; конкуренцию; государственное регулирование и законы; а также общие экономические, рыночные или деловые условия. Любое прогнозное заявление, сделанное block.one, актуально только в дату его публикации, и block.one не несет никакой ответственности и прямо отказывается от каких-либо обязательств по обновлению или изменению своих прогнозных заявлений, будь то в результате появления новой информации, последующих событий или иных факторов.
Свежие новости в Телеграм: t.me/EOS_RU
Оригинал поста: ЗДЕСЬ