как получить доступ к полю 'eventEmitted' в исторической записи в ACL-файле автора композитора Hyperledger? - PullRequest
0 голосов
/ 06 июня 2018

Я работаю над Hyperledger Composer и хочу получить доступ к полю «в» в массиве «eventsEmitted» в истории:

"eventsEmitted": [
  {
    "$class": "org.poc.wallet.WalletTransferEvent",
    "from": "resource:org.poc.wallet.Wallet#wallet2",
    "to": "resource:org.poc.wallet.Wallet#wallet3",
    "amount": 100,
    "eventId": "7c180da643f418f4bfb40187ccecef7dddd2d3f4ff952ab16fd913bcccedeac2#0",
    "timestamp": "2018-06-05T08:04:38.857Z"
  }
]

Я пробовал это в своем файле ACL, но правило не срабатывает:

rule CustomersSeeHistoryForWalletTransaction {
  description: "Customers should be able to see the history of their own transactions only"
  participant(p): "org.poc.wallet.Customer"
  operation: READ
  resource(r): "org.hyperledger.composer.system.HistorianRecord"
  condition: (r.eventsEmitted[0].to.owner.getIdentifier() === p.getIdentifier())
  action: ALLOW
}

1 Ответ

0 голосов
/ 06 июня 2018

см. Ответ здесь -> как получить доступ к полю 'eventEmitted' в истории транзакций фабрики гиперледжеров (на основе использования Event в образце сети trade-network) - и к классу Event, как описано здесь -> https://github.com/hyperledger/composer/blob/master/packages/composer-common/lib/system/org.hyperledger.composer.system.cto#L144 -

Обратите внимание, что в настоящее время существует проблема, созданная для запросов Composer - то есть возможность запрашивать Historian на основе пользовательских событий в определении события и иметь настраиваемые поля событий в массиве eventsEmittedв историке для поиска - см. https://github.com/hyperledger/composer/issues/3540

...