
2 ноября было выпущено обновление катапульты Bison (версия 0.2), которое было зафиксировано в репозитории GitHub сервера катапульты. Обновление зубра следует за обновлением альпаки и предваряет обновление коровы. Это обновление стало важным шагом на пути к выпуску публичного обновления blockchain Catapult и демонстрирует тяжелую работу, которую проделали разработчики NEM core, gimre, BloodyRookie и Jaguar0625.
В частности, Bison вводит три ключевые функции, которые будут держать NEM в курсе инноваций DLT (distributed ledger technology) и отличают NEM от других публичных блокчейнов: свойства учетной записи, доказательства состояния Merkle и поддержка состояния кэша NEM.
1) Свойства учетной записи.
Свойства учетной записи могут звучать как общая фраза, но она имеет конкретное техническое определение в области blockchain. Как и смарт-контракты, свойства учетной записи - это набор `умных правил’, которые определяют, что может или не может сделать учетная запись в блокчейне.
Пользователи смогут использовать свойства учетной записи, чтобы разрешить или заблокировать транзакции на основе адресов, типа транзакции или идентификатора мозаики.
Например, предположим, что ваша подруга Сьюзен хочет, чтобы ее торговля криптоактивами была организована по отдельным адресам для удобства ведения записей. Среди прочих активов Сьюзан торгует гипотетической мозаикой из яиц на сумасшедшей куриной бирже.
Свойства учетной записи значительно расширяют возможности логики и операций в цепочке по сравнению с текущей общедоступной версией NEM. Таким образом, наличие свойств учетной записи дает NEM повышенную гибкость в решении развивающейся функциональности, которую отрасли и пользователи ищут в инструментах blockchain.
2) Доказательства перехода состояния Меркла.
Введенные с биткойном, доказательства Merkle были в основе консенсуса доказательства работы и сборки блоков blockchain. Для быстрого обзора доказательств Merkle давайте вернемся назад и рассмотрим концепцию дерева Merkle.
Дерево Меркля - это структура узлов, помеченных хэшами. На рисунке выше изображена простейшая форма дерева Меркла, двоичное дерево Меркла, в котором каждый листовой узел (не путать с узлом, как в устройстве, которое хранит всю историю транзакций blockchain) разветвляется только на два дочерних узла. В нижней части дерева хэши сопоставляются один к одному с транзакциями.
Merkle дерево строится путем хэширования вместе два хэша, повторяя процесс, пока сингулярный хэш не будет создан.
Хэш на пике дерева называется корнем Merkle (также называемый корнем транзакции в blockchain), и каждая транзакция может быть прослежена от него. Он включается в заголовки блоков для суммирования блока транзакций.
Доказательства Merkle традиционно имеют ряд преимуществ для утилиты blockchain:
1. Его можно использовать для проверки существования транзакции в наборе данных.
2. Это позволяет для доказательства действительности, не требуя всю книгу.
3. Это гарантирует действительность сделки, без указания остальных данных.
3) Резервное копирование состояния кэша.
И последнее, но не менее важное: у нас есть введение поддержки состояния кэша, что означает эффективное хранение хэшей состояния blockchain для удобства использования и извлечения полными узлами. Это обновление тесно переплетается с вышеизложенным в увеличении производительности и операционной сложности NEM.
С количеством параметров и переменных, которые составляют состояние сети blockchain между всеми ее учетными записями в любой момент времени (особенно с введением свойств учетной записи), узлы дерева State Merkle нуждаются в доступе к переменному количеству ветвей, не ограниченному двумя, чтобы отслеживать все возможные виды изменений состояния от одной временной точки к другой. Из этого следует, что деревья состояний могут быть намного сложнее, чем деревья транзакций; они могут быть намного больше по общему количеству узлов и иметь больше промежуточных узлов в своих доказательствах Merkle.
Таким образом, в случае катапульты узлы будут хранить данные в базе данных RocksDB для быстрого и высокопроизводительного подтверждения состояния сети. Хотя извлечение информации о состоянии из ОЗУ было бы быстрее, требования к оперативной памяти могут создать большую нагрузку на узлы.
Поскольку сеть NEM будет только продолжать расширяться, имеет смысл использовать RocksDB, чтобы требовать меньше оперативной памяти от узлов. Кроме того, снижение требований к узлу, скорее всего, приведет к большему количеству узлов, увеличивая децентрализацию сети.