From 27c9e56b51e658ad652e2b9c62eec841de16cb48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Mon, 19 May 2025 11:03:26 +0200 Subject: [PATCH] feat: add elements and electrs-liquid (#16) * feat: add elements and electrs-liquid --- docker-compose.yml | 63 +++++++++++++++++++++++++++++++++++++++++++++- docker-scripts.sh | 12 +++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 82e8faf..bcb0578 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -241,7 +241,7 @@ services: hostname: electrs restart: always image: boltz/electrs:latest - # entrypoint: ["electrs-bitcoin"] + entrypoint: ["electrs-bitcoin"] command: - --electrum-rpc-addr - electrs:19001 @@ -264,6 +264,67 @@ services: volumes: - bitcoin-data:/root/.bitcoin + elementsd: + hostname: elementsd + restart: always + image: boltz/elements:latest + expose: + - 31001 + ports: + - 31000:31000 + - 31002:31002 + - 18884:18884 + command: + - -chain=liquidregtest + - -txindex=1 + - -rest=1 + - -server=1 + - -rpcallowip=0.0.0.0/0 + - -validatepegin=0 + - -initialfreecoins=2100000000000000 + - -fallbackfee=0.000001 + - -rpcbind=0.0.0.0 + - -rpcport=18884 + - -zmqpubrawtx=tcp://0.0.0.0:31000 + - -zmqpubrawblock=tcp://0.0.0.0:31001 + - -zmqpubhashblock=tcp://0.0.0.0:31002 + - -acceptdiscountct=1 + - -creatediscountct=1 + volumes: + - elements-data:/root/.elements + + electrs-liquid: + hostname: electrs-liquid + restart: always + image: boltz/electrs:latest + entrypoint: ["electrs-liquid"] + command: + - --electrum-rpc-addr + - electrs-liquid:19002 + - --http-addr + - electrs-liquid:3003 + - --daemon-rpc-addr + - elementsd:18884 + - --daemon-dir + - /root/.elements + - --network + - liquidregtest + - --parent-network + - regtest + - --jsonrpc-import + healthcheck: + test: ["CMD-SHELL", "curl -s $(hostname):3003/blocks/tip/height"] + timeout: 15s + retries: 20 + interval: 2s + start_period: 5s + ports: + - 19002:19002 + - 3003:3003 + volumes: + - elements-data:/root/.elements + volumes: lnbits-data: bitcoin-data: + elements-data: diff --git a/docker-scripts.sh b/docker-scripts.sh index c59ceff..9ba70f8 100644 --- a/docker-scripts.sh +++ b/docker-scripts.sh @@ -5,6 +5,10 @@ bitcoin-cli-sim() { docker exec lnbits-bitcoind-1 bitcoin-cli -regtest "$@" } +elements-cli-sim() { + docker exec lnbits-elementsd-1 elements-cli -rpcport=18884 -chain=liquidregtest "$@" +} + # args(i, cmd) lightning-cli-sim() { i=$1 @@ -111,6 +115,13 @@ lnbits-bitcoin-init(){ bitcoin-cli-sim -generate 150 > /dev/null } +lnbits-elements-init(){ + echo "init_elements_wallet..." + elements-cli-sim createwallet lnbits || elements-cli-sim loadwallet lnbits + echo "mining 150 blocks..." + elements-cli-sim -generate 150 > /dev/null +} + lnbits-init(){ echo "init_lnbits..." docker exec lnbits-lnbits-1 poetry run python tools/create_fake_admin.py @@ -118,6 +129,7 @@ lnbits-init(){ lnbits-regtest-init(){ lnbits-bitcoin-init + lnbits-elements-init lnbits-lightning-sync lnbits-lightning-init lnbits-init