/node

Mysterium Network Node - official implementation of distributed VPN network (dVPN) protocol

Primary LanguageGoGNU General Public License v3.0GPL-3.0

Mysterium Node - decentralized VPN built on blockchain

Go Report Card pipeline status codecov GoDoc

Cross-platform software to run a node in Mysterium Network. It contains Mysterium server (node), client API (tequila API) and client-cli (console client) for Mysterium Network.

Currently node supports WireGuard as its underlying VPN transport.

Getting Started

Installation options

Debian / Ubuntu / Raspbian

Install latest stable release:

sudo -E bash -c "$(curl -s https://raw.githubusercontent.com/mysteriumnetwork/node/master/install.sh)"

Or install latest snapshot (development build):

SNAPSHOT=true sudo -E bash -c "$(curl -s https://raw.githubusercontent.com/mysteriumnetwork/node/master/install.sh)"

Service logs:

sudo journalctl -u mysterium-node.service

Service status:

sudo systemctl status mysterium-node.service

Installation script tested on these OSes so far: Raspbian 10, Debian 9, Debian 10, Ubuntu 18.04 and Ubuntu 20.04.

Docker

Our docker images can be found in Docker hub.

To run a node in a docker container you will need docker. On Linux, to manage docker as a non-root user (execute commands without sudo), follow postinstall guide. You should be able to run a node on any OS that supports docker. We have tested it on these OSes so far:

  • Debian 9
  • Debian 10
  • Ubuntu 18.04
  • Ubuntu 20.04
  • Ubuntu 22.04
  • Yocto Linux (BalenaOS)

Run node:

docker run \
  --cap-add NET_ADMIN \
  --net host \
  --name myst -d \
  mysteriumnetwork/myst service --agreed-terms-and-conditions

Access service logs:

docker logs -f myst

Further information

More installation options are described in the installation guide. For possible issues while running a node refer to our Troubleshooting guide.

Built With

  • go - The Go Programming Language
  • gitlab - GitLab CI/CD
  • docker - Containerize applications
  • openvpn - Solid VPN solution
  • wireguard - Extremely simple yet fast and modern VPN
  • geth - Official Go implementation of the Ethereum protocol

Contributing

For a detailed guide, please visit our developer docs.

Core contributors

  • Valdas Petrulis - Lead developer, go evangelist, node bootstrapper - Waldz
  • Tadas Valiukas - Senior developer, experienced bug maker - tadovas
  • Donatas Kučinskas - Senior developer, clean code savvy - donce
  • Antanas Masevičius - Network engineer / developer, net guru - zolia
  • Ignas Bernotas - Senior developer, open source enthusiast - ignasbernotas
  • Dmitry Shihovtsev - Senior developer, devops ninja - soffokl
  • Viktoras Kuznecovas - Senior developer, supersonic typing specialist vkuznecovas
  • Tadas Krivickas - Senior fullstack engineer, CI boss, refactoring fairy tadaskay
  • Jaro Šatkevič - Senior developer, micro-payments researcher, crypto maniac chompomonim
  • Andzej Maciusovič - Senior developer, disciplined world changer anjmao
  • Mantas Domaševičius - Senior fullstack engineer, always ready for pair programming mdomasevicius
  • Tomas Mikalauskas - Backend developer, golang lover, payment guru tomasmik
  • Vlad Iarmak - Protocol architect, networking guru, inexhaustible RFC writer Snawoot

See also full list of contributors who participated in this project.

License

This project is licensed under the terms of the GNU General Public License v3.0 (see details).