Getting Started
System Requirements
Before setting up an ENI node, ensure your system meets the following minimum requirements:
Hardware Specifications
CPU
8 cores
16 cores
Modern processor (Intel Xeon/Core i7/i9 or AMD Epyc/Ryzen)
Memory
32GB
64GB
DDR4 or higher
Storage
1TB NVMe SSD
2TB NVMe SSD
High IOPS required; SATA SSD not recommended
Network
1Gbps
2Gbps
Low-latency connection is critical
Basic System Setup
Start with a fresh installation of Debian 12, Ubuntu 20.04 LTS (or higher). Then, update the system and install the necessary packages:
Tip: Ensure your system clock is synchronized (via
chrony
orntpd
) and your timezone is set to UTC to avoid potential issues with block validation, IBC transfers, etc.
Quick Start Options
Automated Setup Script (Development/Testing)
For rapid deployment or test environments, use our automated setup script. This option is ideal when you want to quickly launch a node without diving into manual configuration:
The script will guide you through selecting:
Network: (mainnet, testnet, or local)
Database Backend: (recommended:
eni-db
)Basic Configuration Options
Production Environment Setup Overview
Generally, the setup follows this sequence:
Install the
enid
binaryConfigure your node
Initialize the chain
Set up and start the node service
Install ENI Binary
Choose one of the following methods:
Option 1: Pre-built Binary
Option 2: Build from Source
Node Initialization and Basic Configuration
Initialize Your Node
Set the node name and chain ID, then initialize the node:
Update Basic Settings
Confirm the minimum gas price (at least 0.01ueni) by updating the app.toml
file:
Advanced Synchronization Options
Choose one of the following synchronization methods based on your operational needs:
State Sync Configuration (Non-Archive Nodes)
State sync allows your node to catch up quickly by retrieving a recent snapshot from trusted peers instead of replaying all historical blocks.
Steps
Edit the [statesync]
section: In ~/.eni/config/config.toml
, update or add the following persistent peers:
Automate Trust Parameter Configuration:
Use the following script to dynamically set the trust height and hash based on the provided RPC endpoint:
Usage:
Ensure the [statesync]
section already includes the persistent peers listed above.
Mempool Configuration Tuning
To optimize transaction processing and resource management, it’s recommended to update the mempool settings in the config.toml
file as follows:
Suggestion: Adjust these parameters if you encounter performance or resource issues.
Set Up Service with systemd
Setting up a systemd service ensures your node starts automatically on boot and restarts if it crashes.
Note: Confirm that the
User
field suits your environment. Update it accordingly if running under a different user.
Validation and Troubleshooting
Validate Your Setup
Run the following commands to confirm the node’s status:
Your node is correctly set up when:
Sync status shows
"catching_up": false
Logs indicate blocks are being processed
Common Troubleshooting Tips
Sync Issues
Verify sufficient disk space.
Ensure a stable network connection.
Confirm the system time is correctly synchronized.
Use state sync for rapid initial sync (note: not applicable for archive nodes).
Performance Issues
Monitor system resources (CPU, memory, I/O).
Evaluate disk performance and network bandwidth.
Adjust mempool and persistent peer settings if necessary.
Network Connectivity
Confirm firewall rules allow required ports (e.g., 26656, 26657, 9090).
Check that DNS resolution is functioning.
View system logs and node info via RPC [localhost:26657/net_info] to verify peer connections.
Next Steps
Once your node is up and running, consider the following:
Monitoring and Alerts: Set up tools to monitor node health and performance.
Security Best Practices: Harden your server (firewall, SSH keys, etc.).
Backup Procedures: Regularly back up your configuration and data directories.
Additional documentation can be found at:
Advanced Configuration and Monitoring Guide
Node Operators Guide
Validators Guide
Last updated