-
Notifications
You must be signed in to change notification settings - Fork 88
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
Deployment of Headers with proof spec changes #363
Comments
Preliminary info for Nimbus/fluffy:
|
I have an initial implementation in flight for Ultralight here We'll likely just delete all databases and start from scratch. |
For |
I think our code is ready to go. And, as noted, we'll just blow away DBs and start fresh. @ScottyPoi has implemented |
Also to add that |
For We will write a tool for repopulating our DBs. |
Deployment of Headers with proof spec changes
The (breaking) spec changes
None
removal inBlockHeaderWithProof
Merged PR: #341
This PR added a new header type, the epehemeral headers. In this PR the
None
has been removed for theBlockHeaderProof
, as all headers of the original content type MUST now be provided with a proof.The Result of the
None
removal is that the Union selector shifts with one and headers with proof encoding becomes different for all headers. It also invalidates any header of this type that comes without a proof. This is a breaking change and thus should be deployed coordinated.SSZ Union removal in
BlockHeaderWithProof
Open PR: #362
This PR completely removes the Union and adds a SSZ serialization layer for the proof.
This is a breaking change and thus should be deployed coordinated.
If this proposal is accepted, then it would be best to do this change on the mainnet now so that we don't need to deploy two breaking changes in a row for this.
Addition of ephemeral headers
Merged PR: #341
In the same PR of the
None
removal, the new header type was added.Implementing and deploying this can be done independent among clients, it does not need to be coordinated. So I do not consider this a breaking change. One thing to be wary of however is that clients don't ban/blacklist peers because of "invalid" content key in case the client did not add this new content key type yet.
Testing
Same testing with Hive can be applied as was done for ping extensions (#360), however it requires updated test vectors considering the actual encoded content that is being tested changes.
Deployment
The issue for deployment of this change is twofold:
I add the second bullet there because the content type encoding change might cause for clients also to have invalid encoded data in their databases. Nodes might need to either delete/reset or migrate their databases. Coordinating a plan for this would be necessary if we don't want the current network to show a lot of failures on content searches for a while.
So a possible roll-out plan could be:
Actions for clients
It would be great if client teams could:
The text was updated successfully, but these errors were encountered: