Peer-to-Peer Secure Update
This project aims to provide a framework to securely distribute system update
using peer-to-peer procotol that works in heterogeneous network environment,
in the presence of NATs and firewalls, where there is no necessarily direct
access from a management node to the devices being updated.
The framework combines several key techniques:
- STUN-based UDP hole punching to discover and open NAT bindings
- A gossip protocol to deliver short messages to distribute update notifications
- BitTorrent to securely distribute the software update
This project is part of Federated RaspberryPi micro-Infrastructure Testbed - FRuIT.
Requirements to compile:
- Go version >=1.9
- Go libraries:
- github.com/vmihailenco/msgpack
- github.com/spacemonkeygo/openssl
- gopkg.in/urfave/cli.v1
- github.com/anacrolix/torrent
- github.com/valyala/fasthttp
- github.com/zeebo/bencode
Requirements to run on FruitOS/Alpine Linux: