diff --git a/docker/demos/ecosystem-startup.gif b/docker/demos/ecosystem-startup.gif new file mode 100644 index 00000000..ff16a8a8 Binary files /dev/null and b/docker/demos/ecosystem-startup.gif differ diff --git a/docker/demos/ecosystem-startup.tape b/docker/demos/ecosystem-startup.tape new file mode 100644 index 00000000..20babfc7 --- /dev/null +++ b/docker/demos/ecosystem-startup.tape @@ -0,0 +1,54 @@ +# 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 diff --git a/docker/demos/helpers/chain-aliases.sh b/docker/demos/helpers/chain-aliases.sh new file mode 100755 index 00000000..1cd6acce --- /dev/null +++ b/docker/demos/helpers/chain-aliases.sh @@ -0,0 +1,13 @@ +#!/bin/bash +curl -s 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)['result']['aliases'] +print(f'{len(aliases)} aliases registered on-chain:') +print() +for a in aliases: + name = a['alias'] + comment = a.get('comment','') + print(f' @{name:12s} {comment[:50]}') +" diff --git a/docker/demos/helpers/chain-info.sh b/docker/demos/helpers/chain-info.sh new file mode 100755 index 00000000..0bfa271a --- /dev/null +++ b/docker/demos/helpers/chain-info.sh @@ -0,0 +1,17 @@ +#!/bin/bash +curl -s 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'] +hf = d.get('is_hardfok_active',[]) +active = sum(1 for h in hf if h) +print(f'Height: {d[\"height\"]:,}') +print(f'Hardforks: HF0-{active-1} active') +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'Peers in: {d.get(\"incoming_connections_count\",0)}') +print(f'Peers out: {d.get(\"outgoing_connections_count\",0)}') +print(f'Status: {d[\"status\"]}') +" diff --git a/docker/demos/helpers/wallet-address.sh b/docker/demos/helpers/wallet-address.sh new file mode 100755 index 00000000..0099aa60 --- /dev/null +++ b/docker/demos/helpers/wallet-address.sh @@ -0,0 +1,8 @@ +#!/bin/bash +curl -s localhost:46944/json_rpc \ + -d '{"jsonrpc":"2.0","id":"0","method":"getaddress"}' \ + -H 'Content-Type: application/json' | python3 -c " +import sys,json +d=json.load(sys.stdin)['result'] +print('Address:', d['address']) +" diff --git a/docker/demos/helpers/wallet-balance.sh b/docker/demos/helpers/wallet-balance.sh new file mode 100755 index 00000000..aad9ca8b --- /dev/null +++ b/docker/demos/helpers/wallet-balance.sh @@ -0,0 +1,9 @@ +#!/bin/bash +curl -s 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') +print(f'Unlocked: {d[\"unlocked_balance\"]/1e12:.4f} LTHN') +" diff --git a/docker/demos/lns-dns.gif b/docker/demos/lns-dns.gif new file mode 100644 index 00000000..62591a84 Binary files /dev/null and b/docker/demos/lns-dns.gif differ diff --git a/docker/demos/lns-dns.tape b/docker/demos/lns-dns.tape new file mode 100644 index 00000000..420231d8 --- /dev/null +++ b/docker/demos/lns-dns.tape @@ -0,0 +1,50 @@ +# 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 diff --git a/docker/demos/wallet-basics.gif b/docker/demos/wallet-basics.gif new file mode 100644 index 00000000..fa6a2368 Binary files /dev/null and b/docker/demos/wallet-basics.gif differ diff --git a/docker/demos/wallet-basics.tape b/docker/demos/wallet-basics.tape new file mode 100644 index 00000000..756ef8f7 --- /dev/null +++ b/docker/demos/wallet-basics.tape @@ -0,0 +1,50 @@ +# 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