Как получить данные (состояние), используя матрицу txID Hyperledger - PullRequest
0 голосов
/ 06 апреля 2020

async createEntity(ctx, entityNumber, entityType, data) {
  const entity = {
    data,
  };
  await ctx.stub.putState(entityType + entityNumber, Buffer.from(JSON.stringify(entity)));
  return ctx.stub.getTxID();
}

В коде цепи есть такой код, в ответ я получаю, например,

612d6a6b5919fbc511e7a7b691cd349eb932f4e8d84ab9394885d3220f2e161 * * * * * * * * * * * * * * * * * * * * * * там внизу некоторая информация, вопрос в том, как мне вернуть эти данные, используя полученный txId?

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

В качестве обходного пути можно сравнить идентификатор транзакции, который вы получаете как возвращаемое значение ctx.stub.getTxID (), со всеми идентификаторами транзакций, которые вы получаете, используя getHistoryForKey (entityType + entityNumber). И совпадение в txnid, очевидно, является вашими желаемыми данными (состоянием).

Но это все еще громоздкий процесс. Пожалуйста, напишите, если вы найдете прямой способ получить данные, используя только txnId. Было бы удовольствие, если таковой существует.

0 голосов
/ 08 апреля 2020

ctx.stub.GetState и ctx.stub.PutState состояние записи этих функций в levelDB. если вы хотите получить доступ к своим данным по txID, один из способов, который я использовал, - это сохранение данных с этим txID. ie

let txID =  ctx.stub.getTxID();
await ctx.stub.putState(txID, Buffer.from(JSON.stringify(entity)));
0 голосов
/ 06 апреля 2020
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...