Невозможно установить несколько событий в коде цепи для одной транзакции, получая только последнее событие - PullRequest
0 голосов
/ 15 мая 2018

Я применил несколько событий в функции цепного кода (Hyperledger Fabric v1.1).

func (t *SimpleChaincode) initUsers(stub shim.ChaincodeStubInterface, args []string) pb.Response {
...
//Event supplier_bare
err = stub.SetEvent("supplier_bare", userAsbytes)
if err != nil {
    return shim.Error(err.Error())
}
//Event supplier_bare_1
err = stub.SetEvent("supplier_bare_1", userAsbytes)
if err != nil {
    return shim.Error(err.Error())
}
...
return shim.Success(nil)
}

Когда я вызываю функцию, я получаю только последнее событие (' supplier_bare_1 ') за транзакцию.

Транзакция (события):

...
 "events": {
            "chaincode_id": "mycc10",
            "tx_id":"5421ae37d6e1947b7121f411d64dc215ccacbe45b2d0a9c796cc4a3715c922d6",
            "event_name": "supplier_bare_1",
            "payload": {
                        "type": "Buffer",
                        "data": [
                                 ...
                                ]
                       }
           },
...

Работает ли цепной код таким образом или существует другой подход для достижения нескольких событий в одной функции.

1 Ответ

0 голосов
/ 16 мая 2018

Если взглянуть на код прокладки, в событии цепочки кодов остается только один слот, поэтому вступит в силу только последний вызов setEvent.

...