How to set a CREA witness node

If you have come this far, it is because you are interested in being part of the network of witnesses that support the CREA network. Bravo! You are in the right place. Here you will find step by step all the necessary indications to become an elected witness in this consensus protocol. You can know the list of witnesses that operate on the network in the following links.
creascan.net/witnesses
creary.net/~witness

In CREA the production of blocks takes place in rounds. In each round, 25 witnesses (nodes) are selected by direct democracy thanks to the vote of the users of the network. The main objective of the witnesses is to create and sign blocks of transactions. Twenty-four of these witnesses are chosen by voting and the number 25 is selected from among all those witnesses that did not rank among the first 24. The 25 active witnesses are changed in each round to prevent any witness from constantly ignoring the blocks produced by the same witness placed in a previous position. The protocol distributes to the witnesses 15% of the total of the rewards issued annually.


What does it mean to be a witness of the network?

A witness is something very important for the CREA network. A witness represents all those users of the network who have deposited their vote and confidence to represent them.

Being trustworthy is the first norm that a witness must comply with in order for the community to vote for him. For this reason, a witness must ensure that his server is always operational and never fails.

A witness must love his task and keep up to date with the latest developments and implementations that are proposed for the CREA network in order to update his node and be prepared for a possible update in the network.

A witness must have knowledge of command-line, know how to manage the configuration and maintenance of a server. If you are not familiar with these tasks, it may become complicated for you. But do not worry, if at some step of the tutorial you feel lost or have any questions, you can find help from the community on the #Witnesses channel on Discord.

Similar to crowdfunding, witnesses can also ask for a vote from the community to finance a development that has a collective return. For example, a DAPP or any initiative or open source tool that provides an improvement to the ecosystem of CREA. For this it is convenient to provide a link to the project so that the community can evaluate the initiative before voting for the witness that promotes it.

1.Get a server

Keep in mind that the main mission of a witness is to sign a block of transactions and this task must be completed quickly and efficiently.

The following specifications are the minimum requirements for a reliable witness.

CPU: Dual core @ 2GHz or higher per core.
Memory: 4GB (8 GB to be prepared for the future)
Bandwidth: 1 Gbit/s
Storage: Minimum, 25 GB. Recommended 50GB for the future.

Keep in mind that these requirements may change over time.

It is common for witnesses to rent a server from a hosting provider such as OVH, Contabo or Hetzner. You can always use your own machine, but you must take into account the responsibility you have as a witness.

2. Protect the server

If you are using a server, it is recommended to disable SSH access with password. It is very common that you receive brute force attacks by hackers through SSH on your server.

To mitigate these attacks, we recommend you access through public key:

2.1 Create a password protected SSH key to use in the connection to your server.

Copy to Clipboard

2.2 Copy what is included in ~/.ssh/id_rsa.pub in a line in ~/.ssh/authorized_keys on your server or use the command:

Copy to Clipboard

Deberás escribir la contraseña de acceso en  el prompt.

You must enter the access password at the prompt.
2.3Test the connection using the ssh public key. This is essential to disable login with a password in the next step.

2.4 Disable the SSH password authentication on the server. Edit the file /etc/ssh/sshd_config, find a line that says #PasswordAuthentication yes and change it to PasswordAuthentication no. Save the changes and restart the ssh service:

Copy to Clipboard

3.Install dependencies and software

As Crea evolves, this information may become outdated. You can find the latest instructions in the Crea’s GitHub repository

Run these commands to install the dependencies:

Copy to Clipboard

Download and update the source code of the Crea node to the last stable version:

Copy to Clipboard

And finally compile and install the software:

Copy to Clipboard

4. Set cli_wallet

The cli_wallet is not strictly necessary to be a witness, but this guide uses it to automate the price update, so we want to make sure it is configured correctly.

Run cli_wallet. Since we do not have a running node yet, we will connect to the nodes managed by @creary.

Copy to Clipboard

cli_wallet executes an interactive console. First you need to set a password:

Copy to Clipboard

Then, import your ACTIVE private key. You can find on the Permissions section inside your profile page at https://creary.net/@my-user/wallet Permissions section.

Copy to Clipboard

5. Set Cread

Execute cread from the start folder to create the default configuration file; after a few seconds, stop it by pressing Ctrl + C.

Copy to Clipboard
Copy to Clipboard

Now there is a folder called .cread that contains the default configuration file config.ini. This is the file that needs to be edited.
Set the witness configuration in the configuration file with your witness name. Usually, this is your @username on Creary:

Copy to Clipboard

Note: The quotation marks (“_”) surrounding the witness name are required.
The private key can be generated using cli_wallet.

Copy to Clipboard

You’ll get a private key that will look like this:

Copy to Clipboard

Important: Keep this information in a safe place.
Copy the key wif_priv_key from the output to the private key configuration in the configuration file.

Copy to Clipboard

6. Run the witness

We need that cread to run automatically every time the machine is rebooted and to restart every time an error occurs.

There are some options for this. This guide uses supervisor.

Supervisor is installed by default, but if it is not, you can install it using apt-get:

Copy to Clipboard

Enable the start of supervisor with the start of the system:

Copy to Clipboard

Create the file /etc/supervisor/conf.d/cread.conf with the following content, replacing .

Copy to Clipboard

Restart the supervisor to use the new configuration file:

Copy to Clipboard

You can also start and stop cread manually with the following command:

Copy to Clipboard

To monitor the status of all processes managed by the supervisor, use the following command:

Copy to Clipboard

7. Spread your intention to become a witness

The last step is to spread your intention to become a witness of the network.
Start cli_wallet and use the update_witness command:

Copy to Clipboard

Your witness is running and you have shared your intention to become a witness. Now what?

8.Get votes from the CREA community

The greater the total VESTS you have from the votes, the higher your position in the witness ranking. If you reach a position among the first 24 witnesses you will be selected in each of the rounds.

To get votes you must first become a trustworthy witness. If you work efficiently and your server behaves according to the expectations of the network, it will not be difficult for you to become a trusted witness soon.

There is no formula to win votes easily. As in any social network, obtaining a good reputation is always positive, for this you should try to show the community of Crearians that you are a valid person to take charge of the important task of being a witness in the CREA network.