-
Notifications
You must be signed in to change notification settings - Fork 4
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
Remove "revoked" node ID -> node address mappings in NodeGraph
#150
Comments
NodeGraph
NodeGraph
NodeGraph
NodeGraph
NodeGraph
This issue needs significantly more fleshing out and discussion. As far as I'm aware, there are 2 situations where our root keypair will be changed (and therefore, will propagate to a change in the node ID):
Therefore, on keypair reset, the previous node ID is immediately considered to no longer be valid. Conversely, on keypair renewal, the previous node ID will be considered valid until (I believe) the certificate referring to that node ID expires (but, we should favour the newer node ID over the older one where possible). We'll need to figure out how to communicate the fact that the node ID has been changed. We should look into the current process we use for verification of certificate on connection establishment. This seems like the most opportune moment to communicate this to some other connecting node. However, I imagine this would not work for some node attempting to connect to a now invalid node ID. For a clean keypair reset, we'd need to figure out a mechanism to eventually "garbage collect" these revoked node IDs from the |
Note however, this issue only produces a minor optimisation, and potentially not something we should be prioritising time for right now. We'd consider a keypair reset/renewal to be a rare operation, so it wouldn't be a serious issue of a handful of "old" node IDs being present in a |
For this reason, I don't think this should be an essential part of our nodes refactoring process. |
Need to deal with the case when the |
Atm, this is just done through the natural invalidation process of the node graph. There's no specific garbage collection policy. I believe we need further simulation before we can see if this requires a specific removal policy implementation, and we will likely need a single consistent queue to centralise the execution. #329. |
The buckets database used to store node ID -> node address (host:port) mappings is a fixed-size structure, of
n
buckets containingk
mappings each.Because a public key can be revoked and refreshed, and the node ID is the public key fingerprint, there is the potential for a keynode to require a new node ID (and thus, new certificate/s as well).
This introduces a trade-off:
The text was updated successfully, but these errors were encountered: