-
Notifications
You must be signed in to change notification settings - Fork 24
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
SWIP-21: Reserve doubling #56
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we need:
- one or two diagrams
- discussion about push/retrieve protocols and the non-effect of reserve doubling on their correctness
wrong func name
We should probably mention that inclusion proofs will be checked "differently", as they are also dependent on "inProximity" function that checks bits of chunks. Or to be more precise they will get different depth than originally for example
Winner is checked for depth, which actually is a revel struct, which has in it depth fetched from reported reveal. |
No, this does not change. the depth commited and revealed represents the depth of the playing reserve. The original address of the sampled chunk (coming from the proof) is correctly checked to match the anchor up to at least this depth. This is the retrievability validation proving that the chunk is located in the anchor's proximity within the committed depth. Doubling the reserve means a node can play also when the sister neighbourhood is selected. It still must play with a sample of the chunks within the proximity of the anchor within the committed depth d. However, its own overlay is allowed to match the anchor up to only d-1 bits. In general, operating with increased reserve means that registering a height m in the staking contract entitles your node to play if the difference between its proximity to the anchor and its committed depth is not greater than m. This is responsibility validation that is done as part of the reveal transaction. |
I see multiple (and necessary) mentions about "connecting to all peers in the sister neighborhood", but I suspect this will be problematic. The current kademlia attempts to connect to all nodes in the current neighborhood. This is good because the other nodes in the neighborhood are also trying to connect to us, and it "just works". But consider a node that has doubled its reserve, it is now trying to connect to all immediate neighbors (as before), but now is also trying to connect to the nodes in the sister neighborhood as well. But the gotcha is that those nodes (at least, any that have not doubled) are NOT trying to connect to this node. So, all connections to the sister neighborhood nodes will be |
thanks for your feedback @ldeffenb
like the jewish joke works:
This is kind of addressed in the text concluding that nodes are unlikely to go much farther ahead in doubling than the typical node. in other words the reserve size is expecyed to grow in a piecemeal fashion and uniformly |
thnx, I reread SWIP and comment and I got what was meant. |
We should add some lists of needed Tests for this SWIP |
add figure ref
fix definition of depth of responsibility
Add clarity of how height must be factored in the calculation of effective stake.
this is to merge the swip-21 final draft into the SWIP repo to open it up for official review and comments.