Home Node Installation
Post
Cancel

Installation

This guide walks through installing and configuring a SASEUL node from scratch.

For a minimal first startup, see Quick Start. This page provides the full setup with environment configuration details.


System requirements

Minimum

ComponentRequirement
CPU2 cores
RAM8 GB
Storage256 GB SSD
OSLinux (x86_64 or ARM64)
ComponentRequirement
CPU4+ cores
RAM32+ GB
Storage1+ TB SSD
GPUNVIDIA with CUDA support (for GPU mining)


Preparation

Network

The SASEUL node listens on port 80 by default.

  • configure your router or firewall to allow inbound TCP on the port you intend to use
  • a static IP or stable DNS name is required if you want other nodes to reach yours
  • for AWS EC2, see Security Group Rules

Clock synchronization

Node consensus depends on accurate time. Enable NTP on the host before starting.

1
sudo timedatectl set-ntp true

Docker

SASEUL nodes are distributed as Docker images. Install Docker following the official instructions.


Image tags

TagDescription
latestFull version — includes GPU and CPU support
liteCPU-only — smaller image, no GPU dependencies
arm64CPU-only for ARM64 hosts

Append a version number to pin a specific release: artifriends/saseul-network:2.2.0.3, artifriends/saseul-network:2.2.0.3-arm64


CPU-only installation

1. Pull the image

1
sudo docker pull artifriends/saseul-network:lite

For ARM64 hosts:

1
sudo docker pull artifriends/saseul-network:arm64

2. Create a data directory

Block data is persisted outside the container. This allows you to update the image without re-synchronizing.

1
sudo mkdir -p /var/saseul-data

3. Start the container

1
2
3
4
5
sudo docker run -d --init --name saseul-node \
  -p 80:80 \
  -v /var/saseul-data:/var/saseul/saseul-network/data \
  --entrypoint /bin/saseul-init \
  artifriends/saseul-network:lite

For ARM64, replace the tag with arm64.

4. Run initial setup

1
sudo docker exec -it saseul-node saseul-install

The installer prompts for:

1
2
3
4
5
Please enter your endpoint (host:port) [anonymous]:
> <YOUR_HOST:PORT>

Please enter your miner address [primary wallet]:
> (leave empty to use the default wallet)
  • Endpoint — the public address other nodes use to reach you. Enter anonymous if you do not want to expose the node publicly.
  • Miner address — the address that receives mining rewards. Press Enter to use the primary wallet created automatically.

5. Start the node

1
sudo docker exec -it saseul-node saseul-script start

6. Verify

1
sudo docker exec -it saseul-node saseul-script info

The node begins synchronizing blocks. Follow the logs to track progress:

1
sudo docker exec -it saseul-node saseul-script log -f


GPU mining installation

GPU mining requires an NVIDIA GPU with CUDA support and uses the latest image tag.

1. Install NVIDIA drivers and container toolkit

The example below is for Amazon Linux 2023. Adapt the package manager commands for your distribution.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo dnf update -y
sudo dnf install -y kernel-devel docker gcc make dkms
sudo dnf config-manager --add-repo \
  https://developer.download.nvidia.com/compute/cuda/repos/amzn2023/x86_64/cuda-amzn2023.repo
sudo dnf install -y nvidia-driver

curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
  | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
sudo dnf install -y nvidia-container-toolkit nvidia-driver-cuda

sudo systemctl enable --now docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
sudo reboot

After reboot, verify:

1
nvidia-smi

2. Start the container with GPU access

1
2
3
4
5
6
7
8
9
sudo docker pull artifriends/saseul-network:latest

sudo mkdir -p /var/saseul-data
sudo docker run -d --init --name saseul-node \
  --gpus all \
  -p 80:80 \
  -v /var/saseul-data:/var/saseul/saseul-network/data \
  --entrypoint /bin/saseul-init \
  artifriends/saseul-network:latest

3. Initial setup and start

1
2
sudo docker exec -it saseul-node saseul-install
sudo docker exec -it saseul-node saseul-script start

Wait for block synchronization to complete before enabling mining.

4. Enable GPU mining

