WalletDrop leverages the powerful decentralized peer-to-peer technology, Libp2p, to facilitate instant and secure file sharing to wallet addresses. The network architecture of WalletDrop is designed with efficiency and reliability at its core.
The architecture is characterized by two primary entities: the sender and the receiver nodes. Both these nodes are connected to Libp2p Bootstrap Nodes upon startup.
The bootstrap nodes play a crucial role in maintaining a global state of the network. In the context of WalletDrop, the global state signifies that when a user logs in, their node broadcasts its wallet address along with its associated multiaddress across the network.
Moreover, any new node joining the network will connect to the bootstrap node. The bootstrap node helps this new entrant query the network for the multiaddress corresponding to any wallet address, thus ensuring seamless integration into the network.
The sender and receiver nodes mainly communicate over two distinct protocols.
Let's delve into a more detailed example to understand the network flow. Suppose we have nodes A (sender) and B (receiver).
walletdrop receive
.walletdrop send <B's wallet address>
.This elegant network flow ensures robust and efficient file transfers while maintaining the anonymity of the participants. This architecture also allows WalletDrop to provide a reliable, decentralized, and secure file sharing service. The use of Libp2p empowers WalletDrop with the advantages of a peer-to-peer network, including scalability, high fault tolerance, and resistance to censorship.