【问题标题】:PoET engine error when setting up Docker Sawtooth Network Environment设置 Docker Sawtooth 网络环境时出现 PoET 引擎错误
【发布时间】:2020-12-12 14:48:29
【问题描述】:

我正在尝试按照以下步骤使用 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
{
  “链接”:“http:// sawtooth-rest-api-default-0:8008 / batch_statuses?ID = 35F975022D853DEDDF0B7329CA8D10E608D3A3FA338C705CE1A6DE738C705CA1A335D709DFDA12C50DCH205CB14AS335D705CB14AS32C504CB146B2A6204CB14AD32699CB2A87B2A6E6F1B”
}
root@e9b57e11feb6:/# intkey show --url http://sawtooth-rest-api-default-1:8008 MyKey
错误:没有这样的密钥:MyKey

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

sawtooth-poet-engine-0 | [2020-12-12 14:28:55.147 ERROR zmq_driver] 未捕获的驱动程序异常
sawtooth-poet-engine-0 | Traceback(最近一次调用最后):
sawtooth-poet-engine-0 | 文件“/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py”,第 88 行,在 _driver_loop
sawtooth-poet-engine-0 | 结果 = self._process(message)
sawtooth-poet-engine-0 | 文件“/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py”,第 237 行,在 _process
sawtooth-poet-engine-0 | '收到意外消息类型:{}'.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] engine DEBUG] 收到消息:CONSENSUS_NOTIFY_BLOCK_NEW
[14:28:37.840 [MainThread]发动机INFO]接收块(block_num:1,BLOCK_ID:a4299924b77cc32934ac6a470636312b24c9153327b5b7e2e878640f85c0442d5f3dca4bfc4dd4b6575ef047c63e01da3228cbac8d4b6d68c149b9d2589720b1,previous_id:e268a0b21a0d33b0e57a162deb41dd55af7a88fee69382d4bfa3f26f93be7afc485ea8e73f00764cf8e99cbe3efa3c0c42a4357183e227388b1cf51c33737e5b,signer_id:02d69ef8bd879297899bac65fcde686c74fefeb7010a58db99a9eb24ed014f39db,有效载荷: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 \\”:\\“8E1661A9178B8FAACF94B67CD8EFCBB964DDCE04CDDD8A3C09E78532100726480 \\”,\\“previous_certificate_id \\”:\\“请求_time \\”:1607783305.7010527,\\“Validator_address \ \": \\"020dd2bd7c5992708b9f48 c2fa72e78ddd61d5cd3608c21cb27957dc576887f614 \\ “}”, “签名”: “7844aa644f3a40f5fe63e2208648415b0212f4fd8af1fcbf3b71a17f97fcfd5d097aac398aea1c2640b08c0b8396353bd88df5166f2f7d85c2cb93ad0fe29695”}”,摘要:f6233e3e56d23525d17b870dda9174c2978cf10843359215835e487d02b78554)
[14:28:37.928 [MainThread]poet_block_verifier 错误]块 a4299924 被拒绝:从未注册的验证器 02d69ef8...014f39db 接收块
[14:28:37.928 [MainThread] 引擎信息] 一致性检查失败:a4299924b77cc32934ac6a470636312b24c9153327b5b7e2e878640f85c0442d5f3dca4bfc4dd4b6575ef047c63e01da396201bcdbc28dbd6228cbc28d
[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

【问题讨论】:

  • 这里有同样的问题。此问题是由始终处于待处理模式的相关事务引起的。直到现在我都找不到解决方案。

标签: docker hyperledger-sawtooth poet


【解决方案1】:

所以,poet-engine 没有实现 PING 消息 (MessageType=700)

【讨论】:

    【解决方案2】:

    尽量不要在sawtooth-default-poet.yaml 文件中将hyperledger/sawtooth-poet-engine:chime docker 镜像用于poet-engine-# 容器。

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

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

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

        docker volume rm $(docker volume ls -q)
    

    【讨论】:

    • 根据@DOEATNOW 的建议,hyperledger/sawtooth-poet-engine 容器的夜间版本已经使用了 8 个月。标签名称用词不当,因为它不是每晚向上推的。您下载的 yaml 版本 (chime) 是在 2 年前推出的,因此可能存在仅在“夜间”版本中修复的问题。试一试,看看是否有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2021-03-22
    • 2021-11-19
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多