All Projects → losfair → Vmesh

losfair / Vmesh

Licence: mit
VMesh is a decentralized Layer 3 mesh router and protocol designed for open network interconnection.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Vmesh

Spruce Network
Decentralized peer-to-peer mesh network.
Stars: ✭ 61 (+144%)
Mutual labels:  mesh, network, p2p, decentralized
Dawn
global hosting, financial automation, server-less web components
Stars: ✭ 40 (+60%)
Mutual labels:  network, p2p, decentralized
I2p.i2p
I2P is an anonymizing network, offering a simple layer that identity-sensitive applications can use to securely communicate. All data is wrapped with several layers of encryption, and the network is both distributed and dynamic, with no trusted parties.
Stars: ✭ 1,186 (+4644%)
Mutual labels:  network, p2p, router
Software
DeepValueNetwork is a peer-to-peer database network managed and hosted by its community. It contains a browser to render 2D/3D content and allow the creation of scripted applications built on top of the p2p database network and managed by its creators, without intermediary platform.
Stars: ✭ 357 (+1328%)
Mutual labels:  network, p2p, decentralized
Newnode
NewNode decentralized Content Distribution Network
Stars: ✭ 223 (+792%)
Mutual labels:  network, p2p, decentralized
Medium
Independent telecommunication environment
Stars: ✭ 171 (+584%)
Mutual labels:  mesh, network, decentralized
ipvpn
[WIP] Easy-to-use decentralized secure overlay private network (for any device)
Stars: ✭ 24 (-4%)
Mutual labels:  decentralized, p2p, mesh
Awesome Decentralized
🕶 Awesome list of distributed, decentralized, p2p apps and tools 👍
Stars: ✭ 358 (+1332%)
Mutual labels:  p2p, decentralized
Kadnode
P2P DNS with content key, crypto key and PKI support. DynDNS alternative.
Stars: ✭ 359 (+1336%)
Mutual labels:  p2p, decentralized
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+3480%)
Mutual labels:  p2p, decentralized
Awesome Ethereum
⚡️ Awesome Ethereum Resources
Stars: ✭ 459 (+1736%)
Mutual labels:  p2p, decentralized
Firestr
The Grass Computing Platform
Stars: ✭ 329 (+1216%)
Mutual labels:  p2p, decentralized
Decentralized Internet
A SDK/library for decentralized web and distributing computing projects
Stars: ✭ 406 (+1524%)
Mutual labels:  p2p, decentralized
Cabal Cli
Terminal client for Cabal, the p2p chat platform.
Stars: ✭ 479 (+1816%)
Mutual labels:  p2p, decentralized
Spotweb
Decentralized community
Stars: ✭ 341 (+1264%)
Mutual labels:  p2p, decentralized
Tribler
Privacy enhanced BitTorrent client with P2P content discovery
Stars: ✭ 3,915 (+15560%)
Mutual labels:  p2p, decentralized
Patchwork
A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB).
Stars: ✭ 3,500 (+13900%)
Mutual labels:  p2p, decentralized
Fluence
Peer-to-peer computing protocol and licensing system
Stars: ✭ 453 (+1712%)
Mutual labels:  p2p, decentralized
Orbit Db
Peer-to-Peer Databases for the Decentralized Web
Stars: ✭ 6,381 (+25424%)
Mutual labels:  p2p, decentralized
Js Ipfs
IPFS implementation in JavaScript
Stars: ✭ 6,129 (+24416%)
Mutual labels:  p2p, decentralized

vmesh

Introduction

VMesh is a decentralized Layer 3 mesh router and protocol designed for open network interconnection.

It securely handles everything you'll need to interconnect your globally distributed nodes or peer with other networks: packet routing, route announcement, authentication, distributed configuration management, prefix filtering, and more.

VMesh supports only IPv6 in the routed network.

Getting started

Knowledge of routing protocols such as BGP would help a lot in understanding how VMesh works.

Take a look at config.example.json and scripts/ to get an idea about the detailed usage.

Usually you need a globally routable IPv6 block to make full use of VMesh, but you can also request IPv6 prefix allocation and transit from an existing VMesh network through peering. (See Peering, Interconnect with AS209291)

Detailed documentation is still TBD.

Peering

Specify "external_peer_certs": ["/path/to/your/peers/cert.crt"] in your config.json to allow interconnection with a node with a certificate outside your PKI tree. It's advised to prefix-filter announcements from external peers - see the "Distributed config" section for how to do that.

Distributed config

Use the vnconfigsign tool to sign your distributed configuration in JSON format and produce a .bin. Then start any one node with the -initial-dc your_signed_config.bin option to sync the configuration with the rest of your network. As long as any single node on your network is alive with a latest version of the distributed configuration, all directly/indirectly connected nodes will eventually be in sync.

The JSON format distributed config should look like:

{
	"prefix_whitelist": {
		"a.vnet.example.com": [
			"2001:db8:1000::/48,max_prefix_len=64",
			"64:ff9b::/96,max_prefix_len=96"
		],
		"b.vnet.example.com": [
			"2001:db8:2000::/48"
		]
	}
}

Interconnect with AS209291

VMesh is deployed on my network (AS209291) and is handling most internal traffic among nodes in the globally distributed network.

Email me at [email protected] if you want to peer.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].