GitLab Artifact Install

Setup a Witness Node using a pre-compiled GitLab artifact

This document assumes that you are running Ubuntu 20.04.

circle-exclamation

The following steps outline the artifact installation of a Witness Node:

  1. Prepare the environment

  2. Download and extract the artifacts

  3. Copy the artifacts to the proper locations

  4. Update the config.ini File

  5. Start the node

1. Prepare the environment

1.1. Hardware requirements

Please see the general Witness hardware requirementsarrow-up-right.

For the GitLab artifact install, the requirements that we'll need for this guide would be as follows:

Node Type?

CPU

Memory

Storage

Bandwidth

OS

Witness

4 Cores

16GB

100GB SSD

1Gbps

Ubuntu 20.04

circle-exclamation

1.2. Install the required dependencies

The following dependencies are necessary for a clean install of Ubuntu 20.04:

1.3 cmake setup

Cmake is an open-source, cross platform tool that uses independent configuration files to generate native build tool files specific to the compiler and platform. It consists of precompiled binaries and the cmake tools makes configuration, building, and debugging much easier.

Install the cmake using the below commands:

1.4 Install Boost libraries

Boost libraries provide free peer-reviewed portable C++ source libraries and it can be used across broad spectrum of application.

Install Boost libraries using the below commands:

1.5 Install libzmq

The components libzmp and cppzmp are used for relaying messages between nodes.

First, install libzmq using the below commands:

1.6 Install cppzmq

Next, install cppzmp using the below commands:

1.7 Install gsl

GSL is the GNU scientific library for numerical computing. It is a collection of routines for numerical computing in e.g. linear algebra, probability, random number generation, statistics, differentiation, etc.,

Install the gsl using the below commands:

1.8 Install libbitcoin

The libbitcoin toolkit is a set of cross platform C++ libraries for building bitcoin applications. The toolkit consists of several libraries, most of which depend on the base libbitcoin-system library.

Install the libbitcoin using the below commands:

1.9 Install Doxygen

Doxygen is a software utility that recognizes comments within C++ code that have a certain form, and uses them to produce a collection of HTML files containing the information in those comments.

Install the Doxygen using the below commands:

2.0 Install Perl

Perl is a high-level, general-purpose, interpreted, dynamic programming language originally developed for text manipulation.

Install the Perl using the below commands:

2. Download and extract the artifacts

Artifacts are pre-built binaries that are available to download from GitLab. You can see the available pipelines, sorted by release tags, on the GitLab Peerplays projectarrow-up-right page. The link in the code below refers to release version 1.6.1 which is the latest production release as of the writing of this document. Please make sure to replace the tag with the one you need.

circle-exclamation

3. Copy the artifacts to the proper locations

Putting the witness_node and cli_wallet programs in the /usr/local/bin directory will allow us to call the program from any directory.

Now we can run start the node with:

Launching the witness creates the required directories which contain the config.ini file we'll need to edit. We'll stop the witness now with Ctrl + C so we can edit the config file.

4. Edit the config.ini file

We need to set the endpoint and seed-node addresses so we can access the cli_wallet and download all the initial blocks from the chain. Within the config.ini file, locate the p2p-endpoint, rpc-endpoint, and seed-node settings and enter the following addresses.

Save the changes and start the Witness back up.

We have successfully started the witness node and it is now ready for configuration.

circle-check

5. Node Configuration

Next step is to configure the witness node based on the requirement. There are different ways in which the nodes can be configured such as block producer, SON node, API node, and delayed node.

  1. Becoming a block producer is one of the important steps as it is mandatory to use the node for transactions across the wallet. Follow the steps from the below document to become a block producer,

  1. There are other ways it which the node can be configured. The below document showcase the other ways available for node configuration.

6. What's Next?

After configuring the node with desired configuration, click below to learn the NEXT steps 👍

7. Glossary

Witness: An independent server operator which validates network transactions.

Witness Node: Nodes with a closed RPC port. They don't allow external connections. Instead these nodes focus on processing transactions into blocks.

Last updated

Was this helpful?