Removes 3rd signer from initalize signer set. #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have confirmed the issue by initializing a new Geth instance with an alternative genesis.json file, revealing that our testnet frequently forks due to block production falling OUT_OF_TURN. This occurs because the genesis configuration includes three signers. This can be observed by executing a cast block call on our testnet, where it's noticeable that some blocks have a difficulty of 1 instead of the expected 2, indicating improper block production.
The genesis file specifies the signing set in the following structure:
0x[32 bytes of anything][20-byte address of signer * number of signers][65 bytes of 0 (typically the proposer signature, omitted in the genesis block)]
The instability can be corrected by either using an RPC call to facilitate a majority vote among proposers for the removal of a signer, or directly updating the genesis.json file to adjust the signer set. This approach is supported by comparative observations between testnet (right side in the attached image) and my custom Geth instance on Latitude with the corrected genesis file, where 2 indicates the correct block producer and 1 indicates an incorrect one.