Installation Guide
This guide walks you through setting up a Shamwari Network full node on Linux, macOS, or Windows.
System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 4 GB | 8 GB+ |
| CPU | 2 cores | 4+ cores |
| Disk | 50 GB SSD | 200 GB+ SSD |
| Java | OpenJDK 17+ | OpenJDK 21 LTS |
| Network | 10 Mbps | 100 Mbps |
Prerequisites
Install Java
Shamwari requires Java 17 or higher (OpenJDK 21 recommended).
# Ubuntu/Debian
sudo apt update && sudo apt install openjdk-21-jdk -y
# macOS (Homebrew)
brew install openjdk@21
# Verify
java -version
Download Shamwari
Clone the repository or download a release:
git clone https://bitbucket.org/thenamelesstree/shamwari.git
cd shamwari
Or download the latest release package:
wget https://github.com/thenamelesstree/shamwari/releases/latest/download/shamwari-release-2.2.6.zip
unzip shamwari-release-2.2.6.zip
cd shamwari
Build & Environment Setup
Compile and prepare dependencies:
./compile.sh
Configuration
Copy default properties or create conf/nxt.properties to override defaults:
cp conf/nxt-default.properties conf/nxt.properties
Key configuration options in conf/nxt.properties:
| Property | Default | Description |
|---|---|---|
nxt.apiServerPort | 22024 | HTTP API port |
nxt.apiServerSSLPort | 22024 | HTTPS API port |
nxt.peerServerPort | 22022 | Peer-to-peer port (23024 on testnet) |
nxt.apiServerHost | 0.0.0.0 | API bind address |
nxt.apiSSL | false | Enable HTTPS |
nxt.adminPassword | Admin password for sensitive administrative APIs | |
nxt.enableAPIServer | true | Enable REST API server |
nxt.isTestnet | true | Enable testnet mode |
Example custom conf/nxt.properties:
nxt.apiServerPort=22024
nxt.apiServerSSLPort=22024
nxt.peerServerPort=22022
nxt.apiServerHost=0.0.0.0
nxt.apiSSL=false
nxt.adminPassword=your_secure_password
nxt.isTestnet=false
Running the Node
Use run-shamwari.sh (or run.sh) to start the node.
Note: Legacy entry scripts like
start.shandrun-desktop.share deprecated. Userun-shamwari.shoptions instead.
# Start in default interactive mode
./run-shamwari.sh
# Start in daemon mode (background process)
./run-shamwari.sh --daemon
# Start in desktop GUI mode
./run-shamwari.sh --desktop
# Start using authbind for privileged port binding
./run-shamwari.sh --authbind
# Stop daemon instance
./stop.sh
Alternatively, launch directly via Java:
java -Xms256M -cp "classes:lib/*:conf:addons/classes:addons/lib/*" nxt.Nxt
The node will:
- Initialize the H2 database (
shamwari_dborshamwari_test_db) - Synchronize with network peers
- Expose API endpoints on port
22024once ready
Verify Installation
Check the blockchain status using the local API:
curl http://localhost:22025/nxt?requestType=getBlockchainStatus
Expected response:
{
"application": "Shamwari",
"version": "2.2.6",
"time": 12345678,
"lastBlock": "1234567890123456789",
"numberOfBlocks": 123456,
"isScanning": false,
"isDownloading": false
}
Docker Deployment
FROM eclipse-temurin:21-jre
COPY . /app
WORKDIR /app
EXPOSE 22025 22022 23024
CMD ["./run-shamwari.sh"]
Build and launch the container:
docker build -t shamwari .
docker run -p 22024:22024 -p 22022:22022 shamwari
Next Steps
- Follow the Quick Start Guide
- Explore the API Reference
- Learn about Blockchain Architecture