PoET engine error when setting up Docker Sawtooth Network Environment

488 views Asked by At

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

2

There are 2 answers

1
DO EAT NOW On

Try not to use hyperledger/sawtooth-poet-engine:chime docker image for poet-engine-# containers in sawtooth-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.

    docker volume rm $(docker volume ls -q)
0
Andre On

So, poet-engine doesn't implement PING Message (MessageType=700)