11 releases
0.1.23 | Jun 14, 2022 |
---|---|
0.1.22 | May 26, 2022 |
0.1.17 | Apr 23, 2022 |
0.1.16 | Mar 12, 2022 |
0.1.10 | Jun 27, 2021 |
#1 in #zero-net
50KB
791 lines
ZeroNet Tracker
This is a ZeroNet tracker written in Rust. It can keep track of a number of different peer types.
Installation
Prerequisites
- Copy of the source code
- Cargo + rustc nightly
Steps
Run cargo +nightly install --path .
in the local repository root
Roadmap
Peertypes:
- IPV4 & IPV6
- Onion v2 & v3
- I2P b32
Features:
- Remove dead peers
- Remove stale hashes
- Server
- 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)
- SQLite
- In memory
- On file
- Metrics
- Endpoint for Prometheus scraper
Building
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.
Optional Features
Server
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.
SQL
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.
Metrics
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.
Dependencies
~8–25MB
~384K SLoC