1

我正在尝试按照以下步骤使用 PoET 模拟器 (CFT) 设置 Docker Sawtooth 网络环境:https ://sawtooth.hyperledger.org/docs/core/releases/latest/app_developers_guide/docker_test_network.html 。

intkey set交易在 PBFT 网络中正常工作。我可以在所有 REST API 容器中使用inktey show获取键值,并创建一个新块。

但是,使用 PoET,我在日志终端中没有任何响应,也没有创建任何块。当我尝试在任何节点中获取键值时会发生什么:

root@e9b57e11feb6:/# intkey set --url http://sawtooth-rest-api-default-0:8008 MyKey 999
{
  "link": "http://sawtooth-rest-api-default-0:8008/batch_statuses?id=35f975022d853deddf0b7329ca8d10e608d3a3fa3e5f2318164e6de738c705e11aa335d709dfda12c50dc807346e8dace2e204cb14ad32699cb2a87b2a6e6f1b"
}
root@e9b57e11feb6:/# intkey show --url http://sawtooth-rest-api-default-1:8008 MyKey
错误:没有这样的密钥:MyKey

当我使用 docker-compose up 启动网络时,出现以下错误消息:

锯齿诗人引擎0 | [2020-12-12 14:28:55.147 ERROR zmq_driver] 未捕获的驱动程序异常
锯齿诗人引擎-0 | Traceback(最近一次通话最后一次):
 sawtooth-poet-engine-0 | _driver_loop sawtooth -poet-engine-0   中的文件“/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py”,第 88 行
|      结果 = self._process(message)
锯齿诗人引擎-0 | _process sawtooth -poet-engine-0   中的文件“/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py”,第 237 行
|      '收到意外消息类型:{}'.format(type_tag)) sawtooth
 -poet-engine-0 |sawtooth_sdk.consensus.exceptions.ReceiveError:收到意外消息类型:700

我在 sawtooth-poet-engine-0 容器的 /var/log/sawtooth/poet-engine-debug.log 文件的末尾找到了这些消息:

[14:28:37.840 [MainThread] 引擎调试] 收到消息:CONSENSUS_NOTIFY_BLOCK_NEW
[14:28:37.840 [MainThread] engine INFO] Received Block(block_num: 1, block_id: a4299924b77cc32934ac6a470636312b24c9153327b5b7e2e878640f85c0442d5f3dca4bfc4dd4b6575ef047c63e01da3228cbac8d4b6d68c149b9d2589720b1, previous_id: e268a0b21a0d33b0e57a162deb41dd55af7a88fee69382d4bfa3f26f93be7afc485ea8e73f00764cf8e99cbe3efa3c0c42a4357183e227388b1cf51c33737e5b, signer_id: 02d69ef8bd879297899bac65fcde686c74fefeb7010a58db99a9eb24ed014f39db, payload: b'{"SerializedCertificate": "{\\"block_hash\\": \\"b\'\\\\\\\\xf6#>>V\\\\\\\\xd25%\\\\\\\\xd1{\\\\\\\\x87\\ \\\\\\r\\\\\\\\xda\\\\\\\\x91t\\\\\\\\xc2\\\\\\\\x97\\\\\\\ \x8c\\\\\\\\xf1\\\\\\\\x08C5\\\\\\\\x92\\\\\\\\x15\\\\\\\\x83^H} \\\\\\\\x02\\\\\\\\xb7\\\\\\\\x85T\'\\", \\"持续时间\\": 11.998389297959184, \\"local_mean\\" : 5.0, \\"nonce\\": \\"8e1661a9178b8faacf94b67cd8efcbb964ddce04cdd8a3c09e78532100726480\\", \\"previous_certificate_id\\": \\"0000000000000000\\", \\"request_time\\": 160778\\"305. 020dd2bd7c5992708b9f48c2fa72e78ddd61d5cd3608c21cb27957dc576887f614\\"}", "Signature": "7844aa644f3a40f5fe63e2208648415b0212f4fd8af1fcbf3b71a17f97fcfd5d097aac398aea1c2640b08c0b8396353bd88df5166f2f7d85c2cb93ad0fe29695"}', summary: f6233e3e56d23525d17b870dda9174c2978cf10843359215835e487d02b78554)020dd2bd7c5992708b9f48c2fa72e78ddd61d5cd3608c21cb27957dc576887f614\\"}", "Signature": "7844aa644f3a40f5fe63e2208648415b0212f4fd8af1fcbf3b71a17f97fcfd5d097aac398aea1c2640b08c0b8396353bd88df5166f2f7d85c2cb93ad0fe29695"}', summary: f6233e3e56d23525d17b870dda9174c2978cf10843359215835e487d02b78554)020dd2bd7c5992708b9f48c2fa72e78ddd61d5cd3608c21cb27957dc576887f614\\"}", "Signature": "7844aa644f3a40f5fe63e2208648415b0212f4fd8af1fcbf3b71a17f97fcfd5d097aac398aea1c2640b08c0b8396353bd88df5166f2f7d85c2cb93ad0fe29695"}', summary: f6233e3e56d23525d17b870dda9174c2978cf10843359215835e487d02b78554)
[14:28:37.928 [MainThread]poet_block_verifier 错误]块 a4299924 被拒绝:从未注册的验证器 02d69ef8...014f39db 接收块
[14:28:37.928 [MainThread] 引擎信息] 共识检查失败:a4299924b77cc32934ac6a470636312b24c9153327b5b7e2e878640f85c0442d5f3dca4bfc4dd4b6575ef047c63e01da396201bcdbc284
[14:28:55.147 [Thread-2] zmq_driver ERROR] 未捕获的驱动程序异常
回溯(最近一次通话最后):
  _driver_loop 中的文件“/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py”,第 88 行
    结果 = self._process(消息)
  _process 中的文件“/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py”,第 237 行
    '收到意外消息类型:{}'.format(type_tag))
sawtooth_sdk.consensus.exceptions.ReceiveError:收到意外消息类型:700

编辑:我目前正在使用 Ubuntu 18.04

4

2 回答 2

0

尽量不要对文件hyperledger/sawtooth-poet-engine:chime中的 poet-engine-# 容器使用 docker 映像sawtooth-default-poet.yaml

hyperledger/sawtooth-poet-engine:nightly如果您正在构建网络,请将其更改为所有容器。

如果您对夜间版本感到不舒服,请尝试其他版本(https://hub.docker.com/r/hyperledger/sawtooth-poet-engine/tags),但它似乎已经过时了。

必要时不要忘记使用此命令清除 docker volume 中所有先前的块数据。

    docker volume rm $(docker volume ls -q)
于 2021-11-22T10:52:14.893 回答
0

所以,诗人引擎没有实现 PING 消息 (MessageType=700)

于 2021-07-21T07:14:10.230 回答