Skip to main content

Node Daemon Configuration

This section provides configuration options available for Inery node deamon.
The core component responsible for running Inery DLS protocol.
Configurations are easy for developers and network administrators to configure custom Node for various use cases.

Prerequisites

Make sure the Node is set up on your server or machine and you have terminal access.

Nodine Setup

Nodine is the core service that powers Inery DLS Node. Responsible for maintaining the database, validating transactions, and provide API endpoints. Serves as the backbone for the network by ensuring consensus and facilitating communication between nodes.

Start.sh Script

The start.sh script helps automate the process of starting Inery Node.

Inery Node deamon nodine parameters can be configured in start.sh script.
Below is a basic version of the script:

#!/bin/bash

# Define paths
CONFIG_DIR="./config"
DATA_DIR="./data"

# Start the nodine process with the necessary parameters
nodine \
--data-dir $DATA_DIR \
--config-dir $CONFIG_DIR \
## Append Custom configuration here

>> /nodine.log 2>&1 &

# Check if the process started successfully
if [ $? -eq 0 ]; then
echo "Node started successfully."
else
echo "An error occurred while starting nodine."
fi

info

--data-dir and --congi-dir are example of configuration flags.
Additional configurations can be appended below nodine \ and above >> ./nodine.log 2>&1 & line.

Config.ini File

config.ini located in ./blockchain/config, the config directory specified in your start.sh script.
Modify the parameters to fit your needs.
Run the stop.sh then start.sh script again to apply the change

Configuration Parameters

Network Configuration

These parameters control how your node interacts with the network and peers.

Configuration Flags:

  • http-server-address : Defines the address and port for the node’s HTTP server.
  • p2p-listen-endpoint : Specifies the endpoint used for peer-to-peer communication.
  • p2p-peer-address : Adds peers for connection (can be specified multiple times)
  • p2p-max-nodes-per-host : Limits the number of connections from the same host.

Example

start.sh Example Values
http-server-address = 0.0.0.0:8888 \
p2p-listen-endpoint = 0.0.0.0:9010 \
p2p-peer-address = peer1.example.com:9010 \
p2p-peer-address = peer2.example.com:9010 \
p2p-max-nodes-per-host = 5 \
tip

If your node is part of a public blockchain network, you need to connect to other nodes to sync data.
The p2p-peer-address flags allow you to specify those connections.

Ledger's State and Blockchain Configuration

These flags define how your node interacts with the Ledger's state and consensus.

Configuration Flags:

  • genesis-json: Points to the genesis block file used to initialize the blockchain.
  • enable-stale-production: Allows block production even if the chain is not receiving blocks from other masters.
  • master-name: Sets the name of the block master.
  • signature-provider: Configures the keys used for signing blocks.
start.sh Example Values
--genesis-json = "./genesis.json" \
--enable-stale-production = true \
--master-name = "yourmastername" \
--signature-provider = INE5MRyAjQq8ud7hVNYcfnVPJqcVpscN5SoGhP5BGbHhX8dr4uEY=KEY:5KQwrPbwdL6PhXujxW37FSSQh4roWQmRskkZWHPgwsZ6Vo7hsKr \
tip

Use these flags if you are running a block master node. Ensure that the signature-provider contains your private key for signing. 3. Plugins and APIs

Additional Plugins

These plugins are essential for different node roles.

Configuration Flags:

  • inery::chain_api_plugin: Enables the Chain API to query Ledger Database.
  • inery::history_api_plugin: Provides historical data through APIs.
  • inery::state_history_plugin: Enables state history logging for enhanced analytics.
  • inery::master_plugin: Activates block production.
start.sh Example Values
--plugin = inery::chain_api_plugin  \
--plugin = inery::history_api_plugin \
--plugin = inery::state_history_plugin \
--plugin = inery::master_plugin \

State History and Monitoring

Enable these parameters if you need to monitor transactions or state changes over time, useful for analytics or blockchain explorers.

Configuration Flags:

  • trace-history: Enables recording of transaction traces.
  • chain-state-history: Tracks the state of the blockchain.
  • state-history-endpoint: Specifies the endpoint for state history queries.
start.sh Example Values
--trace-history = true  \
--chain-state-history = true \
--state-history-endpoint = 0.0.0.0:8088 \

Security and Performance Optimization

Control the behavior of your node for security and performance tuning.

Configuration Flags:

  • allowed-connection: Restricts connections to certain peers (any, masters, or specified).
  • max-clients: Limits the number of clients connected at a time.
  • cpu-billing-threshold-us: Defines the CPU usage threshold in microseconds.
start.sh Example Values
allowed-connection = any \
max-clients = 50 \
cpu-billing-threshold-us = 20000 \
tip

Set appropriate limits for max-clients to avoid overload, especially in public networks.