Релиз кода IoTeX — Mainnet Preview (Photon)

Привет, сообщество IoTeX! С момента нашего последнего выпуска кода в августе, команда IoTeX добилась больших успехов в исследованияхдоказательствах концепции и росте сообщества. Самое главное, что мы достигли невероятного прогресса в техническом развитии и на один шаг стали ближе к нашей цели создания самой безопасной, удобной и производительной блокчейн-платформы во всей отрасли. Сегодня мы с гордостью запускаем наш четвертый релиз кода — предварительный просмотр главной сети (Mainnet Preview) “Photon” — который включает в себя новые интересные функции, которые будут полностью реализованы в полной Альфа версии главной сети в 1 квартале 2019 года:

  • Обеспечение субцепей: поддержка двух независимых блокчейнов (корневой цепи, субцепи), работающих на отдельных базах данных в сети IoTeX
  • Межблокчейновая связь: возможность передачи от корневой цепи к субцепи, с поддержкой кошелька IoTeX обеими цепочками
  • Усовершенствования консенсуса: повышение производительности Roll-DPoS (1,000+ TPS & 100+ node tests) и новые улучшения безопасности
  • IoTeX Explorer v2.0: отдельные страницы IoTeX Explorer для визуализации активности в корневой цепи и субцепи

Вы можете увидеть открытый исходный код на нашем Github сейчас.

Подробные инструкции по запуску кода Photon приведены в этом файле README, а подробное демо-видео также можно найти здесь.

Почему “Photon”? — Kenneth Lane Thompson

Photon назван в честь Kenneth Thompson (Photon состоит из букв от “Thompson”), следуя тенденции именования релизов кода IoTeX в честь пионеров информатики. Ранее в этом месяце, мы дали нашему сообществу возможность предложить и проголосовать за кодовое имя для Майннет Привью. Мы получили более 12,600 заявок, и из пяти финалистов, Photon стал единогласным победителем получив 27% всех голосов. Спасибо всем, кто принял участие! Полный список победителей мы объявим завтра!

Kenneth Thompson — американский пионер в области компьютерных наук. Он наиболее известен изобретением нескольких языков программирования (например, Go, B) и операционных систем (например, Unix) и получил премию Тьюринга в 1983 году. Как вы, возможно, знаете, блокчейн IoTeX кодируется в Go (совместно изобретенный Томпсоном) — название этого выпуска “Фотон” является данью работе Томпсона, которая обеспечивает строительные блоки для IoTeX и наших инноваций на сегодняшний день.

Обзор & свойства Photon

В Photon, мы предварительно показываем некоторые новые технологические концепции, которые будут полностью развернуты в нашем Альфа-релизе главной сети в первом квартале 2019 года. Цель IoTeX — создать блокчейн, который может поддерживать все типы сценариев использования Интернета Вещей (IoT) — умные города, цепочки поставок, носимые устройства, автономные транспортные средства и многое другое. Несмотря на общие требования (масштабируемость, конфиденциальность, поддержку устройств Интернета Вещей), каждый вариант использования уникален и требует индивидуального подхода для оптимизации производительности и безопасности. Чтобы учесть это разнообразие, IoTeX использует архитектуру корневой цепи/субцепей, которая позволит разработчикам создавать индивидуальные субцепи, используя дизайн, который лучше всего подходит для их DApps. Приложения будут легко обмениваться ценностями и данными с другими приложениями через межцепочную связь. Таково наше видение будущего IoT — динамичной экосистемы универсальных и совместимых субцепей, работающих на базе IoTeX.

За последние два месяца, мы разработали несколько собственных инноваций, которые приближают нас к нашему видению будущего Интернета Вещей. Основные функции Photon, о которых мы подробно расскажем в следующих разделах, включают в себя обеспечение субцепей, межцепочную связь, усовершенствования консенсуса (Roll-DPoS) и IoTeX Explorer v2.0. Благодаря исчерпывающим обзорам кода/“неделям качества”, мы значительно повысили стабильность наших смарт-контрактов, кошелька и существующей кодовой базы. Наконец, мы тщательно протестировали тестовую сеть IoTeX и достигли 1000+ TPS (с мгновенной завершенностью) и успешно развернули 100+ узлов с помощью Kubernetes. Полный список функций и улучшений Photon приведен ниже:

Обеспечение и управление субцепями

Архитектура корневой цепи/субцепи является основной частью дизайна блокчейна IoTeX, позволяя любому пользователю создавать свои собственные субцепи и выбрать архитектуру, язык программирования и даже консенсусный механизм, который наилучшим образом будет соответствовать его целям. Например, субцепь, ориентированная на конфиденциальность, выиграет от архитектуры Mimblewimble, в то время как субцепь, требующая более высокой пропускной способности, может использовать большие блоки. Субцепи не только повышают гибкость для разработчиков, но и добавляют масштабируемость. Можно думать о субцепях как об отдельных блокчейнах, работающих параллельно, где активность в одной субцепи не влияет на пропускную способность других субцепей. Их состояния (т.е. история транзакций) периодически синхронизируются с корневой цепью, которая записывает состояние всей сети IoTeX. Способность добавления неограниченного количества субцепей делает сеть IoTeX практически бесконечно масштабируемой.

