LogoLogo
  • Welcome
    • About ENI
  • Getting Started
    • Quickstart
      • Account Structure
      • Token Standards
      • Gas
    • Divergence from Ethereum
    • Transactions
      • Creating Transaction
    • Governance
      • Proposals
    • Oracles
  • Build
    • Setup and Installation
    • Smart Contracts
      • EVM (General)
      • EVM (CLI)
      • Querying State
    • Frontend Development
      • Overview
      • How to Deploy Your First dApp
    • Ecosystem
      • Tools and Resources
      • Resources
  • Node
    • Getting Started
    • Node Operators Guide
    • Validator Operations Guide
    • Advanced Configuration & Monitoring
    • Technical Reference
  • Reference
    • Overview
    • enid
    • CLI
      • enid add-genesis-account
      • enid blocktest
      • enid collect-gentxs
      • enid compact
      • enid config
      • enid debug
      • enid export
      • enid gentx
      • enid help
      • enid init
      • enid keys
        • enid keys delete
        • enid keys add
        • enid keys export
        • enid keys import
        • enid keys list
        • enid keys mnemonic
        • enid keys parse
        • enid keys show
      • enid latest_version
      • enid migrate
      • enid prune
      • enid query
        • enid query accesscontrol
        • enid query upgrade
        • enid query account
        • enid query auth
        • enid query bank
        • enid query block
        • enid query authz
        • enid query distribution
        • enid query epoch
        • enid query evidence
        • enid query evm
        • enid query feegrant
        • enid query ibc-transfer
        • enid query gov
        • enid query ibc
        • enid query mint
        • enid query oracle
        • enid query params
        • enid query slashing
        • enid query staking
        • enid query tendermint-validator-set
        • enid query tokenfactory
        • enid query tx
        • enid query txs
      • enid rollback
      • enid start
      • enid status
      • enid tendermint
      • enid tools
      • enid tx
      • enid validate-genesis
      • enid version
Powered by GitBook
On this page
  • Command Line Interface Reference
  • Configuration Parameters
  • Error Codes and Troubleshooting
  • Network Parameters
  • File Locations
  1. Node

Technical Reference

This guide serves as a comprehensive reference for ENI node operators and validators, providing detailed command syntax, configuration parameters, and troubleshooting procedures. For API documentation, refer to our API documentation section.

Command Line Interface Reference

The enid binary provides extensive functionality to manage your ENI node. Understanding these commands is critical for effective node operation and troubleshooting.

Node Management Commands

These commands help you control and monitor node operations:

# Start the node
enid start [flags]

# Display node status
enid status

# Display validator consensus key
enid tendermint show-validator

# Query node information
enid query node info

Key Management

Proper key management is essential for security. These commands help you manage keys effectively:

# Create a new key
enid keys add <name> [flags]

# List all keys
enid keys list

# Delete a key
enid keys delete <name>

# Export a key (encrypted)
enid keys export <name>

# Import a key
enid keys import <name> <keyfile>

# Display key address
enid keys show <name> -a

Transaction Commands

These commands allow you to interact with the blockchain:

# Send tokens
enid tx bank send <from-key> <to-address> <amount>ueni [flags]

# Delegate tokens
enid tx staking delegate <validator-addr> <amount>ueni --from <delegator-key>

# Withdraw rewards
enid tx distribution withdraw-rewards <validator-addr> --from <delegator-key>

# Edit validator
enid tx staking edit-validator [flags] --from <validator-key>

Configuration Parameters

Understanding configuration parameters is crucial for optimizing node performance and security.

App.toml Parameters

The app.toml file controls application-specific settings:

Complete app.toml Configuration
```toml
# Minimum gas prices for accepting transactions
minimum-gas-prices = "0.01ueni"

# API Configuration
[api]
enable = true
swagger = true
address = "tcp://0.0.0.0:1317"
max-open-connections = 1000

# State Sync Configuration
[state-sync]
snapshot-interval = 1000
snapshot-keep-recent = 2

# Mempool Management
[mempool]
size = 5000
max-txs-bytes = 1073741824
cache-size = 10000

# State Store Configuration
[state-store]
ss-enable = true
ss-backend = "pebbledb"
ss-keep-recent = 100000
ss-prune-interval = 600
```

Config.toml Parameters

The config.toml file controls the core consensus engine and networking:

