The Docker installation package available in the official Ubuntu repository may not be the latest version. To ensure we get the latest version, we’ll install Docker from the official Docker repository. To do that, we’ll add a new package source, add the GPG key from Docker to ensure the downloads are valid, and then install the package.
First, update your existing list of packages:
sudo apt update
Next, install a few prerequisite packages which let apt use packages over HTTPS:
Notice that docker-ce is not installed, but the candidate for installation is from the Docker repository for Ubuntu 22.04 (jammy).
Finally, install Docker:
sudo apt install docker-ce
Docker should now be installed, the daemon started, and the process enabled to start on boot.
Build
The only requirements are git (to checkout the repository) and docker (to build the image and run the container). Golang does not have to be installed, the docker image build process uses a build stage that provides the correct Go environment and compiles the node down to one command.
If you already cloned ceremonyclient at previous steps, you can skip to clone it again.
git clone https://github.com/QuilibriumNetwork/ceremonyclient.git
cd ~/ceremonyclient
The image that is built is light and safe. It is based on Alpine Linux with the Quilibrium node binary, not the source code, nor the Go development environment. The image also has the grpcurl tool that can be used to query the gRPC interface.
Run
Run Quilibrium in a container:
docker compose up -d
A .config/ subfolder will be created under the current folder, this is mapped inside the container. Make sure you backup config.yml and keys.yml.
The output is extremely long, this is why it is piped to less. Also, note that there is a -max-msg-sz 5000000 flag on the command. By default grpcurl limits responses to 4MB and this flag allows larger one.
Count Nodes
Run this command to count how many nodes are there:
In the repository root folder, where the file is, build the docker image:
You can run Quilibrium on the same machine where you built the image, from the same repository root folder where is.
You can also copy docker-compose.yml to a new folder on a server and run it there. In this case you have to have a way to push your image to a Docker image repo and then pull that image on the server. Github offers such an image repo and a way to push and pull images using special authentication tokens. See .
If you want to change certain parameters in it is better not to edit the file directly as new versions pushed through git would overwrite your changes. A more flexible solution is to create another file called docker-compose.override.yml right next to it and specifying the necessary overriding changes there.
The request and response messages are all defined in the source file. Most (not all) request messages are empty.