Как рассчитать корень меркля в ткани гиперледжера? - PullRequest
1 голос
/ 06 ноября 2019

Как я могу вычислить корень меркля в ткани гиперледжера? Мне трудно найти корень merkle в Fabric.

Заголовок блока содержит число, prefix_hash, data_hash. Связаны ли какие-либо из трех указанных выше данных с корнем merkle?

Или я могу вручную вычислить корень merkle?

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

Как вычислить корень merkle структуры hyperledger?

1 Ответ

1 голос
/ 07 ноября 2019

Hyperledger Fabric не отслеживает хэш мирового состояния в заголовках блоков. Вместо этого по содержимому блока формируется хэш-цепочка.

В заголовке блока вы найдете два поля: data_hash и previous_block_hash.

. data_hashявляется хешем конкатенации байтов транзакций в разделе данных блока.

previous_block_hash является хешем заголовка предыдущего блока. Хеш заголовка блока вычисляется путем преобразования содержимого в ASN1 с последующим хэшированием маршалированного представления.

Здесь вы можете увидеть, как компоненты Fabric реализуют свое хэширование: https://github.com/hyperledger/fabric/blob/a5bd17f9ec21241c324f453f0ded3d045bd28ff3/protoutil/blockutils.go#L38-L79

...