В Photon, мы вводим нашу первую пару корневой цепи/субцепи, которые являются отдельными, однородными блокчейнами, работающими в отдельных базах данных. Они используют некоторые общие P2P сети, но в остальном независимы, что означает, что транзакции в корневой цепи и субцепи регистрируются в отдельных реестрах, и каждый из них будет производить блоки параллельно. Хотя субцепи являются гибкими и настраиваемыми, корневая цепь является более жесткой и выполняет определенные роли. В сети IoTeX, одна из ролей корневой цепи заключается в записи состояния каждой субцепи в различные моменты времени (блоки), что подробно показано на следующей схеме.

Каждый блок субцепи содержит различные типы транзакций, включая передачу токенов/данных и выполнение смарт-контрактов. Как и в каждом блокчейне, блок производится и проверяется (“майнится”) после достижения максимального предела газа блока. Кроме того, дайджест транзакций субцепи записывается в корневую цепочку для каждого нового созданного блока. Это достигается путем сообщения хэш-корня (он же хэш-идентификатор на диаграмме выше) транзакций дерева Merkle, каждый раз, когда добывается блок субцепи; проще говоря, Дерево Меркла — это иерархическое представление истории транзакций блокчейна в определенный момент времени. Каждый новый блок будет иметь уникальное дерево Меркла и, следовательно, уникальный хэш-идентификатор, который передается в корневую цепочку в качестве доказательства того, что произошло в субцепи с момента последнего блока.

Транзакции корневой цепи состоят из голосов за делегатов, межцепочных передач ценности/данных (описанных в следующем разделе) и хэш-идентификаторов различных блоков субцепей, которые представляют собой “снимки” истории транзакций всех субцепей в сети IoTeX. Как показано на рисунке выше, блок 3 корневой цепи содержит несколько межцепочных транзакций (т. е. Hash ID (cross-chain)), а также хэш-идентификаторы нескольких блоков (т. е. A, B, C, X-2, X-3). “Х-2” находится в состоянии субцепи Х-2 после второго блока, “Х-3” находится в состоянии субцепи после третьего блока, состояние субцепей А, B и C, также записываются. В зависимости от количества транзакций, генерируемых в субцепи (т.е. скорости, с которой она создает новые блоки), несколько хэш-идентификаторов блоков субцепи могут храниться в одном блоке корневой цепи.

Конечным результатом является массовая масштабируемость. С обычной блокчейн архитектурой, все транзакции субцепи X хранились бы индивидуально в корневой цепи. Благодаря архитектуре IoTeX, мы можем эффективно хранить весь блок субцепей как одну транзакцию в корневой цепи, обеспечивая масштабируемость “100 к 1”. Благодаря возможности добавления неограниченного количества параллельно обрабатываемых субцепей, сеть IoTeX в будущем сможет поддерживать миллиарды устройств IoT.

Межцепочная коммуникация (Cross-chain Communication, CCC)

Межцепочная связь, которая обеспечивает совместимость между блокчейнами, является широко исследуемой темой в индустрии блокчейнов. Такие проекты, как Polkadot, Cosmos и Aion, имеют разные подходы к созданию интероперабельной сети блокчейнов. Концепция интероперабельных блокчейнов (т.е. субцепей IoTeX) является ключевым компонентом нашего видения будущего IoT. Сегодня устройства Интернета Вещей и компании, работающие на различных облачных платформах (например, AWS, Google, Azure), не могут обмениваться данными, что значительно ограничивает ценность и возможности Интернета Вещей. Обеспечение совместимости между уникальными и сложными отраслями IoT является основным направлением IoTeX, поэтому наши первоначальные проектные решения сосредоточены на поддержке гетерогенных субцепей и межцепочной связи.

В Photon, мы предварительно показываем возможности межцепочной связи между корневой цепью и субцепью, которые являются независимыми блокчейнами. За последние месяцы, мы исследовали и разработали строительные блоки для обеспечения двусторонней передачи данных и ценности (т.е. токенов) между корневой цепочкой/субцепями — мы планируем выпустить исследовательские работы в ближайшие недели и полностью развернуть межцепочную связь в нашем Альфа-выпуске основной сети. Для нашего выпуска Photon, мы предварительно рассмотрим некоторые из этих строительных блоков:

  • Депозиты токенов из корневой цепи в субцепь: передача токенов EIOTX между независимыми блокчейнами (т.е. корневой цепью и субцепью) через Explorer API вызов
  • Обновленный кошелек IoTeX: используйте один кошелек как для корневой цепи, так и для субцепи (т.е. разные адреса аккаунтов, один и тот же приватный ключ) с отдельными балансами токенов

Создание кошелька для корневой цепи

Создание кошелька для субцепи

Сохраните публичный ключ вашего кошелька для субцепи

