# Docker Implementation

Our objective is to conduct more comprehensive testing of our blockchain, and to that end, we've decided to deploy multiple nodes on a single server instead of the traditional approach of deploying a single node on each server. However, each blockchain node has specific resource requirements such as storage, RAM, CPU, and ports, and in order to ensure secure and proper functioning deployment of nodes, we need to separate our resources from one another

What's Inside

* Docker Implementation to run a Single Blockchain node.
* Solutions | Troubleshooting

#### Docker Implementation to run a Single Blockchain node

The operations are performed using Ubuntu OS as the base machine, but any Debian based OS can be used. To begin, it is necessary to install all the required software and dependencies. Assuming that you have a Debian based server set up and connected, execute the following commands in sequence

As the upcoming commands need to be executed as a root user, let's switch the user first.

```bash
sudo su root
```

```bash
cd /root
```

```shell
apt-get update
```

```shell
apt-get install docker.io docker-compose -y
```

To ensure that Node operates correctly, it is necessary to have a folder that persists even when the container's state changes. This guarantees the safety of your data in case the container is stopped or terminated. A folder called "Blockchain-data" will be automatically generated by Docker at the "/root" directory. You can access this location to obtain more information after running your node.

### Run Single Blockchain Node

Please modify the password of your node in the command below by replacing "YourBlockchainPassword" with your preferred password.&#x20;

```shell
docker run -itd -p12000:12000 -v /root/BlockchainData/db:/app/pando/node/db -v/root/BlockchainData/key:/app/pando/node/key --name pandonode -e password=YourBlockchainPassword public.ecr.aws/n7n4m2f1/pando-network-protocol:latest
```

**Note:-** It is recommended to use the above command only once, as other commands listed below can be used for starting, stopping, and retrieving information

Run this command to check running logs of the Blockchain Node&#x20;

```shell
docker logs -f pandonode
```

* Run this command to stop the node

```shell
docker stop pandonode
```

* Run this command to start the node again with existng configuration

```bash
docker start pandonode
```

Your node is now up and running successfully. To check its details, execute the following command

```bash
docker exec -it pandonode pandocli query metatron
```

The output of this Command will give to node address and other useful informations which may be needed to stake. The informations can be copied from the output.

###

### Run Multiple Blockchain Nodes

Despite not being our recommended approach, if you are already well-versed in using docker-compose, you may utilize our official image for setting multiple nodes.

We don't provide tech support for this implementation.
