You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 23, 2024. It is now read-only.
Restarting SignCTRL (which shut itself down beforehand) on a height, that differs from its last_rank exactly {threshold}+1 or more, while simd is still running, causes the validator to double-sign.
How To Reproduce
Set up a blockchain with two validators (val-1 with 70% of the total voting power to keep the chain running at all times, and val-2 with 30% to experiment with).
Set up SignCTRL for val-2, i.e. have two SignCTRL instances run it. Rank one of the instances 1st, and the other 2nd.
Start the chain by starting both validators. Use simd start on val-1 and signctrl start; sleep 0.5s; simd start on both instances of val-2.
Isolate val-2's first instance (rank 1) from the network, such that val-2's second instance (rank 2) is promoted to rank 1.
Restart SignCTRL again via signctrl start.
Workaround
Before starting SignCTRL back up again, stop simd first. From there, you can start SignCTRL first, and simd right after.
This is also briefly addressed in the FAQ, with the question My SignCTRL node has shut down and my validator is listening for a new connection. What do I do?.