На последнем собрании рабочего комитета проекта Hyperledger, возглавляемом Linux Foundation, которое состоялось 3 марта, была открыта информация о проекте под названием Juno. Исполнительный директор JPMorgan Дэвид Воуэлл (David Voell) рассказал на собрании о том, что банк работает над Juno с сентября прошлого года. Пилотную модель проекта представил один из его разработчиков, Вилл Мартино (Will Martino).

По словам Мартино, команда разработчиков Juno не ограничивается моделями Proof-of-work и Proof-of- stake, сам проект начинался с обновления реализации Tangaroa на основе языка Haskell, используемого для реализации консенсусного алгоритма Raft. Он упомянул, что использование Tangaroa исключает необходимость майнинга.

Применение в качестве основы протокола Raft позволяет кластеру серверов упорядочивать сообщения и отправлять их в сеть. Внутри сети избрание «лидера» гарантирует, что среди «последователей» можно достичь консенсуса. Мартино объяснил, что, так как на входах и выходах в Juno требуется только консенсус, снижается вероятность того, что медленные узлы будут задерживать всю систему.

Как только переданные внутри сети сообщения будут выстроены и продублированы, они интерпретируются и реплицируются конечным узлом. Juno позволяет Лидеру подавать выход в конечную машину, когда вход дублируется большинством узлов.

Для запуска смарт-контрактов в репликацирующей машине Juno использует язык под названием Hopper. На данный момент язык находится в стадии разработки. После того, как работа над ним будет закончена, это будет консистентный, полностью детерминированный и сериализуемый язык.

Что касается самого неизменяемого реестра, команда JPMorgan не стала обращаться к используемому в Биткоине дереву Меркла. Вместо этого они используют основанный на Tangaroa хешированный журнал входов. В результате создается блокчейн из отдельных блоков транзакций и сокращается возможность обновлений. Сейчас команда решает, нужно ли дальше защищать журнал при помощи хеша контрольных точек через определенные промежутки времени, или же использовать хеш через несколько этапов после последней транзакции.

Команда проекта также заострила внимание на проблемах, с которыми они столкнулись. Одна из них - различия в хешах Последователей в сети.

Учитывая непрекращающиеся споры по поводу пропускной способности блокчейна в сети Биткоина, основной проблемой, несомненно, остается масштабируемость. Протестировав образец на основе MacBookPro, Juno удалось достичь пропускной способности 500 консенсусов в секунду, и времени задержки консенсуса в 2 миллисекунды. Это очень хорошая новость. Из-за ограничения размера блока Биткоин может обрабатывать не боле семи транзакций в секунду. Для сравнения, сеть Visa обрабатывает в среднем около 2 000 транзакций в секунду.

Команда Juno планирует увеличить эту цифру в два-три раза, применив оптимизацию , включающую в себя GC-тюнинг, пакетную обработку записей журнала и конфигурацию уровня передачи сообщений.
Устойчивая версия кода уже опубликована на сайте GitHub для всех, желающих ее протестировать. Команда JPMorgan предупреждает, что версия с открытым исходным кодом работает немного хуже, чем внутренняя версия, используемая в тестах.

Среди характеристик, которые JPMorgan планирует включить в следующий релиз Juno - дополнительные состояния узлов, интегрированные клиентские командные серверы HTTP, устойчивость с помощью SQLite, а также интеграция системного мониторинга.