You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long. 77afd1fe96
bash fixes
3 weeks ago
bin bash fixes 3 weeks ago
build explorer image tag 3 weeks ago
deploy added: deploy automation scripts 3 months ago
.gitignore clean-up, stabilization, two versions: I2P, P2P 2 years ago
LICENSE supporting docker compose 2 years ago log level set to info, docs updated 3 weeks ago
package-lock.json version bump 3 weeks ago
package.json version bump 3 weeks ago
tsconfig.json fixed: moduleResolution 1 year ago

DIVA "Dockerized"

This project has the following purpose: even if DIVA consists of several independent modules, it still should be easy to have the complete environment available.

Online Demo and Test sites:

Get Started

Basically there are two options: either join an existing network or create your own.

To start with, it is recommended to join the existing DIVA test network. The test network can be explored on

Docker Compose

IMPORTANT: Make sure you have Docker Compose installed. Check your Docker Compose installation by executing docker compose version in a terminal.

Cloning the Code

If you don't have a github account, create one on Fork the project to your own github repository.

Then clone the code repository:

git clone
cd diva-dockerized
npm i

Now, either build your own local testnet or join the existing DIVA testnet.

Join the public DIVA Test Network

To join the DIVA test network, build a local docker compose file first. This is an automated process. Here is an example on how to join the DIVA test network via I2P (it will ask for the root password, since it has to access the docker daemon and this access needs elevated privileges):


After building the docker compose file, the containers can be started:


Check I2P

The webconsoles of I2P are running within your local docker containers. Check them using and These two URL's are assuming that the default configuration is used. If you changed the IP config (see below, environment variable HOST_BASE_IP), you have to adapt the URL's because the docker container will run on different IP's.

Check the Synchronization

Now please visit (the explorer). Refresh it from time to time to see whether your local chain syncronizes with the diva testnet. Sooner or later (like 10 minutes) it should be the same as here

Warning: Joining the Very First Time

If you are joining the network for the very first time, it will take a longer while (maybe even up to 20 minutes) until you have a stable I2P network available. Please be patient. Check the logs of divachain, docker logs n1.chain.join.testnet.diva.i2p, to see whether it synchronizes. If it does not synchronize properly restart it (see Troubleshooting below).


  1. Explore the local docker environment, using docker ps -a.
  2. Check the logs, using docker logs n1.chain.join.testnet.diva.i2p
  3. If synchronization is not working properly (like the very first time), try to restart the chain after a few minutes: docker restart n1.chain.join.testnet.diva.i2p
  4. Access local explorer, (URL as set in default config, see HOST_BASE_IP)
  5. Access local I2P webconsole, and (URL as set in default config)


To stop locally running DIVA Test Network containers, execute:



To restart the locally running DIVA Test Network containers, execute:

BASE_DOMAIN=join.testnet.diva.i2p bin/

This restarts the complete stack (I2P, divachain, protocol).

Purge DIVA Test Network data

Warning This deletes all your local diva data within the folder build/domains/join.testnet.diva.i2p (keys, blockchain data).

To purge local testnet data, execute:


Leave the DIVA Network


Local, I2P based DIVA Test Network

To create an I2P-based DIVA test network, build a local docker compose file first. This is an automated process. Here is an example:

BASE_IP=172.19.73. HOST_BASE_IP=127.19.73. BASE_DOMAIN=testnet.local bin/

After building the docker compose file, the containers can be started:

BASE_DOMAIN=testnet.local bin/

It is now possible to explore the local docker environment using docker commands, like docker ps -a.

To stop locally running DIVA Test Network containers, execute:

BASE_DOMAIN=testnet.local bin/

Purge local DIVA data

Warning This deletes all your local DIVA data within the folder build/domains/testnet.local (keys, blockchain data).

To purge all local data, execute:

BASE_DOMAIN=testnet.local bin/

Development: Use of Specific Docker Images

It is possible to specify docker images to build the .yml file used by docker compose. Use the environment variables IMAGE_I2P, IMAGE_CHAIN, IMAGE_PROTOCOL and IMAGE_EXPLORER to pass specific image names to the build process. Here is an example:

DIVA_TESTNET=1 LOG_LEVEL=trace IMAGE_CHAIN=divax/divachain:develop bin/

This will build a .yml file using a specific docker image as divachain.

Environment Variables


Boolean: 1 (true) or 0

Default: 0


String: network entrypoint (bootstrap)

Default: (empty)


Integer, >=7, <=15

Default: 7


String: valid domain name

Default: testnet.diva.i2p


String: valid local base IP, like 127.19.72. Used to map the docker containers to the host.

Default: 127.19.72.


String: valid local base IP, like 172.19.72. Used as IP's for docker containers.

Default: 172.19.72.


Integer: >1024, <48000

Default: 17468


Boolean: 1 (true) or 0

Default: 1


Boolean: 1 (true) or 0

Default: 1


String: production, development

Default: production


Logging level of NodeJS applications, like divachain

String: trace, info, warn, error, critical

Default: info


Boolean: 1 (true) or 0

Default: 0


Logging level of I2P

String: debug, info, warn, error, none

Default: none


Contributions are very welcome. This is the general workflow:

  1. Fork from
  2. Pull the forked project to your local developer environment
  3. Make your changes, test, commit and push them
  4. Create a new pull request on

It is strongly recommended to sign your commits:

If you have questions, please just contact us (see below).


Your donation goes entirely to the project. Your donation makes the development of DIVA.EXCHANGE faster. Thanks a lot.




or via




Contact the Developers

On DIVA.EXCHANGE you'll find various options to get in touch with the team.

Talk to us via Telegram (English or German).