We've always suffered from a risk that nodes can silently diverge but this has become especially evident after #4967.
The current algorithm works like this:
Leader creates a block, signs and broadcasts it to all peers without validating transactions
All peers (including Leader) validate block transactions independently of each other
After validating transactions, Validating peers send their signatures to ProxyTail
After ProxyTail has collected enough signatures it broadcasts confirmation to all peers
We need to modify this approach so that transaction errors are agreed and synchronized between the nodes. This must be done during the consensus round. We can't include transaction error into the block hash but we can protect them with block signatures.
We've always suffered from a risk that nodes can silently diverge but this has become especially evident after #4967.
The current algorithm works like this:
We need to modify this approach so that transaction errors are agreed and synchronized between the nodes. This must be done during the consensus round. We can't include transaction error into the block hash but we can protect them with block signatures.