ddat interop with dat js cable interop with cabal js ddat's frontend = dat-thang cable fe = cable-thang dillo support based on cel's dillo-dat bootstrap node xplatform support Signed-off-by: divo <418@cryspace.space>
2.7 KiB
libcess
libcess is the Cesspool base used by both p2p applications:
┌───────────┐
│ libcess │
│ UDP, peer │
│ discovery│
└─────┬─────┘
┌───────┴───────┐
┌────▼────┐ ┌────▼────┐
│ ddat/dat│ │ cable │
│ SLEEP │ │ Cabal │
│ archives│ │ rooms │
└─────────┘ └─────────┘
The package owns the UDP socket transport, Cesspool messages, bootstrap and
rendezvous client/server logic, peer/topic state, and its Ed25519 bootstrap
identity. It has no SLEEP, Dat, Cable, or JSON dependency. Dat and Cable link
the same libcess.a so a configured NETWORK_PROTOCOL selects one discovery
network for both applications. The protocol token is data in the root
NETWORK_PROTOCOL file for the full project; a standalone libcess build reads
libcess/NETWORK_PROTOCOL.
Standalone build
From the project root:
make -C libcess
make -C libcess install PREFIX="$HOME/.local"
This builds libcess/build/libcess.a and libcess/build/cesspool-bootstrap.
Only a C99 compiler, GNU make, and libsodium development files are required.
The bootstrap executable links only libcess, libsodium, and the platform UDP
socket library; it does not need libcurl or the Dat application library.
Apps including cesspool.h and cess_net.h link libcess.a after their own
static archive, then link libsodium. The installed headers are under
include/libcess/.
Bootstrap node
cesspool-bootstrap is the bootstrap service shipped with the library. It
tracks topic announcements and returns peer endpoints; archive and chat data
still travels between peers. The process must stay running and its chosen UDP
port must be reachable from clients. --advertise HOST:PORT prints the
externally reachable address; the tool does not call an outside IP lookup
service. Configure that address in ddat or cable settings on each client.
The default identity location used by the integrated application is
dat-gpt/cesspool-bootstrap-state/identity.key under the platform's state
directory. The raw 96-byte public-plus-secret Ed25519 keypair matches the
existing bootstrap identity file layout, so extracting the library keeps a
running node's identity stable.
The old dat_peer_t, datnet_t, and datnet_* spellings remain as thin
source-compatibility aliases in the main application headers. New Cesspool
consumers should use cess_peer_t, cessnet_t, and cessnet_*.