This is a ZeroNet tracker written in Rust. It can keep track of a number of different peer types.
- Copy of the source code
- Cargo + rustc nightly
cargo +nightly install --path . in the local repository root
- IPV4 & IPV6
- Onion v2 & v3
- I2P b32
- Remove dead peers
- Remove stale hashes
- Overview showing: version, uptime, connections, peers, hashes
- Explore hashes
- Option to crawl ZeroSites for hashes
- Explore peers
- Show log (this should not be publicly accessible)
- In memory
- On file
- Endpoint for Prometheus scraper
This ZeroNet Tracker depends on the ZeroNet Protocol library which is available from the Cratez Rust Registry, information on how to add Cratez to your cargo's registry configuration can be found on the site.
The ZeroNet Tracker can optionally be compiled with the
server flag. If enabled a server using Rocket and Maud will make useful information about the status of the tracker available on
localhost:8000, or at the
ROCKET_PORT environment variable.
It should be perfectly safe to make this available outside of your network as long as the dependencies used in this project are sound. Be aware that with low numbers of peers this information combined with a ZeroSites crawler could be used to deanonymize peers.
Without this feature the tracker will keep all of its data in memory and it is lost upon restart. Since the retention is under one hour and the tracker is highly unlikely to crash there is little benefit to changing this behaviour. Should you want retention between restarts of the tracker then you can enable the
sql feature and set a
database_file path in the configuration. The tracker then uses a peerdb implementation based on
rusqlite that writes to the given path.
If you want to collect metrics from the ZeroNet Tracker in Prometheus you can enable the
metrics feature which extends the
server feature with a page at
/metrics that serves some statistics about the program ready for Prometheus to ingest.