Complete config.toml Configuration
```toml
# P2P Configuration
[p2p]
laddr = "tcp://0.0.0.0:26656"
external_address = ""
seeds = ""
persistent_peers = ""
upnp = false
max_num_inbound_peers = 40
max_num_outbound_peers = 10
allowed_pools = ""
max_packet_msg_payload_size = 10240
handshake_timeout = "20s"
dial_timeout = "3s"

# RPC Configuration
[rpc]
laddr = "tcp://0.0.0.0:26657"
cors_allowed_origins = []
cors_allowed_methods = ["HEAD", "GET", "POST"]
cors_allowed_headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time"]
max_open_connections = 900
timeout_broadcast_tx_commit = "10s"

# Consensus Configuration
[consensus]
wal_file = "data/cs.wal/wal"
timeout_propose = "3s"
timeout_propose_delta = "500ms"
timeout_prevote = "1s"
timeout_prevote_delta = "500ms"
timeout_precommit = "1s"
timeout_precommit_delta = "500ms"
timeout_commit = "1s"
double_sign_check_height = 0
```

Error Codes and Troubleshooting

Common Error Codes

Below are the most common errors you may encounter and their solutions:

Consensus Errors

When facing consensus errors, quick and appropriate action is critical:

Error: "Consensus Failure - Height Halted"
Solution: Check for network upgrades or chain halts
Command: enid status | jq .sync_info

Error: "Private Validator File Not Found"
Solution: Restore validator key or check file permissions
Location: ~/.eni/config/priv_validator_key.json

Error: "Duplicate Signature"
Solution: Stop the node immediately - potential double-signing risk
Action: Check for validator operations on other machines

Network Errors

Network errors may prevent your node from participating in consensus:

Error: "Dial TCP Connection Refused"
Solution: Check network connectivity and firewall rules
Commands:
  - netstat -tulpn | grep enid
  - ufw status

Error: "No Peers Available"
Solution: Verify peer connections and network configuration
Commands:
  - enid net_info
  - curl localhost:26657/net_info

Database Errors

Database corruption may require immediate attention:

Error: "Database Corrupted"
Solution: Reset the database or restore from backup
Commands:
  - enid tendermint unsafe-reset-all
  - cp -r backup/data ~/.eni/

Diagnostic Commands

These commands help you investigate issues and monitor the node:

# Check node synchronization
enid status | jq '.sync_info'

# View peer connections
enid net_info | jq '.result.peers[] | {node_info: {id: .node_info.id, moniker: .node_info.moniker}}'

# Check validator status
enid query staking validator $(enid tendermint show-validator)

# Monitor logs in real-time
journalctl -u enid -f -o cat

# View system resource usage
top -p $(pgrep enid)

Network Parameters

Understanding network parameters helps you operate your node effectively.

Chain Parameters

These parameters define the network's behavior:

Block Time: Target 1 second
Maximum Validators: 100
Unbonding Period: 21 days
Punishment Conditions:
  - Downtime: 0.01%
  - Double Signing: 5%
  - Oracle Miss: 0.01%
Minimum Self-Delegation: 1 ENI
Maximum Commission Rate: 20%
Maximum Commission Change Rate: 1% per day

Port Configuration

Understanding port usage is crucial for network configuration:

26656: P2P Communication
26657: RPC Interface
1317: REST API
9090: gRPC
26660: Prometheus Metrics

File Locations

Knowing the purpose and location of key files aids in maintenance and troubleshooting:

~/.eni/
├── config/
│   ├── app.toml         # Application configuration
│   ├── client.toml      # Client configuration
│   ├── config.toml      # Tendermint configuration
│   ├── genesis.json     # Chain genesis file
│   ├── node_key.json    # Node identity key
│   └── priv_validator_key.json  # Validator signing key
├── data/
│   ├── application.db   # Application state
│   ├── blockstore.db    # Block data
│   ├── cs.wal/         # Consensus write-ahead log
│   ├── evidence.db     # Evidence of misbehavior
│   ├── state.db        # Tendermint state
│   └── tx_index.db     # Transaction index
└── keyring-file/       # Local key storage

This reference guide provides essential technical information for operating ENI nodes and validators. For API documentation and other detailed specifications, refer to the corresponding sections in our documentation set.

PreviousAdvanced Configuration & MonitoringNextOverview

Last updated 2 months ago