我正试图使用PoET模拟器(CFT)按照以下步骤设置Docker Sawtothe网络环境:https://sawtooth.hyperledger.org/docs/core/releases/latest/app_developers_guide/docker_test_network.html.
intkey集事务在PBFT网络中正常工作。我可以在所有REST API容器中使用inktey show获取键值,并创建一个新的块。
但是,使用PoET,我在日志终端中没有任何响应,也没有创建块。当我试图在任何节点中获取键值时会发生什么:
root@e9b57e11feb6:/#intkey集--urlhttp://sawtooth-rest-api-default-0:8008MyKey 999{"链接":"http://sawtooth-rest-api-default-0:8008/batch_statuses?id=35f975022d853deddf0b7329ca8d10e608d3a3fa3e5f2318164e6de738c705e11aa335d709dfda12c50dc807346e8dace2e204cb14ad32699cb2a87b2a6e6f1b"}root@e9b57e11feb6:/#intkey show--urlhttp://sawtooth-rest-api-default-1:8008MyKey错误:没有这样的密钥:MyKey
当我用docker compose启动网络时,出现以下错误消息:
锯齿波发动机-0 |[2020-12-12 14:28:55.147错误zmq_driver]未捕获驱动程序异常锯齿波引擎-0|回溯(最后一次调用):锯齿波发动机-0|文件"/usr/lib/python3/dist-packages/sawtooth_sdk/commonship/zmq_driver.py";,第88行,在_driver_loop中锯齿波发动机-0|结果=自身_进程(消息)锯齿波发动机-0|文件"/usr/lib/python3/dist-packages/sawtooth_sdk/commonship/zmq_driver.py";,第237行,正在处理锯齿波发动机-0|'收到意外的消息类型:{}'。格式(type_tag))sawtoth-poet-engine-0 |sawtoth_sdk.consens.exceptions.ReciveError:收到意外消息类型:700
我在sawtoth-poet-engine-0容器的/var/log/sawtooth/peote-engine-debug.log文件末尾发现了这些消息:
[14:28:37.840[MainThread]引擎调试]收到消息:CONSENSUS_NOTIFY_BLOCK_NEW[14:28:37.840[MainThread]引擎INFO]接收到块(block_num:1,block_id:a429924b77cc32934c6a70636312b24c9153327b7b7e2878640f85c0442d5f3dca4bfc4dd4b6575ef047c63e01da228cbac8d4b6d68c149b9d2589720b1,previous_id:e268a0b21a033b0e57a162deb41dd55af7a88fee69382d4bfa3f26f93be7afc485ea8e73f00764cf8e99cbe3ef3c0c42a357183e227388b1cf51c337e5b,签名者_id:02d69ef8bd8792987899bac65fcde686c74fefeb7010a58db99a9eb24ed014f39db,有效载荷:b'{"序列化证书"{\\ quot;block_hash\\"x91t x83^H}\\&"\\"持续时间:11.99983897959184;local_mean \\ quot;:5.0;nonce \\〃:\\"8e1661a9178b8faacf94b67cd8efcbb964ddce04dd8a3c09e78532100726480\"\\"previous_certificate_id\\":\\"0000000000000000 \\〃\\"request_time \\ quot;:1607783305.7010527;validator_address\\":\\"020dd2bd7c5992708b9f48c2fa72e78ddd61d5cd3608c21cb27957dc576887f614\\"}&"签名":"7844aa644f3a40f5fe63e2208648415b0212f4fd8af1fcbf3b71a17f97fcfd5d097aac398aea1c2640b08c0b8396353bd88df5166f2f7d85c2cb93ad0fe29695"}',摘要:f6233e3e56d23525d17b870dda9174c2978cf10843359215835e487d02b78554)[14:28:37.928[MainThread]poet_block_verifier ERROR]块a429924被拒绝:从未注册的验证器02d69ef8接收到块…014f39db[14:28:37.928[MainThread]引擎信息]一致性检查失败:a429924b77cc32934c6a70636312b24c9153327b5b7e2e878640f85c0442d5f3dca4dd4b6575ef047c63e01da228cbac8d4b6d68c149b9d2589720b1[14:28:55.147[Thread-2]zmq_driver ERROR]未捕获的驱动程序异常追踪(最近一次通话):文件"/usr/lib/python3/dist-packages/sawtooth_sdk/commonship/zmq_driver.py";,第88行,在_driver_loop中结果=自我_进程(消息)文件"/usr/lib/python3/dist-packages/sawtooth_sdk/commonship/zmq_driver.py";,第237行,正在处理'收到意外的消息类型:{}'。格式(type_tag))sawtoth_sdk.consens.exceptions.ReciveError:收到意外消息类型:700
编辑:我目前正在Ubuntu 18.04 上工作
因此,诗人引擎不实现PING消息(MessageType=700)
在sawtooth-default-poet.yaml
文件中,尽量不要将hyperledger/sawtooth-poet-engine:chime
docker镜像用于诗人引擎的#容器。
如果您正在构建网络,请将其更改为所有容器的hyperledger/sawtooth-poet-engine:nightly
。
如果你对夜间版本感到不舒服,试试其他版本(https://hub.docker.com/r/hyperledger/sawtooth-poet-engine/tags)但它似乎已经过时了。
必要时,不要忘记使用此命令来清除docker卷中以前的所有块数据。
docker volume rm $(docker volume ls -q)