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

Proposal: features #1308

Open
rotilho opened this issue Oct 16, 2018 · 2 comments
Open

Proposal: features #1308

rotilho opened this issue Oct 16, 2018 · 2 comments

Comments

@rotilho
Copy link

@rotilho rotilho commented Oct 16, 2018

Hello, I'm working in jnano-node a JVM implementation of the protocol and I came up with an idea: features.

During the handshake we could exchange information about the capabilities of each node and decide how to communicate (i.e. a feature is not supported by one of the nodes won't be used). This can cover situations like:

  • New fatures (vote-by-hash)
  • Experimental features (new serialization protocol)
  • Expose characteristics which is useful in some context (historical node vs light wallet)

This could lead to way more flexible protocol allowing to introduce big chances without waiting for other nodes to upgrade and after enough adoption you could make an experimental feature part of protocol.

EDIT: including more details

We could add a new extension 4 for handshake which will have fixed length and in the end we could add the features ids (with some limitation like max 10 features) replacing the handshake with extension 1, 2, 3

Or just keep it as it is and add to the end of each handshake answer the features.

It's also important to keep the track of those extensions to avoid collision (I'm imagining a scenario with multiple implementations of the protocol) similar to coin-type

@cryptocode
Copy link
Member

@cryptocode cryptocode commented Oct 16, 2018

#1120 is somewhat relevant

@rkeene
Copy link
Contributor

@rkeene rkeene commented Oct 16, 2018

This is similar to SMTP's EHLO

@rkeene rkeene added this to the V18.0 milestone Oct 17, 2018
@clemahieu clemahieu removed this from the V18.0 milestone Dec 20, 2018
@clemahieu clemahieu added this to the V19.0 milestone Dec 20, 2018
@zhyatt zhyatt added this to Nice to have in V19 Apr 30, 2019
@zhyatt zhyatt removed this from Nice to have in V19 Jun 11, 2019
@zhyatt zhyatt removed this from the V19.0 milestone Jun 11, 2019
@zhyatt zhyatt added this to the V20.0 milestone Jun 11, 2019
@zhyatt zhyatt removed this from the V20.0 milestone Jun 25, 2019
@zhyatt zhyatt added this to the Research for Future Release milestone Jun 25, 2019
@zhyatt zhyatt mentioned this issue Oct 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants