I'm building a decentralized system for syncing a 3D scene between a set of nodes in real-time. Currently I'm focused on small fully-connected networks where each connection between nodes has been explicitly approved by each party (think of situations like a group of 5 friends connecting to each other).
Each node maintains a set of approved node IDs that it is allowed to connect to. When explicitly instructed to dial a remote, the remote node ID is simply added to the set. When accepting a connection the approved node set is checked and if it doesn't contain the remote then a message is sent along a channel to the UI and is then awaited on for a response. If denied then the connection just closes. In the future I plan on having a set of blocked nodes to which connections are automatically denied.
For reference, here's what this interface currently looks like:
There should be only one connection per re