hyperledger-sawtooth

New validator not syncing blocks


I added a new validator but the process of syncing blocks didn't worked well. The new validator node doesn't sync all blocks but only the first one. Looking to the logs I see this suspicious log:

[2020-10-13 14:00:22.158 DEBUG completer] Request missing predecessor: e867dffff247c79ccb919de3802fca1afa25b6e1886b55794ea33ffb44f02a7448cc8884bc2f907e429d9f62ecdc12e846075c416614ce2e5f7eeaea4b701a32

[2020-10-13 14:00:22.174 DEBUG completer] Drop duplicate block: c88c57c5984015e60c5a54b898f8d4b25a65f7c29a444822820c780c8a8aa04155df3fa664a38f4b7a2fb5d5a94ceb7c6ec26a9c6c4f4483221f455198814385 (block_num:1, state:26cf5049bdc3a25a85f8f8f1db69e141e5881b812be86babdbf35b2263bf56e3, previous_block_id:e867dffff247c79ccb919de3802fca1afa25b6e1886b55794ea33ffb44f02a7448cc8884bc2f907e429d9f62ecdc12e846075c416614ce2e5f7eeaea4b701a32)
[

It seems that the block has been dropped. Does someone have any idea on why the new validator is not syncing all blocks?

PS: the new validator is on a remote machine using docker-compose but I have the same problem even if the new validator is set up on same machine with docker-compose


Solution

  • In my case, I have removed that validator and tried to spin up a new one (docker-compose down and then docker-compose up again). It worked but got a fork resolution (in the validator log there were records saying "Building fork resolution for chain head... ").

    This fork resolution issue was solved once the new validator public key was added in the pbft.members on chain settings (I was using PBFT consensus mechanism).

    For some reason, in sawtooth 1.2.5 with PBFT consensus mechanism, if you add a new node and don't add it in the pbft.members settings, the new node may fork and sync all blocks except the last one.