I'm trying to set up the Docker Sawtooth Network Environment using PoET Simulator (CFT) following these steps: https://sawtooth.hyperledger.org/docs/core/releases/latest/app_developers_guide/docker_test_network.html.
The intkey set transaction works properly in the PBFT network. I can get the key value using inktey show in all REST API containers and a new block is created.
But, with PoET, I don't have any response in log terminal and no block is created. What happens when i try to get key value in any node:
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 Error: No such key: MyKey
When I started the network with docker-compose up, the following error message appeared:
sawtooth-poet-engine-0 | [2020-12-12 14:28:55.147 ERROR zmq_driver] Uncaught driver exception sawtooth-poet-engine-0 | Traceback (most recent call last): sawtooth-poet-engine-0 | File "/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py", line 88, in _driver_loop sawtooth-poet-engine-0 | result = self._process(message) sawtooth-poet-engine-0 | File "/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py", line 237, in _process sawtooth-poet-engine-0 | 'Received unexpected message type: {}'.format(type_tag)) sawtooth-poet-engine-0 | sawtooth_sdk.consensus.exceptions.ReceiveError: Received unexpected message type: 700
I found these messages in the end of /var/log/sawtooth/poet-engine-debug.log file in the sawtooth-poet-engine-0 container:
[14:28:37.840 [MainThread] engine DEBUG] Received message: 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\'\\", \\"duration\\": 11.998389297959184, \\"local_mean\\": 5.0, \\"nonce\\": \\"8e1661a9178b8faacf94b67cd8efcbb964ddce04cdd8a3c09e78532100726480\\", \\"previous_certificate_id\\": \\"0000000000000000\\", \\"request_time\\": 1607783305.7010527, \\"validator_address\\": \\"020dd2bd7c5992708b9f48c2fa72e78ddd61d5cd3608c21cb27957dc576887f614\\"}", "Signature": "7844aa644f3a40f5fe63e2208648415b0212f4fd8af1fcbf3b71a17f97fcfd5d097aac398aea1c2640b08c0b8396353bd88df5166f2f7d85c2cb93ad0fe29695"}', summary: f6233e3e56d23525d17b870dda9174c2978cf10843359215835e487d02b78554) [14:28:37.928 [MainThread] poet_block_verifier ERROR] Block a4299924 rejected: Received block from an unregistered validator 02d69ef8...014f39db [14:28:37.928 [MainThread] engine INFO] Failed consensus check: a4299924b77cc32934ac6a470636312b24c9153327b5b7e2e878640f85c0442d5f3dca4bfc4dd4b6575ef047c63e01da3228cbac8d4b6d68c149b9d2589720b1 [14:28:55.147 [Thread-2] zmq_driver ERROR] Uncaught driver exception Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py", line 88, in _driver_loop result = self._process(message) File "/usr/lib/python3/dist-packages/sawtooth_sdk/consensus/zmq_driver.py", line 237, in _process 'Received unexpected message type: {}'.format(type_tag)) sawtooth_sdk.consensus.exceptions.ReceiveError: Received unexpected message type: 700
Edit: I'm currenly working on Ubuntu 18.04
Try not to use
hyperledger/sawtooth-poet-engine:chime
docker image for poet-engine-# containers insawtooth-default-poet.yaml
file.Change it to
hyperledger/sawtooth-poet-engine:nightly
to all containers if you are building a network.If you feel uncomfortable with the nightly version try others(https://hub.docker.com/r/hyperledger/sawtooth-poet-engine/tags) but it seems outdated.
Don't forget to use this command to clear all of the previous block data in docker volume when necessary.