/surge

Surge is a p2p filesharing app designed to utilize blockchain technologies to enable 100% anonymous file transfers. Surge is end-to-end encrypted, decentralized and open source.

Primary LanguageGoApache License 2.0Apache-2.0

Surge - P2P on steroids (...and NKN)

About

This is the code of Surge. Surge is a 100% decentralized and secure P2P file sharing client. It utilizes the NKN blockchain network to send, publish and receive files.

Anonymous P2P? Are you kidding me?!

No, we are not :) By completely bypassing current internet technologies and using the NKN network each client is identified by an ID and nothing more. Here are some skribbles to show you how it all works:

When sending a file through the NKN network the sender just needs to contact one NKN node and tell him to what client the file should be delivered to. To communicate the IP is still needed but instantly dropped by the entry node.

NKN now routes the file through its network using the optimal an fastest route to the client. If there is a client who is connected to the recipient it delivers the file to it.

Where to download?

Find the current version for your operation system here

Wanna build Surge on your own?

Besides using our pre-built executables you can build surge by your own.

Prerequisites:

  • A running Golang environment
  • A running WailsV2 environment
  • Node.JS > 19.4
  1. clone this repository in your go projects
  2. Build the frontend
    1. cd frontend/
    2. npm install
    3. npm run build
  3. Build the app in the root directory of the repository: wails build (for cross-build instructions refer to the wails doc)
  4. check the build directory

Other helpful commands

# start surge backend
$ wails serve

# start surge frontend
$ cd frontend
$ npm run serve

For detailed explanation on how things work, checkout Wails docs.

Contribute

Surge is an open source project so everyone is invited and welcome to help. If you want to get in contact with us just jump into the NKN Discord