Were looking forward to the first release of OverNode. Developed by long-time blockchain developer Stephan February, its a Swiss Army knife of social, news, and commerce functions where everything is peer-to-peer. February sat down with 1Sat Ordinals David Case for a Q&A and explanation of how to make all these networking functions work in a distributed way without any centralized servers. Its not simple!
OverNodes first mobile app features a wallet, marketplace, news feed, contacts list, private messaging, microblogging and audio spaces, and a timestamp archive. Yes, other apps already do all these things, but they all have centralized servers coordinating all this activity behind the scenes. Basing it on a true P2P, distributed network between individual devices is not an easy task.
February recently discussed OverNode and its features with Kurt Wuckert, Jr. on the CoinGeek Weekly Livestream. This Q&A with Case dives deeper into the technical details of how it works.
Whats a Sneakernet, and what are the challenges?
Sneakernet means transferring information (digital or otherwise) by physically transporting it from one location or device to another. Though its an information-age term that usually refers to copying data onto portable media and carrying it around, the concept is also similar to physical mail services. Sending, delivering, and receiving the information are three separate processes that may occur at different times, and there is no central function monitoring everything.
Building a Sneakernet (or store-and-forward service) for digital devices isnt an easy problem to solve, February says. Even in the physical world, there are issues: a message can get lost or delayed before it reaches its destination; it could be delivered to the wrong place; or the receiver may not notice it. Theres no 100% guarantee a sent message will get through.
He says this challenge of building a digital, delay-tolerant network inspired him to build OverNode.
What can I do today, not only to make Sneakernet viable, but also to solve a problem Ive seen persistently happen with distributed systems in general (not just P2P), which is the problem of altruistic nodes operating on the network.
But whats actually happening, i.e., how exactly do you make a store-and-forward service work? Case asks. Direct messaging is one thing, but if you have a news/chat group similar to Signal or Telegram, how do you ensure all group members can see a post intended for them?
Essentially, nodes on the network have specialized functions while remaining P2P nodes and not acting as centralized servers. One of these is simply called store-and-forward, there are also bootstrap services with distributed hash tables (DHT), which are a way to discover other peers, note their addresses, and help establish connections between them.
Once a user starts their mobile app, their device announces its presence to the bootstrap service, and its live status is gossiped to others on the network. This announcement doesnt go to the entire network, but a subset of itmaybe other devices nearby, using a nearest-neighbor algorithmic technique like Chord. February says hes been using Kademlia DHTsthe idea is to have a key-value store, the state of which is distributed and replicated automatically among several different peers. The information stored on the DHT could be your devices IP and perhaps a long-term stable moniker, e.g., your personal handle, that would identify someone joining the network and be used to announce its status.
The bootstrap service can determine the closeness of other nodes, which doesnt refer to physical distance but the mathematical equivalent using consistent hashing. Everyones hash table will, therefore, be different, and the system can find the most efficient other nodes that may have the information an individual node is looking for. February describes it as a form of Six Degrees of Separation, but in practice, it happens very quickly, with everyones table updated with the relevant information. BitTorrent uses similar techniques for large file-sharing.
By the way, OverNodes interface also looks nice!
If youre interested in hearing all the technical details, the Case/February video has a lot of other interesting points. Case also talks about the similar challenges involved in BSVs Overlay Networks, keeping track of massive amounts of data on a distributed network and being able to trust the information youre receiving. The two also dive into the economic model behind OverNode and similar networks, as well as how SPV payments can be layered into the services.
The purpose of the social network-style app February is building now is mainly to prove OverNodes concept of the distributed data plane. If it works, itll have far wider-reaching use cases and consequences.
Watch: New token protocol and Ordinals with Stephan February