Создание контроля версий для простого массива с использованием блокчейна - PullRequest
0 голосов
/ 28 апреля 2018

Я построил простой блокчейн. Я хочу построить контроль версий массива чисел. Я хочу записывать добавления новых номеров, удаления и обмена номерами. Каким может быть эффективный способ хранения этих изменений? Я рассмотрел создание дерева меркле всех элементов массива и сохранение корня меркла, чтобы проверить, совпадает ли версия или нет, но сохраняя одни и те же данные в несколько блоков являются избыточными и неэффективными. Пожалуйста, направьте меня!

STATE 1: [3,4,5,6]
STATE 2: [3,4,5,6,4]
STATE 3: [4,3,5,6,4]


Block1 HeaderHash: h(h(34)+h(56))
Block2 HeaderHash: h(h(34)+h(56)+h(44))
Block3 HeaderHash: h(h(43)+h(56)+h(44))

P.S. Я изучаю концепции блокчейна и строю это с нуля. Пожалуйста, не судите проект сам по себе.

1 Ответ

0 голосов
/ 06 мая 2018

Для отслеживания изменений вы можете просто сохранить отдельные изменения для каждого элемента в массиве. В вашем примере это будет так:

STATE 1: [1:3,2:4,3:5,4:6]
STATE 2: [5:4]
STATE 3: [1:1,2:-1]

Это не будет занимать мало места, если с каждым обновлением состояния будет много изменений. Но если более половины массива останется прежним, вы получите выгоду.

Merkle Tree используется для проверки отдельных блоков данных (транзакций), полученных из неизвестных или малоизвестных источников. Он используется в кошельках блокчейна или торрент-клиентах. Не используется для хранения массивов.

...