feat(demos): expanded VHS demo library with live data
5 numbered demos using helper scripts against the live system: 01-install — zero to running node in 30 seconds 02-chain-status — chain info, latest block, on-chain aliases 03-ecosystem-tour — full tour of all 8 services (teaser material) 04-mining — pool stats, miner connection examples 05-exit-node — VPN exit node setup and earning New helpers: last-block.sh, pool-stats.sh, lns-status.sh, explorer-stats.sh Removed old unnumbered demos. Co-Authored-By: Charon <charon@lethean.io>
BIN
docker/demos/01-install.gif
Normal file
|
After Width: | Height: | Size: 232 KiB |
54
docker/demos/01-install.tape
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# 01 — Install Lethean from scratch
|
||||
# Shows a home user going from zero to running node
|
||||
|
||||
Output demos/01-install.gif
|
||||
|
||||
Set FontSize 13
|
||||
Set Width 1000
|
||||
Set Height 600
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 35ms
|
||||
Set Padding 12
|
||||
Set Shell bash
|
||||
|
||||
Type "# Install Lethean — from zero to running node"
|
||||
Enter
|
||||
Sleep 1s
|
||||
|
||||
Type "mkdir lethean && cd lethean"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "# Download the compose files"
|
||||
Enter
|
||||
Type "curl -sO https://forge.lthn.ai/lthn/blockchain/raw/branch/dev/docker/docker-compose.node.yml"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "curl -sO https://forge.lthn.ai/lthn/blockchain/raw/branch/dev/docker/.env.example"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "cp .env.example .env"
|
||||
Enter
|
||||
Sleep 300ms
|
||||
|
||||
Type "# Set a wallet password"
|
||||
Enter
|
||||
Type "sed -i 's/WALLET_PASSWORD=/WALLET_PASSWORD=my-secure-pass/' .env"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Start the node"
|
||||
Enter
|
||||
Type "docker compose -f docker-compose.node.yml up -d"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# That's it. Your node is syncing and staking."
|
||||
Enter
|
||||
Sleep 2s
|
||||
BIN
docker/demos/02-chain-status.gif
Normal file
|
After Width: | Height: | Size: 443 KiB |
39
docker/demos/02-chain-status.tape
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# 02 — Chain Status (live data)
|
||||
|
||||
Output demos/02-chain-status.gif
|
||||
|
||||
Set FontSize 13
|
||||
Set Width 1000
|
||||
Set Height 600
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 35ms
|
||||
Set Padding 12
|
||||
Set Shell bash
|
||||
|
||||
Type "# Lethean Chain — Live Status"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "bash demos/helpers/chain-info.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "bash demos/helpers/last-block.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# On-chain service discovery via aliases"
|
||||
Enter
|
||||
Type "bash demos/helpers/chain-aliases.sh"
|
||||
Enter
|
||||
Sleep 4s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Blocks arrive every ~2 minutes — PoW and PoS alternating"
|
||||
Enter
|
||||
Sleep 2s
|
||||
BIN
docker/demos/03-ecosystem-tour.gif
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
87
docker/demos/03-ecosystem-tour.tape
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# 03 — Ecosystem Tour (the teaser material)
|
||||
# Every service, live data, no fluff
|
||||
|
||||
Output demos/03-ecosystem-tour.gif
|
||||
|
||||
Set FontSize 13
|
||||
Set Width 1000
|
||||
Set Height 700
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 30ms
|
||||
Set Padding 12
|
||||
Set Shell bash
|
||||
|
||||
Type "# Lethean Ecosystem — Full Tour"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "bash health.sh"
|
||||
Enter
|
||||
Sleep 4s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# === Chain ==="
|
||||
Enter
|
||||
Type "bash demos/helpers/chain-info.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# === Latest Block ==="
|
||||
Enter
|
||||
Type "bash demos/helpers/last-block.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# === Wallet ==="
|
||||
Enter
|
||||
Type "bash demos/helpers/wallet-address.sh"
|
||||
Enter
|
||||
Sleep 2s
|
||||
Type "bash demos/helpers/wallet-balance.sh"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# === Explorer ==="
|
||||
Enter
|
||||
Type "bash demos/helpers/explorer-stats.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# === Mining Pool ==="
|
||||
Enter
|
||||
Type "bash demos/helpers/pool-stats.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# === Name Service ==="
|
||||
Enter
|
||||
Type "bash demos/helpers/lns-status.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# === Aliases — services advertise on-chain ==="
|
||||
Enter
|
||||
Type "bash demos/helpers/chain-aliases.sh"
|
||||
Enter
|
||||
Sleep 4s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Lethean — privacy by default, earn by participating"
|
||||
Enter
|
||||
Type "# https://lethean.io"
|
||||
Enter
|
||||
Sleep 3s
|
||||
BIN
docker/demos/04-mining.gif
Normal file
|
After Width: | Height: | Size: 957 KiB |
50
docker/demos/04-mining.tape
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# 04 — Mining
|
||||
# Shows pool stats and how to connect a miner
|
||||
|
||||
Output demos/04-mining.gif
|
||||
|
||||
Set FontSize 13
|
||||
Set Width 1000
|
||||
Set Height 550
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 35ms
|
||||
Set Padding 12
|
||||
Set Shell bash
|
||||
|
||||
Type "# Lethean Mining — ProgPoWZ GPU Mining"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "bash demos/helpers/pool-stats.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Get your wallet address for mining"
|
||||
Enter
|
||||
Type "bash demos/helpers/wallet-address.sh"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Connect a GPU miner:"
|
||||
Enter
|
||||
Type "echo 'progminer -P stratum+tcp://YOUR_WALLET@localhost:5555'"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Type "echo 't-rex -a progpowz -o stratum+tcp://localhost:5555 -u YOUR_WALLET'"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Type "echo 'teamredminer -a progpow -o stratum+tcp://localhost:5555 -u YOUR_WALLET'"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Pool dashboard: http://localhost:2117"
|
||||
Enter
|
||||
Type "# Block reward: 1 LTHN every ~2 minutes"
|
||||
Enter
|
||||
Sleep 2s
|
||||
BIN
docker/demos/05-exit-node.gif
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
68
docker/demos/05-exit-node.tape
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
# 05 — Exit Node Setup
|
||||
# Shows how to run a VPN exit node and earn LTHN
|
||||
|
||||
Output demos/05-exit-node.gif
|
||||
|
||||
Set FontSize 13
|
||||
Set Width 1000
|
||||
Set Height 600
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 35ms
|
||||
Set Padding 12
|
||||
Set Shell bash
|
||||
|
||||
Type "# Lethean VPN Exit Node — Earn LTHN"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "# Configure your exit node"
|
||||
Enter
|
||||
Type "cp .env.example .env"
|
||||
Enter
|
||||
Sleep 300ms
|
||||
|
||||
Type "echo 'WALLET_PASSWORD=my-secure-pass' >> .env"
|
||||
Enter
|
||||
Type "echo 'EXIT_PUBLIC_IP=203.0.113.50' >> .env"
|
||||
Enter
|
||||
Type "echo 'EXIT_NAME=my-exit' >> .env"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Start the exit node stack"
|
||||
Enter
|
||||
Type "docker compose -f docker-compose.exit.yml up -d"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Your exit node runs:"
|
||||
Enter
|
||||
Type "echo ' Chain daemon — syncs blockchain'"
|
||||
Enter
|
||||
Type "echo ' Wallet — PoS staking + receives payments'"
|
||||
Enter
|
||||
Type "echo ' WireGuard VPN — encrypted tunnel for gateway traffic'"
|
||||
Enter
|
||||
Type "echo ' Controller — manages peering and on-chain registration'"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Gateways discover you via on-chain alias:"
|
||||
Enter
|
||||
Type "echo ' @my-exit v=lthn1;type=exit;cap=vpn,proxy;ip=203.0.113.50'"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Open ports 46942/tcp + 51820/udp on your router"
|
||||
Enter
|
||||
Type "# Then sit back and earn LTHN"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
Before Width: | Height: | Size: 2.9 MiB |
|
|
@ -1,54 +0,0 @@
|
|||
# Lethean Ecosystem — Full Stack Startup
|
||||
|
||||
Output demos/ecosystem-startup.gif
|
||||
|
||||
Set FontSize 13
|
||||
Set Width 1000
|
||||
Set Height 650
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 30ms
|
||||
Set Padding 12
|
||||
|
||||
Type "# Lethean Testnet Ecosystem"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "docker compose -f docker-compose.pull.yml up -d"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Waiting for chain daemon to sync..."
|
||||
Enter
|
||||
Sleep 1s
|
||||
|
||||
Type "docker compose -f docker-compose.pull.yml ps | grep lthn | sort"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# All services online — running health check"
|
||||
Enter
|
||||
Type "bash health.sh"
|
||||
Enter
|
||||
Sleep 4s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Browse the explorer at http://localhost:3335"
|
||||
Enter
|
||||
Type "# Trade DEX at http://localhost:3338"
|
||||
Enter
|
||||
Type "# Mine at stratum+tcp://localhost:5555"
|
||||
Enter
|
||||
Type "# Resolve .lthn names via DNS at localhost:5354"
|
||||
Enter
|
||||
Sleep 1s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Lethean — privacy by default, earn by participating"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
Before Width: | Height: | Size: 829 KiB |
|
|
@ -1,58 +0,0 @@
|
|||
# Lethean Exit Node — Quick Start Demo
|
||||
|
||||
Output demos/exit-node.gif
|
||||
|
||||
Set FontSize 14
|
||||
Set Width 900
|
||||
Set Height 550
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 45ms
|
||||
Set Padding 15
|
||||
|
||||
Type "# Lethean VPN Exit Node — Earn LTHN from Home"
|
||||
Enter
|
||||
Sleep 1s
|
||||
|
||||
Type "# Configure"
|
||||
Enter
|
||||
Type "cp .env.example .env"
|
||||
Enter
|
||||
Type 'echo "WALLET_PASSWORD=my-secure-pass" >> .env'
|
||||
Enter
|
||||
Type 'echo "EXIT_PUBLIC_IP=$(curl -s ifconfig.me)" >> .env'
|
||||
Enter
|
||||
Type 'echo "EXIT_NAME=my-exit-node" >> .env'
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Start exit node stack"
|
||||
Enter
|
||||
Type "docker compose -f docker-compose.exit.yml up -d"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Check WireGuard VPN server"
|
||||
Enter
|
||||
Type "docker exec lthn-exit-wireguard wg show"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Check controller status"
|
||||
Enter
|
||||
Type "docker logs lthn-exit-controller --tail 3"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Your node is live — gateways will discover it on-chain"
|
||||
Enter
|
||||
Type "# Open ports 46942/tcp and 51820/udp on your router"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
Before Width: | Height: | Size: 646 KiB |
|
|
@ -1,32 +0,0 @@
|
|||
# Lethean Ecosystem — Health Check Demo
|
||||
|
||||
Output demos/health-check.gif
|
||||
|
||||
Set FontSize 14
|
||||
Set Width 900
|
||||
Set Height 500
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 40ms
|
||||
Set Padding 15
|
||||
|
||||
Type "# Lethean Testnet — All Services Running"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "bash health.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# 14 on-chain aliases registered"
|
||||
Enter
|
||||
Type@80ms 'curl -s http://localhost:46941/json_rpc -d '"'"'{"jsonrpc":"2.0","id":"0","method":"get_all_alias_details"}'"'"' -H "Content-Type: application/json" | python3 -c "import sys,json; aliases=json.load(sys.stdin).get('"'"'result'"'"',{}).get('"'"'aliases'"'"',[]); [print(f'"'"' @{a[\"alias\"]:12s} {a.get(\"comment\",\"\")[:50]}'"'"') for a in aliases[:5]]; print(f'"'"' ... {len(aliases)} total'"'"')"'
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Lethean — Privacy by default. Earn by participating."
|
||||
Enter
|
||||
Sleep 2s
|
||||
15
docker/demos/helpers/explorer-stats.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
curl -s localhost:3335/api/get_info | python3 -c "
|
||||
import sys,json
|
||||
try:
|
||||
d=json.load(sys.stdin)
|
||||
print('Block Explorer')
|
||||
print(f' Height: {d.get(\"height\",0):,}')
|
||||
print(f' PoW diff: {d.get(\"pow_difficulty\",0):,}')
|
||||
print(f' Aliases: {d.get(\"alias_count\",0)}')
|
||||
print(f' TX count: {d.get(\"tx_count\",0):,}')
|
||||
print(f' Hashrate: {d.get(\"current_network_hashrate_350\",0):,} H/s')
|
||||
print(f' URL: http://localhost:3335')
|
||||
except:
|
||||
print('Explorer: connecting...')
|
||||
"
|
||||
13
docker/demos/helpers/last-block.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
curl -s localhost:46941/json_rpc \
|
||||
-d '{"jsonrpc":"2.0","id":"0","method":"getlastblockheader"}' \
|
||||
-H 'Content-Type: application/json' | python3 -c "
|
||||
import sys,json
|
||||
b=json.load(sys.stdin)['result']['block_header']
|
||||
btype = 'PoW' if b.get('major_version',0)==3 else 'PoS'
|
||||
print(f'Latest Block #{b[\"height\"]:,}')
|
||||
print(f' Type: {btype}')
|
||||
print(f' Reward: {b[\"reward\"]/1e12:.4f} LTHN')
|
||||
print(f' Difficulty: {b[\"difficulty\"]:,}')
|
||||
print(f' Hash: {b[\"hash\"][:20]}...')
|
||||
"
|
||||
15
docker/demos/helpers/lns-status.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
echo "Lethean Name Service (LNS)"
|
||||
curl -s localhost:5553/health | python3 -c "
|
||||
import sys,json
|
||||
d=json.load(sys.stdin)
|
||||
print(f' Mode: {d.get(\"mode\",\"?\")}')
|
||||
print(f' Names: {d.get(\"names\",0)} cached')
|
||||
print(f' Status: {d.get(\"status\",\"?\")}')
|
||||
"
|
||||
echo ""
|
||||
echo "Resolving .lthn names:"
|
||||
for name in charon gateway explorer trading; do
|
||||
result=$(curl -s "localhost:5553/resolve?name=$name.lthn" | python3 -c "import sys,json; d=json.load(sys.stdin); print('found' if d.get('found') else 'not cached')" 2>/dev/null)
|
||||
printf " %-16s %s\n" "$name.lthn" "$result"
|
||||
done
|
||||
17
docker/demos/helpers/pool-stats.sh
Executable file
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
curl -s localhost:2117/stats | python3 -c "
|
||||
import sys,json
|
||||
d=json.load(sys.stdin)
|
||||
pool = d.get('pool',{})
|
||||
net = d.get('network',{})
|
||||
cfg = d.get('config',{})
|
||||
print(f'Lethean Mining Pool')
|
||||
print(f' Coin: {cfg.get(\"coin\",\"?\")}')
|
||||
print(f' Algorithm: ProgPoWZ')
|
||||
print(f' Pool hash: {pool.get(\"hashrate\",0)} H/s')
|
||||
print(f' Miners: {pool.get(\"miners\",0)}')
|
||||
print(f' Blocks found: {pool.get(\"totalBlocks\",0)}')
|
||||
print(f' Net height: {net.get(\"height\",\"?\")}')
|
||||
print(f' Net diff: {net.get(\"difficulty\",\"?\")}')
|
||||
print(f' Stratum: stratum+tcp://localhost:5555')
|
||||
"
|
||||
|
Before Width: | Height: | Size: 404 KiB |
|
|
@ -1,50 +0,0 @@
|
|||
# Lethean Name Service — DNS Resolution
|
||||
|
||||
Output demos/lns-dns.gif
|
||||
|
||||
Set FontSize 14
|
||||
Set Width 900
|
||||
Set Height 500
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 40ms
|
||||
Set Padding 15
|
||||
|
||||
Type "# Lethean Name Service — .lthn Domain Resolution"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "# Query the LNS HTTP API"
|
||||
Enter
|
||||
Type "curl -s http://localhost:5553/health | python3 -m json.tool"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Resolve a .lthn name"
|
||||
Enter
|
||||
Type "curl -s http://localhost:5553/resolve?name=charon.lthn | python3 -m json.tool"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# DNS query — works with standard dig"
|
||||
Enter
|
||||
Type "dig @127.0.0.1 -p 5354 gateway.lthn A +short"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# List all known names"
|
||||
Enter
|
||||
Type "curl -s http://localhost:5553/names | python3 -m json.tool | head -20"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Names are discovered from blockchain aliases automatically"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
Before Width: | Height: | Size: 1.2 MiB |
|
|
@ -1,43 +0,0 @@
|
|||
# Lethean Home Node — Quick Start Demo
|
||||
# Renders to GIF showing how easy it is to run a node
|
||||
|
||||
Output demos/node-quickstart.gif
|
||||
|
||||
Set FontSize 16
|
||||
Set Width 1000
|
||||
Set Height 600
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 50ms
|
||||
Set Padding 20
|
||||
|
||||
Type "# Lethean Home Node — Quick Start"
|
||||
Enter
|
||||
Sleep 1s
|
||||
|
||||
Type "# Step 1: Configure"
|
||||
Enter
|
||||
Type "cp .env.example .env"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "# Step 2: Start the node"
|
||||
Enter
|
||||
Type "docker compose -f docker-compose.node.yml up -d"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type "# Step 3: Check chain sync"
|
||||
Enter
|
||||
Type@100ms 'curl -s http://localhost:46941/json_rpc -d '"'"'{"jsonrpc":"2.0","id":"0","method":"getinfo"}'"'"' -H "Content-Type: application/json" | python3 -c "import sys,json; d=json.load(sys.stdin)['"'"'result'"'"']; print(f'"'"'Height: {d[\"height\"]}, Status: {d[\"status\"]}'"'"')"'
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type "# Step 4: Check wallet balance"
|
||||
Enter
|
||||
Type@100ms 'curl -s http://localhost:46944/json_rpc -d '"'"'{"jsonrpc":"2.0","id":"0","method":"getbalance"}'"'"' -H "Content-Type: application/json" | python3 -c "import sys,json; d=json.load(sys.stdin)['"'"'result'"'"']; print(f'"'"'Balance: {d[\"balance\"]/1e12:.4f} LTHN'"'"')"'
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type "# Node is running, staking automatically!"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
Before Width: | Height: | Size: 1.4 MiB |
|
|
@ -1,50 +0,0 @@
|
|||
# Lethean Wallet — Basic Operations
|
||||
|
||||
Output demos/wallet-basics.gif
|
||||
|
||||
Set FontSize 14
|
||||
Set Width 900
|
||||
Set Height 500
|
||||
Set Theme "Dracula"
|
||||
Set TypingSpeed 40ms
|
||||
Set Padding 15
|
||||
|
||||
Type "# Lethean Wallet — Basic Operations"
|
||||
Enter
|
||||
Sleep 500ms
|
||||
|
||||
Type "# Get your wallet address"
|
||||
Enter
|
||||
Type "bash demos/helpers/wallet-address.sh"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Check balance (staking rewards accumulate here)"
|
||||
Enter
|
||||
Type "bash demos/helpers/wallet-balance.sh"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# View chain info"
|
||||
Enter
|
||||
Type "bash demos/helpers/chain-info.sh"
|
||||
Enter
|
||||
Sleep 2s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Browse on-chain aliases"
|
||||
Enter
|
||||
Type "bash demos/helpers/chain-aliases.sh"
|
||||
Enter
|
||||
Sleep 3s
|
||||
|
||||
Type ""
|
||||
Enter
|
||||
Type "# Wallet stakes automatically — PoS rewards arrive as you sleep"
|
||||
Enter
|
||||
Sleep 2s
|
||||