In addition to using the Docker image, there are ways to run nodes with the Linux system daemon as a Systemd service. The service will work on most Linux operating systems. However, Debian/Ubuntu is the only environment in which all tests have been completed, and the manual has been written based on this environment.
First, create a service account to run the node service.
adduserBIFROST_SERVICE--system--no-create-home
Next, create a local directory to store the chain data of the Bifrost Network. This directory contains the node binary and block information collected from the genesis block to the present.
# Add sudo at the beginning if it doesn't workmkdir-p/var/lib/bifrost-data
After you download the latest node execution binary and move it to the directory you created earlier, you must set permissions of the binary and ownership of the directory. You can check the latest releases by going to our GitHub repository under the releases page.
# step 1. Download the latest bifrost-node binary & bifrost-testnet.jsonwget"https://github.com/bifrost-platform/bifrost-node/releases/latest/download/bifrost-node"wget"https://github.com/bifrost-platform/bifrost-node/releases/latest/download/bifrost-testnet.json"# step 2. Grant execute permission & Move to chain data directorychmod+xbifrost-nodemvbifrost-nodebifrost-testnet.json/var/lib/bifrost-data# step 3. Set ownershipchown-RBIFROST_SERVICE/var/lib/bifrost-data
# step 1. Download the latest bifrost-node binary & bifrost-mainnet.jsonwget"https://github.com/bifrost-platform/bifrost-node/releases/download/latest/bifrost-node"wget"https://github.com/bifrost-platform/bifrost-node/releases/latest/download/bifrost-mainnet.json"# step 2. Grant execute permission & Move to chain data directorychmod+xbifrost-nodemvbifrost-nodebifrost-mainnet.json/var/lib/bifrost-data# step 3. Set ownershipchown-RBIFROST_SERVICE/var/lib/bifrost-data
Run the Node Service
Next, you need to create a Systemd configuration file. In the example below, change YOUR_NODE_NAME to the desired name of your node service, and save the file in the following directory.
Conversely, to run an endpoint node with non-archive mode enabled, it is necessary to determine the maximum number of past blocks to be indexed, and the number of blocks may be specified after the --state-pruning option.
Now, with the two lines of the command below, the node service will run in the background.
Since chain data needs to be synced starting from the genesis block, the information that it is currently syncing will be shown as the following output. You can proceed to the next steps only when the sync is complete, and it may take up to several days at most.
To quickly synchronize your chain data, follow this link.
As Bifrost Network development continues, it will sometimes be necessary to upgrade your node client. Node operators will be notified on our Discord channel or by personal contacts when upgrades are available and whether they are necessary (some client upgrades are optional).
Before upgrading your node client, please keep a backup file of your chain data to prevent any further data, keys, or credential losses.
# Stop and delete bifrost-node binarysystemctlstopbifrost-node.servicerm/var/lib/bifrost-data/bifrost-node# Download the latest bifrost-node binarywget"https://github.com/bifrost-platform/bifrost-node/releases/latest/download/bifrost-node"# Grant execute permission & move to chain data directorychmod+xbifrost-nodechownBIFROST_SERVICEbifrost-nodemvbifrost-node/var/lib/bifrost-datasystemctlrestartbifrost-node.service