/aw

A flexible P2P networking library for upgradable distributed systems.

Primary LanguageGoMIT LicenseMIT

🌪 airwave

GoDoc Go Report Coverage Status License: MIT

A flexible P2P networking library for upgradable distributed systems. The core mission of airwave is to provide a simple P2P interface that can support a wide variety of different algorithms, with a focus on backwards compatible. The P2P interface supports:

  • Peer discovery
  • Handshake
  • Casting (send to one)
  • Multicasting (send to many)
  • Broadcasting (send to everyone)

Handshake

Airwave uses a 3 way sync handshake method to authorize peers in the network. The process is as follows:

The client sends a signed rsa public key on connect. The server validates the signature, generates a random challenge, and sends the signed random challenge encrypted with the client's public key; and the server's public key. The client validates the server's signature decrypts the challenge encrypts it with the server's publickey, signs it and sends it back.

Built with ❤ by Ren.