From 81993a9211d4b7eca9b8bf41a8ee9d243e74a261 Mon Sep 17 00:00:00 2001 From: SionoiS Date: Tue, 13 Aug 2024 10:47:55 -0400 Subject: [PATCH] rendezvous draft --- standards/core/rendezvous.md | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 standards/core/rendezvous.md diff --git a/standards/core/rendezvous.md b/standards/core/rendezvous.md new file mode 100644 index 0000000..cc0c474 --- /dev/null +++ b/standards/core/rendezvous.md @@ -0,0 +1,48 @@ +--- +title: WAKU-RENDEZVOUS +name: Waku rendez vous discovery +editor: Simon-Pierre Vivier +contributors: +--- + +## Abstract +This document describe the goal, +strategy and usage of the libp2p rendezvous protocol by Waku. + +Rendezvous is one of the discovery methods that can be used by Waku, +it supplements Discovery v5 and Waku peer exchange but fill a specific role. + +## Background +How do new nodes join the network is the question that discovery answers. +Discovery must be fast, pertinent and resilient to attacks. +Rendezvous is both fast and allow the discovery of relevant peers, +although by it's design can be easily abused. +The properties of rendezvous complements well the slower but safer methods like Discv5. +To contribute well, a Waku nodes must know a sufficient number of peers with +a wide variety of capabilities. +By using rendezvous in combination with +[Discv5](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md#node-discovery-protocol-v5) and +[Waku peer exchange](https://github.com/waku-org/specs/blob/master/standards/core/peer-exchange.md#abstract), +Waku nodes will reach a good number of meaningful peers +faster than through a single discovery method. + +## Terminology +Please refers to the [libp2p spec](https://github.com/libp2p/specs/blob/master/rendezvous/README.md#rendezvous-protocol). + +## Theory +Every [Waku Relay](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/11/relay.md) node will be initialized also as a rendezvous point. +Each relay node will register with a random rendezvous point every 10 seconds. +Each registration will expire after 1 minute. +Each node will roughly have 6 records of itself in the network at any given time. + +At startup, every nodes will discover peers by sending a request to a random rendezvous node. +A maximum of 12 peers will be requested. +This number is enough for good GossipSub connectivity and +minimize the load on rendezvous points. +It is assumed that other discovery methods are used in conjunction and +will continue discovering peers for the lifetime of the node. + +The namespaces used to register and request will be in the format '/waku/rs/cluster-id/shard'. +A registration consist of all the shards a nodes supports and their corresponding namespaces. + +Namespaces will not contain capabilities yet but may in the future.