Files
nym/explorer-api
Jędrzej Stuczyński b473aeb3be Feature/gateway graceful shutdown (#2834)
* task dependency

* unifying some startup code and passing TaskClient around

* graceful shutdown handling for mix socket listener

* graceful shutdown handling for clients listener

* graceful shutdown handling for packet forwarding

* unified waiting for interrupt across binaries

* made 'validate_bech32_address_or_exit' into a function that returns proper Result

* printing formatted message on main error

* fixed failing test

* removed duplicate code that should have been gone ages ago

* ibid

* removed biased selection for authenticated handler

* minor refactoring to 'ensure_config_version_compatibility'
2023-01-13 11:56:37 +00:00
..
2023-01-10 13:52:00 +01:00

Network Explorer API

An API that provides data for the Network Explorer.

Features:

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-City.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