запрашивающий Hyperledger историк - PullRequest
0 голосов
/ 14 января 2019

Я занимаюсь разработкой приложения для композиторов Hyperledger и хочу получить все транзакции определенного клиента (memberInvoking).

Это мой код в разрешении .acl:

rule ProducerCanReadClientTxHistorian {
  description: "Read historian of an client"
  participant: "org.hyperledger.composer.system.Participant"
  operation: READ
  resource: "org.hyperledger.composer.system.HistorianRecord"
  action: ALLOW
}

Это запрос:

query selectTxOfClientID {
  description: "Select all tx of Client x"
  statement:
      SELECT org.hyperledger.composer.system.HistorianRecord 
          WHERE (participantInvoking == _$clientId)
}

Но когда я выполняю этот запрос, предоставляя идентификатор участника с помощью REST API, он отправляет пустое тело ответа.

Как ты решил это?

снимок экрана остальных API для входного значения.

Значение clientId равно 2814, следует ли указать другое значение (например, «resource: org.example.Client # 2814») или другое значение?

Ответ " GET / system / историк " (который возвращает весь историк) имеет вид:

{
    "$class": "org.hyperledger.composer.system.HistorianRecord",
    "transactionId": "4524d8b127be3b2fab008d73228cedf92bfc7cf46ada6e8355070ebbbe83f74e",
    "transactionType": "org.example.Tx",
    "transactionInvoked": "resource:org.example.Tx#4524d8b127be3b2fa28cedf92bfc7cf46ada6e8355070ebbbe83f74e",
    "participantInvoking": "resource:org.example.Client#2814",
    "identityUsed": "resource:org.hyperledger.composer.system.Identity#6fe4f7cbc1fce39598fdc1c1afe4d3324466c78ee40f0ab1fa3c",
    "eventsEmitted": [
      {
        "$class": "org.example.TxEvent",
        "newTimestamp": "0000000001",
        "newProdottoUsato": "resource:org.example.Product#900",
        "newCount": 0,
        "eventId": "4524d8b127be3b2fd73228cedf92bfc7cf46ada6e8355070ebbbe83f74e#0",
        "timestamp": "2019-01-11T11:33:48.129Z"
      }
    ],
    "transactionTimestamp": "2019-01-11T11:33:48.129Z"
  },
...