distributed-topic-tracker
Decentralized auto Bootstraping for iroh-gossip topic's via the mainline Bittorrent DHT.
Protocol Info
- Protocol details (spec): PROTOCOL.md
- Architecture (illustrative): ARCHITECTURE.md
- Feedback issue: https://github.com/rustonbsd/distributed-topic-tracker-exp/issues/5
Features
- Fully decentralized bootstrap for iroh-gossip
- Ed25519-based signing and hpke shared-secret-based encryption
- DHT rate limiting (caps per-minute records)
- Resilient bootstrap with retries and jitter
- Background publisher with bubble detection and peer merging
Quick start
Add dependencies (names subject to final crate publish):
[]
= "1"
= "1"
= "*"
= "*"
= "0.1.1"
Minimal example:
use Result;
use ;
use ;
// Crate imports
use ;
async
Testing
Unit Tests
Run unit tests for core components:
End-to-End Tests
Test peer discovery across multiple Docker containers:
# Requires Docker and Docker Compose
The e2e test verifies that multiple nodes can discover each other through the DHT and successfully join the same gossip topic.
Roadmap
- Finalize crate name and publish to crates.io
- Tests and CI
- Add more examples
- Docs (api)
- Optimize configuration settings
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contributing
- Try it, then drop feedback: https://github.com/rustonbsd/distributed-topic-tracker-exp/issues/5
- PRs, issue and success reports welcome.
Unless explicitly stated, any contribution intentionally submitted for inclusion in this project shall be dual-licensed as above, without any additional terms or conditions.