Skip to content

Abelian Node User Manual

This document describes how to run an Abelian node using the command-line interface.

Please refer to Abelian Applications Basics to understand the software architecture and the purpose of running an Abelian node firstly.

To interact with other miners, developers and users, join Official Discord Server.

All the operations are carried out via the Command Line Interface (CLI). For Linux or macOS, open Terminal; and for Windows, open PowerShell or any of your favorite shell application.

Prerequisites

Before starting, ensure you meet the system requirements:

  • Storage: At least 200GB+ (current blockchain ~120GB, growing)
  • RAM: Minimum 8GB (16GB+ recommended)
  • CPU: 2+ cores (4+ cores recommended)
  • Network: Stable broadband connection

1. Installation

Download the compressed file for your platform from the Official Download Page:

  • Linux x86: abec-linux-amd64-v2.0.2.tar.gz
  • Linux arm: abec-linux-arm64-v2.0.2.tar.gz
  • macOS (Intel-Chip): abec-macos-amd64-v2.0.2.tar.gz
  • macOS (M-Chip): abec-macos-arm64-v2.0.2.tar.gz
  • Window: abec-windows-amd64-v2.0.2.tar.gz

Extract and place it under the ~/abel/ folder:

txt
~/abel/abec-linux-amd64-v2.0.2/

Initial Setup

Navigate to ~/abel/abec-linux-amd64-v2.0.2/ and run:

powershell
$ .\abec.exe
shell
$ sh start_abec.sh
shell
$ sh start_abec.sh

Press Ctrl+C to stop it. This creates the configuration folder for abec:

txt
%USERPROFILE%\\AppData\Local\Abec
txt
~/Library/Application Support/Abec
txt
~/.abec

Platform-Specific Notes

  • macOS/Linux: You may need to run chmod 777 xxx if you get "xxx: Permission denied"
  • macOS (M-chips/ARM64): If you see "'xxx' is damaged and can't be opened", run:
shell
$ xattr -d com.apple.quarantine path/to/xxx
  • macOS: If you see "'xxx' cannot be opened because the developer cannot be verified", go to System Preferences → Security & Privacy → General and click Allow anyway

2. Configuration - abec

Navigate to the abec configuration folder and modify abec.conf with the following settings:

Node Type Configuration

Choose the appropriate node type based on your storage and verification needs:

Node TypeStorage RequirementsVerification LevelDescription
Full NodeHighest (~1200GB+)CompleteStores and verifies all blockchain data from genesis
Semi-Full NodeMedium (~240GB+)StandardOptimized storage with high verification capability
Normal NodeLowest (~160GB+)SafeFurther optimized for resource-limited environments

Full Node

  • Definition: A complete node that stores and verifies all data of the blockchain.
  • Functionality:
    • Stores the complete block (Content + Witness) data from the genesis block.
    • Verifies the validity of each block (transaction validity, block validity).

Semi-Full Node

  • Definition: A semi-complete node that optimizes storage requirements while maintaining high verification capability.
  • Functionality:
    • Stores block (Content) data from the genesis block up to the last checkpoint.
    • Stores complete block (Content + Witness) data from the last checkpoint onward.
    • Verifies the header information of each block (including PoW) before the last checkpoint.
    • Verifies the validity of each block (transaction validity, block validity) from the last checkpoint onward.

Normal Node

  • Definition: A normal node that further optimizes storage, suitable for resource-limited environments.
  • Functionality:
    • Stores block (Content) data from the genesis block to the reserved block.
    • Stores complete block (Content + Witness) data starting from the reserved block.
    • Verifies the header information of each block (including PoW) before the last checkpoint.
    • Verifies the validity of each block (transaction validity, block validity) after the last checkpoint.

Configuration:

ini
# Default: semi-full node (recommended for most users)
nodetype=semifullnode

# Other options:
# nodetype=fullnode      # Complete node
# nodetype=normalnode    # Normal node

Network Configuration

If you have a public IP or configured port forwarding, you can broadcast your presence:

ini
externalip=1.2.3.4

Security Configuration

For production environments, consider additional RPC security settings:

ini
# Restrict RPC access to specific IPs
rpclisten=127.0.0.1:8667

# Set strong RPC credentials
rpcuser=your_secure_username
rpcpass=your_secure_password

3. Running the Abelian Node

Start the Node

Navigate to ~/abel/abec-linux-amd64-v2.0.2/ and start the node:

shell
$ .\abec.exe
shell
$ sh start_abec.sh
shell
$ sh start_abec.sh

Initial Synchronization

The node will begin synchronizing with the Abelian network:

  1. Connection Phase: Connecting to peer nodes
  2. Sync Phase: Downloading and verifying blockchain data
  3. Validation Phase: Validating downloaded blocks

Expected sync times:

  • Full Node: Several days (depending on connection)
  • Semi-Full Node: 1-3 days (recommended)
  • Normal Node: 1-2 days

#TODO add section for downloading backup data

Monitoring Progress

Monitor synchronization progress through the console output:

text
[INF] SYNC: Processed 1000 blocks in the last 10.02s (100 transactions, height 50000, 2023-01-01 12:00:00 +0000 UTC)

Check latest network height at: https://explorer.pqabelian.io

4. Node Management

Using abectl

The abectl command-line tool allows you to interact with your running node:

Check node info:

shell
$ ./abectl.exe getinfo
shell
$ sh start_abectl.sh getinfo
shell
$ sh start_abectl.sh getinfo

Check peer connections:

shell
$ ./abectl.exe getpeerinfo
shell
$ sh start_abectl.sh getpeerinfo
shell
$ sh start_abectl.sh getpeerinfo

Stopping the Node

To safely stop the node:

  • Press Ctrl+C in the terminal
  • Or use:
shell
$ ./abectl.exe stop
shell
$ sh start_abectl.sh stop
shell
$ sh start_abectl.sh stop

Restarting After Updates

When updating to a new version:

  1. Stop the current node
  2. Replace the binary files
  3. Restart using the same configuration

5. Troubleshooting

Common Issues

Slow Synchronization:

  • Check Internet connection stability
  • Ensure sufficient disk space
  • Consider using SSD for better performance

Connection Issues:

  • Verify firewall settings (port 8666 should be accessible)
  • Check network connectivity
  • Try different DNS servers

High Resource Usage:

  • Consider switching to normalnode type
  • Increase available RAM
  • Monitor disk space regularly

Log Files

Check log files for detailed error information:

txt
%USERPROFILE%\AppData\Local\Abec\logs\
txt
~/Library/Application Support/Abec/logs/
txt
~/.abec/logs/

6. Security Best Practices

Network Security

  • Firewall Configuration: Only open necessary ports
  • RPC Security: Use strong credentials and restrict access
  • Regular Updates: Keep software updated to latest versions

Operational Security

  • Backup Configuration: Save your abec.conf file
  • Monitor Resources: Watch disk space and memory usage
  • Log Monitoring: Regularly check logs for unusual activity

7. Advanced Configuration

Multi-Machine Setup

For running wallets or miners on different machines:

  1. Configure RPC listening:
ini
rpclisten=0.0.0.0:8667
  1. Set up certificates for secure communication
  2. Configure firewall rules for RPC ports

Performance Optimization

For high-performance setups:

  • Use SSD storage
  • Allocate more RAM
  • Use dedicated network connection
  • Consider running on dedicated hardware

Next Steps

Once your node is running:

Your node will help secure and decentralize the Abelian network. Thank you for contributing! 🚀