* Bump version of nym-cli to 1.1.0 and move CHANGELOG to standalone file * Bump version of nym-connect to v1.1.0 and update CHANGELOG * Bump version of nym-wallet to v1.1.0 and update CHANGELOG * Bump version of explorer-api to v1.1.0 * Bump versions of binaries (native-client, socks5-client, mixnode, gateway, network-requester) to v1.1.0 * Bump version of validator-api to v1.1.0 * Bump version of mixnet contract to v1.1.0 (vesting contract already v1.1.0 from #1472) * Bump Nym Platform version to v1.1.0 and update CHANGELOG * Update CHANGELOG.md * Update CHANGELOG.md * Updated changelog with v2-related changes * Update CHANGELOG.md Co-authored-by: Mark Sinclair <mmsinclair@users.noreply.github.com> Co-authored-by: Fouad <fmtabbara@hotmail.co.uk> Co-authored-by: Pierre Dommerc <dommerc.pierre@gmail.com> Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com> Co-authored-by: Jess <31625607+jessgess@users.noreply.github.com>
Network Explorer API
An API that provides data for the Network Explorer.
Features:
- geolocates mixnodes using https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
- calculates how many nodes are in each country
- proxies mixnode API requests to add HTTPS
GeoIP db install/update
First we need to install the geoip database.
We use https://github.com/maxmind/geoipupdate to automatically download and update GeoLite2 binary database. For convenience we run it as a docker container.
At the root of the repo, inside the docker-compose.yml, there
is a docker service geoipupdate for it.
Supposed you provided an .env file with all the environment
variables listed in .env.sample-dev (found at the root),
simply run the service through docker:
docker compose up -d geoipupdate
Running this command will automatically install (and update) the
db file inside the directory path provided by GEOIP_DB_DIRECTORY
env variable.
Running
When starting the explorer-api, supply the environment variable
GEOIP_DB_PATH, pointing to the GeoLite2 binary database file.
It should be previously installed thanks to geoipupdate service.
For example:
GEOIP_DB_PATH=./geo_ip/GeoLite2-Country.mmdb cargo run
Note: explorer-api binary reads the provided .env file.
Run as a service and reverse proxy with nginx to add https with Lets Encrypt.
Setup nginx to inject the request IP to the header X-Real-IP.
TODO / Known Issues
TODO
- record the number of mixnodes on a given date and write to a file for later retrieval
- dependency injection
- tests