-
Notifications
You must be signed in to change notification settings - Fork 2.6k
grandpa: extend protocol for session key registration and usage #7398
Comments
We think nodes could determine when they're fully synced using this, which benefits the relative time or and approval assignments subprotocols. As discussed in w3f/polkadot-spec#168 we'll need to expand upon the above document for this use case: Initially, a validator Vlad starts up and begins syncing the relay chain. At start, Vlad loads its session secret keys and their certificates signed by the node's controller key. I presume the controller already registered this controller certificate bundle on-chain, but if not then tell me. We'll punt doing any runtime updates to a controller certificate bundle for another year. We've now two back/full cert modes, automatic counter mode and manual In both modes, Vlad creates a fresh Any relay chain block producer should include a fresh back/full cert only if the We could miss-judge the chain sync slowing in automatic mode, due to the "mostly sensible timestamps" heuristic. We thus reissue back/full certs with larger At some point, Vlad witnesses live grandpa votes finalizing its back/full cert, so then Vlad knows it lags behind the chain head by less the grandpa finality time, and less than the time since it issued that back/full cert. We address how various subsytems handle this information in automatic and manual mode:
We should certify long-term transport keys from the controller, but they should implicitly provide their own back/full cert at the transport layer when opening connections, so they need not participate in this on-chain system really. I've no idea how much this exists but we can ask @tomaka We two niggling questions remaining:
|
I think this superseds paritytech/polkadot-sdk#93 |
This issue has been mentioned on Polkadot Forum. There might be relevant details there: https://forum.polkadot.network/t/ux-of-distributing-multiple-binaries-take-2/2854/2 |
In order to avoid "benign" equivocations that are caused by operational errors (e.g. restoring an old database while losing the grandpa voter state could lead the authority to vote twice for the same round) we should introduce a more robust protocol for key registration and usage, thus making sure that session keys aren't reused in the same context.
A protocol is suggested here https://hackmd.io/@rgbPIkIdTwSICPuAq67Jbw/BkCOQ8CvP but should still undergo further formalization.
The text was updated successfully, but these errors were encountered: