| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A lightweight, standalone Rust (axum) bootstrap directory for WAN dApp discovery. It lets SmartNet nodes find each other over the internet when LAN mDNS is not enough.
The tracker is stateless on disk: it keeps only an in-memory registry of signed app announcements with a TTL heartbeat. It never stores blobs — the actual dApp content still moves peer-to-peer over iroh-blobs.
Every announced app is verified with the exact SmartHoldem used by the client. A spoofed announcement is rejected:
cd tracker
cargo build --release
./target/release/smartnet-trackerDefaults: binds 0.0.0.0:7374, announcement TTL 120s.
Override via env:
SMARTNET_TRACKER_PORT=7374 \
SMARTNET_TRACKER_TTL=120 \
SMARTNET_TRACKER_LOG_ANNOUNCE=1 \
./target/release/smartnet-trackerThe client ships these public seed trackers by default (configurable in Settings → P2P → WAN TRACKERS):
http://159.69.188.60:7374 http://91.99.119.119:7374
| Method | Path | Purpose |
|---|---|---|
| GET | / | HTML status dashboard (auto-refreshes /stats) — open in a browser |
| POST | /announce | Heartbeat: register/refresh the apps a node serves |
| GET | /apps | All known apps (deduped) with seed counts + providers |
| GET | /app/:id | Providers for a single app id |
| GET | /seeds | Distinct live nodes (endpoints) seen recently |
| GET | /stats | Aggregate stats: live apps/providers/endpoints, lifetime accept/reject totals, top-10 apps by seeds |
| GET | /health | Liveness + registry stats |
{
"node": "S...", // announcing node's SmartHoldem address (info)
"endpointId": "<iroh node id>", // how peers reach this provider
"apps": [{
"id": "S...", // == address(publicKey)
"name": "App",
"description": "...",
"tags": ["demo"],
"merkle": "<blake3 root>",
"hash": "<iroh-blobs tar hash>",
"signature": "<ecdsa compact hex>",
"publicKey": "<secp256k1 compressed hex>"
}]
}Response: { "ok": true, "accepted": N, "rejected": M, "ttlSecs": 120 }.
cargo test # crypto verify unit tests
cargo run --example gen_announce # print a VALID announce → accepted
cargo run --example gen_announce tamper # mutated after signing → rejected
cargo run --example gen_announce badid # id != pubkey address → rejected| Back | FazBrowse Home | New Git URL |