Теперь вы можете просмотреть эти функции и протестировать функцию депозита в новом кошельке IoTeX. Пошаговые инструкции по созданию кошелька для корневой цепи и субцепи приведены выше, и вы можете найти демо в нашем обзорном видео Photon. В ближайшие недели, мы запустим несколько программ вознаграждений сообщества, которые позволят нашему сообществу дополнительно протестировать эту функциональность и изучить нашу архитектуру корневой цепи/субцепей.

Обновление Консенсуса Roll-DPoS

В дополнение к добавлению новых функций, Photon также повышает производительность и безопасность нашего собственного механизма консенсуса Roll-DPoS. Что касается производительности, мы сократили время производства блоков (т.е. задержку) на 30% с 10 до 7 секунд. Мы также реализовали ротацию делегатов на основе времени, которая автоматически заменяет не активного добытчика блока, активным делегатом, после настраиваемого ограничения по времени. Что касается безопасности, мы внедрили распределенную генерацию ключей, значительное улучшение безопасности для генерации двойного ключа, которое было реализовано в бета-версии тестовой сети “Epik”.

Благодаря нескольким спринтам по улучшению качества кода тестнета, мы смогли значительно повысить стабильность, что позволило нам раздвинуть границы нашей тестовой сети. В промежуточной (staging) среде, мы смогли достичь потрясающих результатов — более 1,000 TPS, 1 секунда задержки и поддержка 100 делегатов. К моменту запуска Mainnet Alpha в первом квартале 2019 года, мы ожидаем достижения наших текущих пиковых результатов производительности с полной стабильностью.

IoTeX Explorer v2.0

Чтобы визуализировать активность блокчейна, корневой цепи и субцепи, которые являются отдельными блокчейнами, мы добавили Explorer как для корневой цепи, так и для субцепи. Как наши существующие последователи знают, мы недавно открыли исходный код IoTeX Explorer, чтобы позволить нашему сообществу создавать свои собственные Explorers и контролировать деятельность блокчеина.

Как показано выше, Explorer корневой цепи показывает всю историю следующих типов транзакций: голосов для делегатов, межцепочные передачи ценностей/данных и хэш-идентификаторы, представляющие историю блоков субцепей. Поскольку голосование Roll-DPoS и производство блоков выполняется в корневой цепи, график глобуса в Explorer корневой цепи показывает, какой из 22 кандидатов был выбран для создания и проверки блоков для текущей эпохи. Текущая тестовая сеть использует 22 кандидата, что означает, что сеть может выдерживать до 7 вредоносных узлов (Примечание: PBFT может выдерживать X атакующих при наличии 3x + 1 узлов).

Как показано выше, Explorer субцепей аналогичен Explorer корневой цепи. Однако, учитывая, что голосование происходит только в корневой цепочке, Explorer субцепей содержит только два типа транзакций: передача ценности/данных и выполнение смарт-контрактов. Другие компоненты (например, # блоков, # эпох, IFTPS, BBH) все такие же, как и в Explorer корневой цепи. Мы рекомендуем вам сделать свои собственные межцепочные транзакции между корневой цепочкой и субцепью и найти соответствующий идентификатор блока/транзакции в корневой цепи и Explorers субцепях.

Что мы можем ожидать в ближайшие месяцы?

Photon отмечает окончательную версию IoTeX Testnet — отсчет времени до запуска нашей альфа-версии главной сети в 1 квартале 2019 года официально начался! Mainnet Alpha будет самой большой вехой IoTeX, поскольку она представляет наш официальный переход от тестовой сети к главной. Чтобы подготовиться к этому переходу, в ближайшие несколько месяцев будут загружены активность в техническом развитии, создания структуры протокола и управления и лидерства. Некоторые интересные вещи, которые можно ожидать в течение следующих нескольких месяцев:

  • Разработка новых функций, включая субцепи и аппаратное обеспечение с поддержкой конфиденциальности
  • Пакеты для разработки собственных приложений (SDKs) и документация для запуска узла в тестнете
  • Полностью открытая тестовая сеть, где пользователи могут проверять транзакции, создавать децентрализованные приложения (DApps) и исследовать сеть IoTeX
  • Информация о программе выборов производителя блоков (BP) будет опубликована
  • Баг баунти, ориентированные на хакеров/разработчиков
  • Научно-исследовательские работы по субцепям, межцепочной связи и Roll-DPoS
  • Программы вознаграждения сообщества для тестирования функций и продвижения IoTeX
  • Доказательства концепции и демонстрации IoTeX в действии

Подпишитесь на наши официальные каналы

Чтобы узнать больше о IoTeX или обсудить технические аспекты нашего проекта, вы можете связаться с нами через любой из наших официальных каналов ниже:

Сайт: https://iotex.io
Канал новостей в Телеграмме: https://t.me/iotexchannel
Главный канал в Телеграмме: https://t.me/IoTeXGroup
Русский канал в Телеграмме: https://t.me/IoTeXGroupRU
Твиттер: https://twitter.com/iotex_io
Медиум: https://medium.com/@iotex
Реддит: https://www.reddit.com/r/IoTeX/
Присоединяйтесь к нам: https://iotex.io/careers