Introduce a gossip-converged pooled datastore protocol layered on SWIM piggybacking, backed by a reusable gossip-channel abstraction, plus a Docker-free multi-process cluster test runner. - crates/distribution/src/gossip_channel.rs: add the GossipChannel trait (piggyback on SWIM messages) and a budget-limited DisseminationBuffer<T> that replaces the four duplicated Lambda*ceil(log2(n)) dissemination copies - crates/datastore/src/pool: add PoolDisseminator (CRDT state for membership/capacity/content-location/ACL with join/leave/announce) and PoolCoordinator (placement-aware CRUD actor delegating to the co-located DatastoreNode) - crates/shared-types/src/pool.rs: add shared pool protocol types (PoolId plus member/capacity/content-location/ACL entries and PoolConfig) consumed by both distribution and datastore - crates/dashboard/src/pool_html.rs: add a live pool dashboard page (membership, capacity, content locations) and add pool_tests integration coverage - xtask/src/sim_cluster.rs: add the sim-cluster runner that spawns N swactor nodes over iroh through a local relay server, reusing the docker cluster scenarios without Docker - crates/distribution/src/iroh_driver.rs: add relay-URL resolution (cache, then SWIM gossip, then home relay) with a 2s connect timeout to back the relay-based connections Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
29 lines
No EOL
431 B
Text
29 lines
No EOL
431 B
Text
**/target
|
|
**/node_modules/
|
|
.vscode/
|
|
.venv
|
|
__pycache__
|
|
fuzz/artifacts/**
|
|
corpus
|
|
|
|
# Analysis artifacts (depgraph + spectral)
|
|
**/deps.dot
|
|
**/deps.html
|
|
docs/architecture.dot
|
|
docs/architecture.html
|
|
|
|
# Simulation traces
|
|
crates/simulation/traces
|
|
|
|
# xtask personal config
|
|
xtask/config.toml
|
|
|
|
# Deploy config (machine-specific)
|
|
deploy.toml
|
|
.deploy/*
|
|
!.deploy/deploy.example.toml
|
|
|
|
# Local dev node state
|
|
.dev-node/
|
|
.dev-cluster/
|
|
.sim-cluster/ |