MeshLink is based on tinc, and tinc had the following structure for its directory with configuration files: /tinc.conf Main configuration file /tinc-up Script to configure the virtual network interface /ecdsa_key.priv This node's private key /hosts/node1 Host configuration file, containing the node's public key, address, and perhaps other information. /hosts/node2 Another host's configuration file, /hosts/... et cetera. For MeshLink, we don't have any scripts, and neither the application nor the user is supposed to read or edit the configuration files in any way. Therefore, it might be a good idea to simplify them to the point that we are left with: /meshlink.conf Contains only the local node's Name and Port. /ecdsa_key.priv Contains the private key, in binary. /nodes/node1 Contains only the public key and a list of known addresses. /nodes/node2 Another node's key and addresses, /nodes/... et cetera. Example /meshlink.conf: Name = foo Port = 12345 Example /nodes/foo: PublicKey = 19fj193f12d1m02dj12089cn Address = foo.example.com 18529 Address = 93.184.216.119 18529 Address = 2606:2800:220:6d:26bf:1447:1097:aa7 18529