Docker commands
Build Docker image
make build-images
This creates the necessary Docker images to start Klayr Service in the containers.
Start
cp ./docker/example.env .env
make up
This will start Klayr Service with the default configuration, which in turn will connect to a Klayr Core Mainnet node.
In case a different node or network shall be used, configure Klayr Service accordingly.
Reset the Klayr Service database
To reset the database of Klayr Service, drop the respective MySQL and Redis databases.
Before resetting the database, stop Klayr Service:
make stop
Now connect to the Docker container in which you wish to reset the database. If you are not sure what to choose here, check the available containers via Show the status of Docker containers.
To connect to the interactive shell of the MySQL Docker container in which you wish to reset the MySQL database, execute the following command:
docker exec -it klayr-service-mysql-primary-1 bash
Drop Database
-
Login to MySQL with the
klayr
user.mysql -uklayr -ppassword
On successful login, you enter the MYSQL command-line client:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2044 Server version: 8.0.27 MySQL Community Server - GPL Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
Drop the
klayr
database.mysql> drop database klayr;
-
Create a fresh database
klayr
.mysql> create database klayr;
-
Log out from MySQL by typing
quit;
mysql> quit;
Log out of the docker container by pressing CRTL + D.
MariaDB also uses the same SQL commands for querying and manipulating the relevant data, including data storage, client libraries, and replication.
-
Login to MariaDB with the
klayr
user.docker exec -it klayr_mariadb mysql -uroot -p
On successful login, you enter the MariaDB command-line client:
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 10.7.8-MariaDB-1:10.7.8+maria~ubu2004 mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-
Drop the
klayr
database.MariaDB [(none)]> drop database klayr;
ResultQuery OK, 0 rows affected (0.009 sec)
-
Create a fresh database
klayr
MariaDB [(none)]> create database klayr;
ResultQuery OK, 1 row affected (0.001 sec)
-
Log out by typing
quit;
.MariaDB [(none)]> exit;
Log out of the docker container by pressing CRTL + D.
Flush Redis DB
Reset the databases for Redis after dropping the MySQL database:
sudo docker exec -it klayr-service_redis_core_persistent_1 /bin/sh
redis-cli flushall
Log out of the docker container again by pressing CRTL + D. |
The
For more information, check the Redis documentation: FLUSHALL. To flush only a particular DB in Redis, execute the following command instead:
|
Taking Snapshots
If you wish to take a snapshot of your Docker installation, the details can be found here on the Snapshots page.
Logging
The possibility exists here to either use the docker
commands or the make
commands to check the logs, and both options are listed here below.
For docker
, to check the logs for the different microservices of Klayr Service, use the command docker container logs CONTAINER
, where CONTAINER
is the respective Docker container that holds the logs you wish to view.
For example, to see the logs for the Gateway microservice, execute the following command:
docker container logs klayr-service_gateway_1
To check the logs for different microservices using the make
commands, the following commands listed below can be used:
make logs
make logs-live
make logs-blockchain-connector
In the above example, it will display logs only for the blockchain-connector
microservice.
make logs-live-blockchain-connector
In the above example, it will display the latest logs only for the blockchain-connector
microservice.
Replace the blockchain-connector
with the specific service name required.
Upgrade Klayr Service
To upgrade the Docker container to a desired version, please follow one of the two options below. To find all the tagged versions for Klayr Service, please check the available tags on GitHub.
-
Stop Klayr Service
make stop
In case the database needs to be flushed please execute the make down
command instead. Please check the release notes for the relevant version to see if the existing databases need to be flushed. -
Checkout the version with
git checkout <tag>
git checkout v0.7.8
-
Update
docker-compose.yml
to download the specific image versions from the DockerHub as shown below. Update specified images with the desired version, for example0.7.8
.docker-compose.ymlblockchain-app-registry: image: klayr/service_blockchain_app_registry:0.7.8 ... blockchain-connector: image: klayr/service_blockchain_connector:0.7.8 ... blockchain-indexer: image: klayr/service_blockchain_indexer:0.7.8 ... blockchain-coordinator: image: klayr/service_blockchain_coordinator:0.7.8 ... transaction-statistics: image: klayr/service_transaction_statistics:0.7.8 ... fee-estimator: image: klayr/service_fee_estimator:0.7.8 ... gateway: image: klayr/service_gateway:0.7.8 ... market: image: klayr/service_market:0.7.8 ... export: image: klayr/service_export:0.7.8
-
Start Klayr Service in the containers.
make up
Build the images locally using the following steps. Navigate inside the klayr-service root folder, and execute the following commands.
-
Stop Klayr Service
make stop
In case the database needs to be flushed please execute the make down
command instead. Please check the release notes for the relevant version to see if the existing databases need to be flushed. -
Checkout the version with
git checkout <tag>
git checkout v0.7.8
-
Build the required updated Docker images
make build-images
-
Start Klayr Service in the containers
make up
To verify the microservice logs, please refer to the Logging section.