DHT Networking
Pelagora uses the Hyperswarm DHT for decentralized peer discovery and communication.
How it works
- Topic-based discovery — Nodes join a shared topic derived from the network key
- Direct connections — Once discovered, peers establish direct encrypted streams
- Message passing — Nodes exchange
PeerMessageobjects over these streams
PeerMessage format
All DHT messages follow the PeerMessage type from @pelagora/pim-protocol:
typescript
interface PeerMessage {
type: string // Message type identifier
beaconId: string // Sender's node ID
payload: any // Message-specific data
}Built-in message types
| Type | Description |
|---|---|
inventory | Share full inventory with a peer |
search | Search request broadcast to peers |
search-response | Results returned for a search |
offer | Make an offer on a peer's item |
Skill message namespacing
Skills can register custom message types using the namespace pattern:
skill:{skill-id}:{message-type}For example, the reverse auction skill uses skill:reverse-auction:bid.
Enabling DHT
DHT is enabled by default. To disable it:
js
const app = createApp({
enableDht: false,
})Or set the environment variable:
bash
ENABLE_DHT=false