GPU mining uses an external mining job model. Enable external miner mode first, then start the built-in GPU miner.

1
2
3
sudo docker exec -it saseul-node saseul-script mining external on
sudo docker exec -it saseul-node saseul-script mining start
sudo docker exec -it saseul-node saseul-script mining gpu start

Verify:

1
2
sudo docker exec -it saseul-node saseul-script mining check
sudo docker exec -it saseul-node saseul-script mining gpu check


Changing settings after installation

Using saseul-script env

View current settings:

1
sudo docker exec -it saseul-node saseul-script env
1
2
3
4
5
[Current Setting]
  Endpoint: anonymous
  Miner:    9683b60ba14cc3c9e900982e...
  Node:     6f339a5840704dfeb18c5d11...
  Address:  c6f288812c404230ddf9518e...

Change the endpoint:

1
2
sudo docker exec -it saseul-node saseul-script env endpoint --set <host:port>
sudo docker exec -it saseul-node saseul-script env endpoint --set anonymous

Change the miner address:

1
sudo docker exec -it saseul-node saseul-script env miner --set <address>

Editing saseul.ini directly

The configuration file controls node behavior at a lower level. The settings most relevant to operators are in the [node] section:

1
2
3
4
[node]
database = false
mining = false
external_miner = false
SettingValuesDescription
databasetrue / falseEnable database index. When enabled, the node indexes transactions and allows transaction queries.
miningtrue / falseEnable mining. The node participates in block mining when enabled.
external_minertrue / falseEnable external miner mode. Disables CPU mining and switches to a mining job model for GPU or external miners.

These settings correspond to the CLI commands data index --enable/--disable, mining start/stop, and mining external on/off. Editing the ini file directly is useful when you want to set the initial state before starting the node.

The [network] section defines the seed peers used for initial peer discovery:

1
2
3
4
5
6
[network]
peers[] = "main.saseul.net"
peers[] = "sub.saseul.net"
peers[] = "aroma.saseul.net"
peers[] = "blanc.saseul.net"
peers[] = "chardonnay.saseul.net"

These are the default seed nodes. If you operate multiple nodes, adding your own nodes here ensures faster peer discovery and more reliable connectivity between your nodes at startup.

To edit the file:

1
2
3
sudo docker cp saseul-node:/var/saseul/saseul-network/saseul.ini ./saseul.ini
# edit with your preferred editor
sudo docker cp ./saseul.ini saseul-node:/var/saseul/saseul-network/saseul.ini

Or edit in-place:

1
sudo docker exec -it saseul-node vi /var/saseul/saseul-network/saseul.ini

Restart the node after changing the configuration:

1
sudo docker exec -it saseul-node saseul-script restart


Wallet setup

The node creates a primary wallet during installation. This wallet is used as the default miner address.

List wallets:

1
sudo docker exec -it saseul-node saseul-script wallet list

Create and set a new default wallet:

1
2
sudo docker exec -it saseul-node saseul-script wallet create
sudo docker exec -it saseul-node saseul-script wallet setdefault

Protect a wallet with a password:

1
sudo docker exec -it saseul-node saseul-script wallet encrypt

Backup wallet data:

1
sudo docker exec -it saseul-node saseul-script wallet dump

For external wallet management, Guardee Wallet is recommended.


Updating the node

Because block data is persisted in a mounted volume, updating only requires replacing the container:

1
2
3
4
5
6
7
8
9
10
11
sudo docker stop saseul-node
sudo docker rm saseul-node
sudo docker pull artifriends/saseul-network:lite

sudo docker run -d --init --name saseul-node \
  -p 80:80 \
  -v /var/saseul-data:/var/saseul/saseul-network/data \
  --entrypoint /bin/saseul-init \
  artifriends/saseul-network:lite

sudo docker exec -it saseul-node saseul-script start

Environment settings and wallet data are stored in the data volume and survive container replacement.


Next steps

  • CLI — mining, data management, tracker, monitoring, and full command reference
  • RPC API — HTTP interface for application integration
  • Smart Contract — writing and deploying on-chain logic
This post is licensed under CC BY 4.0 by the author.