0.0.002
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>
This commit is contained in:
1 parent
f0f91540be
commit
b735900f2e
323 files changed
+134347
-343
No files matched your search
@@ -0,0 +1,62 @@
|
||||
# libcess
|
||||
|
||||
`libcess` is the Cesspool base used by both p2p applications:
|
||||
|
||||
```text
|
||||
┌───────────┐
|
||||
│ 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:
|
||||
|
||||
```sh
|
||||
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_*`.
|
||||
Reference in new issue
Block a user