A pair of RSA private and pubic keys, which is your main identifier as an user of network. SHA256 Fingerprint of a public user key used as your User ID. When someone adds friend's user_id, he automatically allows all connections from nodes, associated with User Key. User key is just one for all your nodes (devices) and you should keep it as a proof of your identity. Closest analog in centralized networks is login+password credentials.

A pair of RSA private and pubic keys, which is auto-generated on each of your devices as a node of network. SHA256 Fingerprint of a public node key used as your Node ID. If someone trusts user as a friend, he automatically trusts all connections from nodes, associated with his User Key. Node keys are different for all your nodes (devices) and you should not keep them or export across devices. It has no analogs in centralized network and you shouldn't handle it as a user. All that you should know - it is an identifier of a current device, which is associated with some user by his ID.

Base64-encoded JSON object, which contains user's ID and an initial information for connection. You should generate a certificate and exchange it with your friends to allow connection between you. When connection between 2 nodes is established, they will automatically exchange an information about all own known nodes in background.

DHT means Distributed Hash Table. DHT generally is a decentralized temporal database of known online users and nodes, announced with their current network addresses. Dogma Meta uses own DHT system, served on the main router's port as a substream. There are 4 permission level's to announce, lookup and serve (bootstrap) DHT requests.

  • 0 - Disabled
  • 1 - Only for own nodes
  • 2 - For own nodes and friends
  • 3 - For all (Discovery node)

Each announce authorized by a main Dogma's authorization system, so it contains:

  • Public IPv4
  • Public IPv6 (Optional)
  • Router port
  • User ID (hash)
  • Node ID (hash)

DHT Bootstrap

Serves all entries depends on permission level.

DHT lookup

Request for all nodes of a specific User ID or some specific Node.

DHT announce

Announces own card when TCP connection is established and verified after handshake.

Forcibly allows all unauthorized incoming connections, blocks all outcoming connection attempts and allows all to use own DHT bootstrap service.

UDP socket to listen and broadcast announcements in a local network. When node's server is ready, broadcasts user_id, node_id and port to trigger another nodes in local network to initiate connection.

To run app with specific parameters (for headless mode or another cases). Full list of parameters.

  • about.txt
  • Last modified: 2023/12/10 18:53
  • by rotegott