The Nostr protocol aims to provide users with a set of rules for building a decentralized peer-to-peer system for sharing 'Notes and Other Stuff'. [1]
One of the key aspects of building a decentralized system is Service Discovery, which refers to the process of locating a particular service and establishing communication with it [2][3]. Client-side Service Discovery solutions commonly rely on a Service Registry, a centralised source that stores the location and metadata of all (or most stable) services in the network. [4]
A gossip protocol, also known as an epidemic protocol, is a procedure or process of computer peer-to-peer communication that simulates the spread of epidemics. In certain distributed systems, peer-to-peer gossip is employed to ensure data dissemination to all group members, eliminating the need for a centralized Service Registry [5].
The Nostr protocol, as defined in NIP-65, introduces a new type of note [6][7] designed to serve as a foundational layer for clients to create their own peer-to-peer gossip solutions [8]. This note is generated by a user who specifies where other users can locate his content, acting as a individual Service Registry.
It's important to note that the usage of the vast majority of NIPs or peer-to-peer techniques in the Nostr protocol is always optional. Specific clients can choose to implement any desired number of functionalities and use them at their discretion. This flexibility extends to NIP-65, allowing clients to utilize the basic functionality to obtain a raw list of relays for connection without concerns about network's centralization.
3.The "Out the box" model
The "Out of the Box" (OB) model, initially known as the Gossip model, was originally implemented by the Gossip client [8]. It applied the core principles of the Gossip protocol to utilize NIP-65 by obtaining the list of relays from every followed user [9].
As it gained popularity, other clients developed their own implementations of this model [10]. Several implementations ensure that the data of all contacts can be reached by connecting to the minimum number of relays possible, based on the presence of each user on each mentioned relay. This is specially useful for mobile devices where the battery drain might be a problem.
While this algorithm improves decentralization from the user's perspective, it's possible that if all clients employ similar logic for the sake of efficiency, relays with fewer users might gradually be overlooked in favor of larger relays.
[...image with the results of the dataset...]
4.Aiming desentralization