- cross-posted to:
- opensource@kbin.social
- cross-posted to:
- opensource@kbin.social
Hiya Folks
Making the rounds again on this project as it is getting closer to being feature-complete (ish) and I’ve started this website for extended infoz/documentation. Main repository can be found here: https://github.com/webmeshproj/node.
The project aims to be yet another simple WireGuard Meshing/VPN solution. Most similar to TailScale/HeadScale, but with a controller-less architecture governed by Raft consensus.
I’m excited to hear any feedback. Contributions are welcome as well :). Anything from architecture discussion, to issues, to code, to docs is appreciated.
I am by no means an expert but the TLDR is Raft is a protocol that allows distributed systems to maintain a central state. The GitHub page on it is pretty good - https://raft.github.io/.
What it means for this project is that every single node keeps the database containing the entire network state (rules, addresses, routes, etc.) in-memory. At any single point in time, any of the “voting” nodes can become the “leader”. The leader is responsible for authorizing nodes to join, mutating state, etc. If that leader goes away - another node will pick up the slack.