Как получить историю транзакций для конкретного Актива в hyperledger composer? - PullRequest
0 голосов
/ 16 января 2019

Я попробовал приведенный ниже код, но не могу получить историю транзакций для конкретного актива. Может ли кто-нибудь помочь мне в этой проблеме.

@ совершить (ложь)

@ возвращает (Order [])

История транзакций {

o Строка orderNumber

} введите код здесь

/ ** * Пример транзакции * @param {org.acme.Block.orderHistory} покупка * @transaction * / асинхронная функция orderHistory (транзакция) {

    const orderNumber = purchase.orderNumber;
    const nativeSupport = purchase.nativeSupport;

    const assetRegistry = await getAssetRegistry('org.acme.Block.Order')

    const nativeKey = getNativeAPI().createCompositeKey('Asset:org.acme.Block.Order', [orderNumber]);
    console.log(nativeKey);
    const iterator = await getNativeAPI().getHistoryForKey(nativeKey);
    let results = [];
    let res = {done : false};
    while (!res.done) {
        res = await iterator.next();

        if (res && res.value && res.value.value) {
            console.log(res);
            let val = res.value.value.toString('utf8');
            if (val.length > 0) {
               results.push(JSON.parse(val));
            }
        }
        if (res && res.done) {
            try {
                iterator.close();
            }
            catch (err) {
            }
        }
    }

    return results;

1 Ответ

0 голосов
/ 18 января 2019

В hyperledger composer все транзакции хранятся в исторической записи (https://hyperledger.github.io/composer/unstable/reference/historian.html).). Таким образом, запрос и использование одного и того же решения решит вашу проблему. Историческая запись - это ресурс, определенный в пространстве имен композитора Hyperledger.

Историческая запись определяется как:

asset HistorianRecord identified by transactionId {
  o String      transactionId
  o String      transactionType
  --> Transaction transactionInvoked
  --> Participant participantInvoking  optional
  --> Identity    identityUsed         optional
  o Event[]       eventsEmitted        optional
  o DateTime      transactionTimestamp
}

Вы можете узнать больше об API клиента Historian, который окажется для вас полезным: https://hyperledger.github.io/composer/v0.19/api/client-historian

Кроме того, прочитайте это обсуждение истории актива в композиторе: https://github.com/hyperledger/composer/issues/2458

...