Installing Celo using a system file

Maxim
2 min readApr 21, 2023

Installed Celo on Baremetal Archive Node according to Stake🦑Squid’s guide

What I would like to add in addition to this description:

The first is service management in Linux, if you don’t know what it is it will be useful to know more about it, there is enough material on the Internet, here a brief introduction to understand current installation.

A service in systemd is described by a unit file, which describes how this service should be started and how to behave with it. There are different types of units, we are interested in service

Systemd has a special tool for managing services in Linux which is the systemctl command. This utility allows you to do a lot of things, from restarting a linux service and checking its status, to analyzing the efficiency of the service load.

The commands we are interested in:
- start — start the linux service
- stop — to stop the linux service
- reload — ask the service to re-read its configuration from the file system
- restart — restart the service
- status — status of the service
- enable — add the service to autostart

Create/edit the service file in a specific location in the Linux, in our case it is the /etc/systemd/system
Create a file

nano /etc/systemd/system/celo.service

add the contents:

[Unit] 
Description=Celo
Archive Node After=network.target
StartLimitIntervalSec=60
StartLimitBurst=3

[Service]
Type=simple
Restart=on-failure
RestartSec=5
TimeoutSec=900
User=root
Nice=0
LimitNOFILE=200000
WorkingDirectory=/root/celo-blockchain
ExecStart=/root/celo-blockchain/build/bin/geth \
--datadir=/root/.local/share/celo/datadir \
--syncmode=full \
--gcmode=archive \
--txlookuplimit=0 \
--cache.preimages \
--http \
--http.addr=0.0.0.0 \
--http.port=9656 \
--http.api=eth,net,web3,debug,admin,personal
KillSignal=SIGHUP

[Install]
WantedBy=multi-user.target

Re-read the configuration from the system file

systemctl daemon-reload

start the service

systemctl restart celo.service

add to autostart

systemctl enable celo.service

Second, you can watch the synchronization check from the console by running the command:

curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST http://localhost:9656

This hash should be converted to see block number in decimal system — for example here: https://www.rapidtables.com/convert/number/hex-to-decimal.html and compare with current block in blockscanner https://celoscan.io/

--

--