MINE SOST · v0.8 · SOLO-MINER-FIRST

Mine SOST in 10 minutes.

A native PoW chain. CPU-friendly, memory-hard. No pool required, no pool offered — SOST is experimenting with a solo-miner-first model. Pre-market testing only.

NATIVE POW · CPU mining · ~8 GB RAM · 10-min target block time
REQUIREMENTS

What you need

OSUbuntu 22.04 or 24.04 (other Debian-family distros likely work)
RAM8 GB recommended for mining (4 GB dataset + 4 GB scratchpad per worker thread is shared)
Disk20 GB recommended
Networkstable internet connection — the node syncs and connects to peers over P2P (port 19333)
Skillbasic terminal: cd, copy/paste, run a command
FAST PATH

One-line install (safe)

The recommended path: download, inspect, then run.

# 1. download curl -fsSL https://sostcore.com/install-sost.sh -o install-sost.sh # 2. inspect (always good practice for any pipe-to-bash script) less install-sost.sh # 3. run bash install-sost.sh

The quick version is also available, but inspect-first is always safer:

curl -fsSL https://sostcore.com/install-sost.sh | bash
What the script does: verifies you are on Ubuntu/Debian, installs build dependencies (build-essential, cmake, git, libssl-dev, libsecp256k1-dev), clones (or pulls) github.com/Neob1844/sost-core into ~/sost-core, and builds the binaries. It then prints the next manual steps.
What the script never does: ask for, read or write any private key, seed phrase or wallet file. It does not start the node, the miner, or anything else automatically. You stay in control.
MANUAL PATH

Build from source (no script)

Same result as the script, just typed by hand.

sudo apt update sudo apt install -y build-essential cmake git libssl-dev libsecp256k1-dev git clone https://github.com/Neob1844/sost-core.git cd sost-core mkdir -p build cd build cmake .. -DCMAKE_BUILD_TYPE=Release cmake --build . -j$(nproc)
FIRST RUN

Wallet, node, miner

1

Create a wallet and a mining address

From block 7,100 every block must carry a Schnorr signature from the miner (Phase 2 SbPoW). The miner key lives inside a wallet file and is referenced by a label. The miner is launched with --wallet + --mining-key-label; --address alone is rejected by the network. Pick a wallet filename and a label you will remember — both are freeform strings, the only rule is that the label you pass to getnewaddress must be character-for-character identical to the one you pass to --mining-key-label later.

cd ~/sost-core/build ./sost-cli --wallet phase2-miner-wallet.json newwallet ./sost-cli --wallet phase2-miner-wallet.json getnewaddress phase2-miner # confirm the label exists and note the derived address ./sost-cli --wallet phase2-miner-wallet.json listaddresses # back up the wallet file (it holds your private key) cp -a phase2-miner-wallet.json phase2-miner-wallet.json.bak chmod 600 phase2-miner-wallet.json phase2-miner-wallet.json.bak
Pick any label. phase2-miner is the example; home-rig, node-3 or whatever you remember works the same way. The miner derives its address from the wallet key automatically — you do not need to copy the address anywhere.
2

Pick RPC credentials

The node and the miner talk to each other over local RPC with HTTP Basic Auth. Choose any user/pass — both processes need to know them.

export SOST_RPC_USER="changeme" export SOST_RPC_PASS="changemenow"
Tip: these are local-only credentials — the RPC binds to 127.0.0.1 by default, never to the public internet. They protect against other local users on the same box, not against the wider network. Use any reasonable password.
3

Start the node (terminal A)

cd ~/sost-core/build ./sost-node \ --rpc-user "$SOST_RPC_USER" \ --rpc-pass "$SOST_RPC_PASS"

You should see lines like Chain loaded: NNNN blocks and the node connecting to peers. Leave this terminal open. To run as a service later, create a systemd unit (sample under docs/systemd/ in the repo).

4

Start the miner (terminal B)

Use the same wallet and label you created in step 1. Do not pass --address; the miner derives the address from the wallet key automatically.

cd ~/sost-core/build ./sost-miner \ --wallet phase2-miner-wallet.json \ --mining-key-label phase2-miner \ --rpc 127.0.0.1:18232 \ --rpc-user "$SOST_RPC_USER" \ --rpc-pass "$SOST_RPC_PASS" \ --blocks 999999 \ --profile mainnet \ --threads 16

Expected startup lines (the label echoed back is whichever one you chose):

SbPoW signing key: label='phase2-miner' Miner address: sost1... (derived from wallet key)
Threads: try --threads 16 first. ConvergenceX is memory-bandwidth bound — throwing 64 threads at it on most boxes does not mine faster, and on some hardware actually slows down. If 16 looks unstable on your machine, drop to 8 and try again.
Lottery eligibility: a brand-new address is not eligible for the DTD lottery until it mines its first valid block. Eligibility is per-address and unlocks automatically once the address mines once.
5

Verify you are mining

Three checks:

  • Miner log — you should see [MINING] H... bitsQ=... lines and a periodic effective stable/s rate.
  • Height — ask the node what block you are on:
    curl -s -u "$SOST_RPC_USER:$SOST_RPC_PASS" \ -d '{"method":"getblockcount","params":[],"id":1}' \ http://127.0.0.1:18232
  • Explorer — check the public network state at sost-explorer.html and your miner share at sost-network-status.html.
EXPECTATIONS

What solo mining feels like

SOST is currently solo-miner-first — there is no official pool. That has consequences you should know up front:

For more context on the lack of pools, read Why no pools.

TROUBLESHOOTING

When things look wrong

Node has 0 peers / not syncing

Check P2P connectivity. The node listens on :19333. Allow outbound connections in your firewall. If you are behind NAT, you do not need to forward 19333 to mine, but you need outbound TCP.

curl -s -u "$SOST_RPC_USER:$SOST_RPC_PASS" \ -d '{"method":"getpeerinfo","params":[],"id":1}' \ http://127.0.0.1:18232 | head -c 600
Miner says "rejected block" or "Race-loss recovery"

Normal in solo mining. It means the network found a block before yours arrived — your block referenced a now-stale parent and gets dropped. The miner will automatically pull the new tip and continue. No data lost, just one round of work.

Segfault or instability with many threads

Drop to 16, then 8 threads. ConvergenceX is bandwidth-bound; very wide thread counts (64+) on machines with lots of cores can stress the monitor path. The block-monitor race in v0.7 was fixed in v0.8 (commit 6680319) — make sure you are on v0.8 or later:

./sost-miner --help | head -1 # → "SOST Miner v0.8 (multi-threaded)"
Long pause before first block

Solo mining variance. The expected time to your first block is 1 / miner_share blocks × 10 min. With ~5% network share that is on the order of 200 minutes; you will sometimes wait 3-4× that just from variance. The calculator shows the probabilities for your hashrate.

How do I update?
cd ~/sost-core git pull origin main cd build cmake --build . -j$(nproc) # then restart the node and the miner

Or simply re-run install-sost.sh — it is idempotent.

How do I stop safely?

In each terminal: Ctrl-C. The node flushes its state to disk before exiting. The miner aborts its current attempt; nothing is lost — it just doesn't finish that nonce sweep.

NEXT

Where to go next