87 lines
2.4 KiB
YAML
87 lines
2.4 KiB
YAML
|
|
# Lethean Home Node
|
||
|
|
# A self-contained chain node for home users who want to support the network.
|
||
|
|
# Syncs the chain, runs a wallet with PoS staking, and exposes P2P for peering.
|
||
|
|
#
|
||
|
|
# Usage:
|
||
|
|
# cp .env.example .env # edit WALLET_PASSWORD at minimum
|
||
|
|
# docker compose -f docker-compose.node.yml up -d
|
||
|
|
#
|
||
|
|
# What it does:
|
||
|
|
# - Syncs and validates the Lethean blockchain
|
||
|
|
# - Peers with other nodes (P2P port 46942)
|
||
|
|
# - Runs a wallet that stakes automatically (PoS mining)
|
||
|
|
# - Optionally mines with ProgPoWZ (connect external GPU miner)
|
||
|
|
#
|
||
|
|
# Earnings:
|
||
|
|
# - PoS staking rewards (proportional to balance)
|
||
|
|
# - PoW block rewards if mining
|
||
|
|
#
|
||
|
|
# Ports:
|
||
|
|
# 46941 — Daemon RPC (local tools)
|
||
|
|
# 46942 — P2P (open this on your router for full node)
|
||
|
|
# 46944 — Wallet RPC (local tools)
|
||
|
|
|
||
|
|
services:
|
||
|
|
daemon:
|
||
|
|
image: lthn/chain:testnet
|
||
|
|
container_name: lthn-node
|
||
|
|
restart: unless-stopped
|
||
|
|
ports:
|
||
|
|
- "${DAEMON_RPC_PORT:-46941}:36941"
|
||
|
|
- "${DAEMON_P2P_PORT:-46942}:36942"
|
||
|
|
volumes:
|
||
|
|
- chain-data:/data
|
||
|
|
entrypoint:
|
||
|
|
- lethean-chain-node
|
||
|
|
command:
|
||
|
|
- --data-dir
|
||
|
|
- /data
|
||
|
|
- --rpc-bind-ip
|
||
|
|
- "0.0.0.0"
|
||
|
|
- --rpc-bind-port
|
||
|
|
- "36941"
|
||
|
|
- --p2p-bind-port
|
||
|
|
- "36942"
|
||
|
|
- --rpc-enable-admin-api
|
||
|
|
- --allow-local-ip
|
||
|
|
- --log-level
|
||
|
|
- "${DAEMON_LOG_LEVEL:-1}"
|
||
|
|
- --disable-upnp
|
||
|
|
healthcheck:
|
||
|
|
test: ["CMD-SHELL", "curl -sf http://localhost:36941/json_rpc -d '{\"jsonrpc\":\"2.0\",\"id\":\"0\",\"method\":\"getinfo\"}' -H 'Content-Type: application/json' | grep -q OK"]
|
||
|
|
interval: 30s
|
||
|
|
timeout: 10s
|
||
|
|
retries: 5
|
||
|
|
start_period: 60s
|
||
|
|
|
||
|
|
wallet:
|
||
|
|
image: lthn/chain:testnet
|
||
|
|
container_name: lthn-wallet
|
||
|
|
restart: unless-stopped
|
||
|
|
ports:
|
||
|
|
- "${WALLET_RPC_PORT:-46944}:36944"
|
||
|
|
volumes:
|
||
|
|
- wallet-data:/wallet
|
||
|
|
entrypoint:
|
||
|
|
- sh
|
||
|
|
- -c
|
||
|
|
command:
|
||
|
|
- |
|
||
|
|
if [ ! -f /wallet/node.wallet ]; then
|
||
|
|
echo '${WALLET_PASSWORD:-}' | lethean-wallet-cli --generate-new-wallet /wallet/node.wallet --password '${WALLET_PASSWORD:-}' --daemon-address daemon:36941 --command exit;
|
||
|
|
fi;
|
||
|
|
lethean-wallet-cli \
|
||
|
|
--wallet-file /wallet/node.wallet \
|
||
|
|
--password '${WALLET_PASSWORD:-}' \
|
||
|
|
--daemon-address daemon:36941 \
|
||
|
|
--rpc-bind-port 36944 \
|
||
|
|
--rpc-bind-ip 0.0.0.0 \
|
||
|
|
--do-pos-mining
|
||
|
|
depends_on:
|
||
|
|
daemon:
|
||
|
|
condition: service_healthy
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
chain-data:
|
||
|
|
wallet-data:
|