Skip to content

Instantly share code, notes, and snippets.

@t-bast
Created July 9, 2021 12:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save t-bast/040ea733ebae4dafb798aeb888372ad0 to your computer and use it in GitHub Desktop.
Save t-bast/040ea733ebae4dafb798aeb888372ad0 to your computer and use it in GitHub Desktop.
Asymmetrical feature example

Asymmetrical features

Let's explore the following scenario. There is an asymmetrical feature F, with a clear client side and provider side. The client side of the protocol is activated by feature X. The provider side of the protocol is activated by feature Y.

Some nodes want to be a client, but not a provider, and want to connect only to nodes that are providers of this feature. They obviously turn on feature X. Since they are only clients of the feature, they cannot turn on feature Y, so how do they require their peers to support feature Y?

We can't rely on setting X mandatory, because that would only work if providers activate X. But providers may want to only be providers of the feature, and not clients of it.

AFAICT, this is not possible to express today with feature bits.

@t-bast
Copy link
Author

t-bast commented Aug 9, 2021

Great, thanks for the clarifications, this now makes sense.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment