Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Signers are unable to sign with 2304.0-prerelease #716

Closed
jpraynaud opened this issue Jan 27, 2023 · 0 comments
Closed

Signers are unable to sign with 2304.0-prerelease #716

jpraynaud opened this issue Jan 27, 2023 · 0 comments
Assignees
Labels
bug ⚠️ Something isn't working D-hard Difficult: hard

Comments

@jpraynaud
Copy link
Member

jpraynaud commented Jan 27, 2023

Issue

After having installed the 2304.0-prerelease distribution on their signer node running on the pre-release-preview network, almost all the SPOs received error messages preventing them to contribute to the creation of the multi-signatures.

They started receiving a ProtocolInitializerNotRegistered(CoreRegister(UnregisteredInitializer)) error at the epoch after installing the new version of the node. The following epoch the error message received is the epoch just after installing the new version of the signer. Only 2 nodes are still able to sign after updating the version, one of them is maintained by the Mithril team and is running on the same computer as the aggregator of the network.

Analysis

After investigation of the logs and of the data stores provided by the SPOs it appears that the verification keys used by the aggregator are associated to a protocol initializer with a +1 offset in the signer stores from what is expected. This must probably explain why the verification key retrieved from the pending certificate does not match the verification key generated from the protocol initializer.

This problem seems to have been introduced in the distribution 2302.0 and is tightly coupled to the time needed for the aggregator node to retrieve the stake distribution from the Cardano node to which it is attached.

Solution

Provide a closing of the registration round for a new epoch until the stake distribution is computed: this will avoid the creation of this offset (signer registration epoch = aggregator registration round epoch + 1). This will introduce error message when signers attempt to register when a round is not opened yet for the new epoch, but the signer state machine is resilient to these errors

⚠ After deploying the fix on the signer node we will need a 2 epochs delay to get signer contributing to signatures

@jpraynaud jpraynaud added bug ⚠️ Something isn't working D-hard Difficult: hard labels Jan 27, 2023
@jpraynaud jpraynaud self-assigned this Jan 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug ⚠️ Something isn't working D-hard Difficult: hard
Projects
None yet
Development

No branches or pull requests

1 participant