Hyperledger Fabric - Как декодировать data_hash для возврата фактических данных? - PullRequest
0 голосов
/ 28 ноября 2018

Я принимал участие в разработке приложения Blockchain с использованием фабрики hyperledger.

Я использовал fabric-node-sdk для взаимодействия со слоем блокчейна.

В настоящее время у меня есть несколько данных, которые были вставлены в блоки, и мы можем видеть их в CouchDB и запрашивать то же самое для извлечения данных.

Когда channel.queryBlock (1) называется, мы получаем data_hash в качестве ответа, есть ли способ декодировать data_hash , чтобы получить фактические данные?

data_hash будетвыглядеть следующим образом: 0dafabc38a7d216426b9a9ab71057fe6c8b984c9e44f92b7265fbd3e2785e26c

Любое предложение будет полезным.

Спасибо!

1 Ответ

0 голосов
/ 29 ноября 2018

Согласно документам Fabric SDK , Channel.queryBlock возвращает Promise для блока.Возвращенный объект Block может быть запрошен для извлечения различных полей, например

channel = client.getChannel(channelName);
return channel.queryBlock(blockNumber);
}).then((block) => {
  console.log('Block Number: ' + block.header.number);
  console.log('Previous Hash: ' + block.header.previous_hash);
  console.log('Data Hash: ' + block.header.data_hash);
  console.log('Transactions: ' + block.data.data.length);
  block.data.data.forEach(transaction => {
    console.log('Transaction ID: ' + transaction.payload.header.channel_header.tx_id);
    console.log('Creator ID: ' + transaction.payload.header.signature_header.creator.Mspid);
    console.log('Data: ');
    console.log(JSON.stringify(transaction.payload.data));
  });
});

Некоторые примеры вывода:

Block Number: 4
Previous Hash: b794ee910514f989c0bcb54c2d26d907fca65eb9dd60e86047b3c3c78b96cb96
Data Hash: 1e267340a5f57ea687bfd6b57aec51b5e16420921fb50f980d08f1302bd289be
Transactions: 1
Transaction ID: 49c1333402977a53ec2532a4d425ef8bd6e3efa546358d3d2e3be645ee32b6c0
Creator ID: Org1MSP
Data:
{"actions":[{"header":{"creator":{"Mspid":"Org1MSP","IdBytes":"-----BEGIN CERTIFICATE-----...

Структура объекта Block полностью документирована здесь .

...