vacp2p / rfc

Modular p2p messaging stack, with a focus on secure messaging.
https://rfc.vac.dev/
115 stars 15 forks source link

RFC: verified marker / stable criteria #529

Closed kaiserd closed 5 months ago

kaiserd commented 2 years ago

This issue proposes to introduce a "verified" marker to RFCs. (Suggested by @corpetty here)

There are three ways of introducing a verified marker to RFCs:

1) We could introduce a new state verified. stable RFCs that have been verified would be promoted to the new verified state.

2) We could introduce a new tag verified.

3) We could make being verified a prerequisite for the stable promotion. The verification necessary for the stable promotion would be either formally or at least by the interoperability of independent implementations. This method would be more in line with the IETF. IETF, proposals can be in draft state for a long time. TLS 1.3, for example, had 28 draft versions (over 4 years) before being promoted to a stable RFC.

cc @corpetty @oskarth @easye

oskarth commented 2 years ago

What would be an example of a spec being considered "verified"?

Of the options outlined, I'd do 2 or 3, assuming we do this.

kaiserd commented 2 years ago

What would be an example of a spec being considered "verified"?

We would have to define the exact prerequisites. One possibility: Either formally verified, or in-the-wild tested by several (at least two) interoperable implementations in a larger network (100+ nodes?). If we go with 2 or 3, we could also separate these and introduce a formally verified tag for the former and an interop tag (better naming required) for the latter.

Currently, afaik, none of the specs would be considered verified.

oskarth commented 2 years ago

I feel like we are jumping the gun here a bit. First, let's get 2-4 specs to a desirable state, then we can see about how to best indicate this.

E.g. if there are specific specs that are being formally verified (e.g. MVDS was partially, ditto Noise maybe?). Only once we have a few examples does it make sense to generalize.

Interop I think Waku v2 example works quite well, not sure what problem this would solve?

Happy to see some examples of this being done in the wild! But I also think we should make sure we have concrete specs to give these identifiers, otherwise it seems a bit like busywork to me.

kaiserd commented 2 years ago

Agreed. We can keep this in icebox until it becomes relevant for our current specs.

jimstir commented 5 months ago

Closing as issue seems to be complete.