Можно ли развернуть чертовски умный контракт с ботами на Hyperledger Fabri c? - PullRequest
1 голос
/ 10 марта 2020

Я развернул руководство по быстрому старту на основе примера "daml-on-fabri c" https://github.com/hacera/daml-on-fabric, и после этого я попытался развернуть пример пинг-понга из dazl https://github.com/digital-asset/dazl-client/tree/master/samples/ping-pong. Боты из примера отлично работают на бухгалтерской книге. Однако когда я пытаюсь развернуть этот пример на fabri c, боты не могут отправлять транзакции. Все работает отлично, основываясь на этом, прочитайте меня с https://github.com/hacera/daml-on-fabric/blob/master/README.md. Интеллектуальный контракт выглядит как развернутый на Fabri c. Ошибка, когда я пытаюсь использовать ботов из pingpong python files https://github.com/digital-asset/dazl-client/blob/master/samples/ping-pong/README.md

I receive this error:

[  ERROR] 2020-03-10 15:40:57,475 | dazl    | A command submission failed!
Traceback (most recent call last):
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/dazl/client/_party_client_impl.py", line 415, in main_writer
    await submit_command_async(client, p, commands)
  File "/home/vasisiop/anaconda3/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/dazl/protocols/v1/grpc.py", line 42, in <lambda>
    lambda: self.connection.command_service.SubmitAndWait(request))
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/grpc/_channel.py", line 824, in __call__
    return _end_unary_response_blocking(state, call, False, None)
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/grpc/_channel.py", line 726, in _end_unary_response_blocking
    raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
    status = StatusCode.INVALID_ARGUMENT
    details = "Party not known on ledger"
    debug_error_string = "{"created":"@1583847657.473821297","description":"Error received from peer ipv6:[::1]:6865","file":"src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"Party not known on ledger","grpc_status":3}"
>

[  ERROR] 2020-03-10 15:40:57,476 | dazl    | An event handler in a bot has thrown an exception!
Traceback (most recent call last):
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/dazl/client/bots.py", line 157, in _handle_event
    await handler.callback(new_event)
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/dazl/client/_party_client_impl.py", line 415, in main_writer
    await submit_command_async(client, p, commands)
  File "/home/vasisiop/anaconda3/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/dazl/protocols/v1/grpc.py", line 42, in <lambda>
    lambda: self.connection.command_service.SubmitAndWait(request))
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/grpc/_channel.py", line 824, in __call__
    return _end_unary_response_blocking(state, call, False, None)
  File "/home/vasisiop/.local/share/virtualenvs/ping-pong-sDNeps76/lib/python3.7/site-packages/grpc/_channel.py", line 726, in _end_unary_response_blocking
    raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
    status = StatusCode.INVALID_ARGUMENT
    details = "Party not known on ledger"
    debug_error_string = "{"created":"@1583847657.473821297","description":"Error received from peer ipv6:[::1]:6865","file":"src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"Party not known on ledger","grpc_status":3}"

1 Ответ

3 голосов
/ 11 марта 2020

Из сообщения об ошибке похоже, что стороны, определенные в примере быстрого запуска, не были назначены в бухгалтерской книге, следовательно, ошибка «Сторона не известна в бухгалтерской книге».

Вы можете выполнить действия, описанные в https://docs.daml.com/deploy/index.html с использованием daml deploy --host = --port =, который будет одновременно загружать дарсы и распределять стороны в бухгалтерской книге.

Вы также можете запустить только сторону выделения Команда Daml Ledger allocate-сторон, которая будет распределять на основе сторон, определенных вами ваш daml.yaml.

...