|
|
@ -1,120 +1,71 @@ |
|
|
|
Using Docker |
|
|
|
============ |
|
|
|
|
|
|
|
`This folder <https://github.com/tendermint/tools/tree/master/docker>`__ contains Docker container descriptions. Using this folder |
|
|
|
you can build your own Docker images with the tendermint application. |
|
|
|
|
|
|
|
It is assumed that you have already setup docker. |
|
|
|
|
|
|
|
If you don't want to build the images yourself, you should be able to |
|
|
|
download them from Docker Hub. |
|
|
|
It is assumed that you have already `setup docker <https://docs.docker.com/engine/installation/>`__. |
|
|
|
|
|
|
|
Tendermint |
|
|
|
---------- |
|
|
|
|
|
|
|
Build the container: Copy the ``tendermint`` binary to the |
|
|
|
``tendermint`` folder. |
|
|
|
|
|
|
|
:: |
|
|
|
The application configuration and data will be stored at ``/tendermint`` in the |
|
|
|
container. This directory will also be exposed as a volume. The ports 46656 and |
|
|
|
46657 will be open for ABCI applications to connect. |
|
|
|
|
|
|
|
docker build -t tendermint tendermint |
|
|
|
|
|
|
|
The application configuration will be stored at ``/tendermint`` in the |
|
|
|
container. The ports 46656 and 46657 will be open for ABCI applications |
|
|
|
to connect. |
|
|
|
|
|
|
|
Initialize tendermint configuration and keep it after the container is |
|
|
|
finished in a docker volume called ``data``: |
|
|
|
Initialize tendermint: |
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
docker run --rm -v data:/tendermint tendermint init |
|
|
|
mkdir /tmdata |
|
|
|
docker run --rm -v /tmdata:/tendermint tendermint/tendermint init |
|
|
|
|
|
|
|
Change ``/tmdata`` folder to any destination where you want to store Tendermint |
|
|
|
configuration and data. |
|
|
|
|
|
|
|
If you want the docker volume to be a physical directory on your |
|
|
|
filesystem, you have to give an absolute path to docker and make sure |
|
|
|
the permissions allow the application to write it. |
|
|
|
Tendermint docker image is stored on `docker hub <https://hub.docker.com/r/tendermint/tendermint/>`__. |
|
|
|
|
|
|
|
Get the public key of tendermint: |
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
docker run --rm -v data:/tendermint tendermint show_validator |
|
|
|
docker run --rm -v /tmdata:/tendermint tendermint/tendermint show_validator |
|
|
|
|
|
|
|
Run the docker tendermint application with: |
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
docker run --rm -d -v data:/tendermint tendermint node |
|
|
|
|
|
|
|
Basecoin |
|
|
|
-------- |
|
|
|
|
|
|
|
Build the container: Copy the ``basecoin`` binary to the ``basecoin`` |
|
|
|
folder. |
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
docker build -t basecoin basecoin |
|
|
|
|
|
|
|
The application configuration will be stored at ``/basecoin``. |
|
|
|
|
|
|
|
Initialize basecoin configuration and keep it after the container is |
|
|
|
finished: |
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
docker run --rm -v basecoindata:/basecoin basecoin init deadbeef |
|
|
|
|
|
|
|
Use your own basecoin account instead of ``deadbeef`` in the ``init`` |
|
|
|
command. |
|
|
|
|
|
|
|
Get the public key of basecoin: We use a trick here: since the basecoin |
|
|
|
and the tendermint configuration folders are similar, the ``tendermint`` |
|
|
|
command can extract the public key for us if we feed the basecoin |
|
|
|
configuration folder to tendermint. |
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
docker run --rm -v basecoindata:/tendermint tendermint show_validator |
|
|
|
|
|
|
|
Run the docker tendermint application with: This is a two-step process: |
|
|
|
\* Run the basecoin container. \* Run the tendermint container and |
|
|
|
expose the ports that allow clients to connect. The --proxy\_app should |
|
|
|
contain the basecoin application's IP address and port. |
|
|
|
docker run --rm -d -v /tmdata:/tendermint tendermint/tendermint node |
|
|
|
|
|
|
|
:: |
|
|
|
Building images by yourself: |
|
|
|
|
|
|
|
docker run --rm -d -v basecoindata:/basecoin basecoin start --without-tendermint |
|
|
|
docker run --rm -d -v data:/tendermint -p 46656-46657:46656-46657 tendermint node --proxy_app tcp://172.17.0.2:46658 |
|
|
|
`This folder <https://github.com/tendermint/tendermint/tree/master/DOCKER>`__ |
|
|
|
contains Docker container descriptions. Using this folder you can build your |
|
|
|
own Docker images with the tendermint application. |
|
|
|
|
|
|
|
Ethermint |
|
|
|
--------- |
|
|
|
|
|
|
|
Build the container: Copy the ``ethermint`` binary and the setup folder |
|
|
|
to the ``ethermint`` folder. |
|
|
|
The application configuration will be stored at ``/ethermint``. |
|
|
|
|
|
|
|
:: |
|
|
|
Initialize ethermint: |
|
|
|
|
|
|
|
docker build -t ethermint ethermint |
|
|
|
:: |
|
|
|
|
|
|
|
The application configuration will be stored at ``/ethermint``. The |
|
|
|
files required for initializing ethermint (the files in the source |
|
|
|
``setup`` folder) are under ``/setup``. |
|
|
|
mkdir /ethermintdata |
|
|
|
wget -O /ethermintdata/genesis.json https://github.com/tendermint/ethermint/raw/master/setup/genesis.json |
|
|
|
docker run --rm -v /ethermintdata:/ethermint tendermint/ethermint ethermint --datadir /ethermint init /ethermint/genesis.json |
|
|
|
|
|
|
|
Initialize ethermint configuration: |
|
|
|
Start ethermint as a validator node: This is a two-step process: \* Run the |
|
|
|
tendermint container and expose the ports that allow clients to connect. \* Run |
|
|
|
the ethermint container. You will have to define where tendermint runs as the |
|
|
|
ethermint binary connects to it explicitly. The --proxy\_app should contain the |
|
|
|
ethermint application's IP address and port. |
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
docker run --rm -v ethermintdata:/ethermint ethermint init /setup/genesis.json |
|
|
|
|
|
|
|
Start ethermint as a validator node: This is a two-step process: \* Run |
|
|
|
the ethermint container. You will have to define where tendermint runs |
|
|
|
as the ethermint binary connects to it explicitly. \* Run the tendermint |
|
|
|
container and expose the ports that allow clients to connect. The |
|
|
|
--proxy\_app should contain the ethermint application's IP address and |
|
|
|
port. |
|
|
|
docker run --rm -d -v /tmdata:/tendermint tendermint/tendermint node --proxy_app=tcp://172.17.0.3:46658 |
|
|
|
docker run --rm -d -v /ethermintdata:/ethermint tendermint/ethermint ethermint --tendermint_addr tcp://172.17.0.2:46657 |
|
|
|
|
|
|
|
:: |
|
|
|
Building images by yourself: |
|
|
|
|
|
|
|
docker run --rm -d -v ethermintdata:/ethermint ethermint --tendermint_addr tcp://172.17.0.3:46657 |
|
|
|
docker run --rm -d -v data:/tendermint -p 46656-46657:46656-46657 tendermint node --proxy_app tcp://172.17.0.2:46658 |
|
|
|
`This folder <https://github.com/tendermint/ethermint/blob/master/scripts/docker>`__ |
|
|
|
contains Docker container descriptions. Using this folder you can build your |
|
|
|
own Docker images with the ethermint application. |