open channel between ln nodes
This commit is contained in:
parent
c63622b8a4
commit
c88ba74268
12
.env.sample
12
.env.sample
|
@ -89,6 +89,10 @@ IMGPROXY_DOWNLOAD_TIMEOUT=9
|
||||||
# prisma db url
|
# prisma db url
|
||||||
DATABASE_URL="postgresql://sn:password@db:5432/stackernews?schema=public"
|
DATABASE_URL="postgresql://sn:password@db:5432/stackernews?schema=public"
|
||||||
|
|
||||||
|
###################
|
||||||
|
# FOR DOCKER ONLY #
|
||||||
|
###################
|
||||||
|
|
||||||
# postgres container stuff
|
# postgres container stuff
|
||||||
POSTGRES_PASSWORD=password
|
POSTGRES_PASSWORD=password
|
||||||
POSTGRES_USER=sn
|
POSTGRES_USER=sn
|
||||||
|
@ -113,15 +117,15 @@ ZMQ_TX_PORT=28335
|
||||||
LND_REST_PORT=8080
|
LND_REST_PORT=8080
|
||||||
LND_GRPC_PORT=10009
|
LND_GRPC_PORT=10009
|
||||||
LND_P2P_PORT=9735
|
LND_P2P_PORT=9735
|
||||||
# docker exec -u lnd sn_lnd lncli newaddress p2tr --unused
|
# docker exec -u lnd sn_lnd lncli newaddress p2wkh --unused
|
||||||
LND_ADDR=bcrt1phujdlvh2ttfdxcsc2c3p3vv6g5uutua9pr846r94ae33636gxy7qkly70z
|
LND_ADDR=bcrt1q7q06n5st4vqq3lssn0rtkrn2qqypghv9xg2xnl
|
||||||
LND_PUBKEY=02cb2e2d5a6c5b17fa67b1a883e2973c82e328fb9bd08b2b156a9e23820c87a490
|
LND_PUBKEY=02cb2e2d5a6c5b17fa67b1a883e2973c82e328fb9bd08b2b156a9e23820c87a490
|
||||||
|
|
||||||
# stacker lnd container stuff
|
# stacker lnd container stuff
|
||||||
STACKER_LND_REST_PORT=9090
|
STACKER_LND_REST_PORT=9090
|
||||||
STACKER_LND_GRPC_PORT=10010
|
STACKER_LND_GRPC_PORT=10010
|
||||||
# docker exec -u lnd stacker_lnd lncli newaddress p2tr --unused
|
# docker exec -u lnd stacker_lnd lncli newaddress p2wkh --unused
|
||||||
STACKER_LND_ADDR=bcrt1pn0ach38n7k5ejxw7e2mx02gqe237em7d9eev3dcd2yst3tlyhtdswkgd89
|
STACKER_LND_ADDR=bcrt1qfqau4ug9e6rtrvxrgclg58e0r93wshucumm9vu
|
||||||
STACKER_LND_PUBKEY=028093ae52e011d45b3e67f2e0f2cb6c3a1d7f88d2920d408f3ac6db3a56dc4b35
|
STACKER_LND_PUBKEY=028093ae52e011d45b3e67f2e0f2cb6c3a1d7f88d2920d408f3ac6db3a56dc4b35
|
||||||
|
|
||||||
LNCLI_NETWORK=regtest
|
LNCLI_NETWORK=regtest
|
|
@ -40,6 +40,9 @@ services:
|
||||||
opensearch:
|
opensearch:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: true
|
restart: true
|
||||||
|
sn_lnd:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
env_file:
|
env_file:
|
||||||
- .env.sndev
|
- .env.sndev
|
||||||
expose:
|
expose:
|
||||||
|
@ -70,6 +73,9 @@ services:
|
||||||
opensearch:
|
opensearch:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: true
|
restart: true
|
||||||
|
sn_lnd:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
env_file:
|
env_file:
|
||||||
- .env.sndev
|
- .env.sndev
|
||||||
volumes:
|
volumes:
|
||||||
|
@ -155,17 +161,7 @@ services:
|
||||||
container_name: bitcoin
|
container_name: bitcoin
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: >
|
test: ["CMD-SHELL", "bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} getblockchaininfo"]
|
||||||
bash -c '
|
|
||||||
set -e
|
|
||||||
blockcount=$$(bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} getblockcount 2>/dev/null)
|
|
||||||
if (( blockcount <= 0 )); then
|
|
||||||
bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} generatetoaddress 10 ${LND_ADDR}
|
|
||||||
bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} generatetoaddress 10 ${STACKER_LND_ADDR}
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
exit 0
|
|
||||||
'
|
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
@ -199,14 +195,21 @@ services:
|
||||||
- bitcoin:/home/bitcoin/.bitcoin
|
- bitcoin:/home/bitcoin/.bitcoin
|
||||||
labels:
|
labels:
|
||||||
ofelia.enabled: "true"
|
ofelia.enabled: "true"
|
||||||
ofelia.job-exec.minecron.schedule: "@every 2m"
|
ofelia.job-exec.minecron.schedule: "@every 1m"
|
||||||
ofelia.job-exec.minecron.command: >
|
ofelia.job-exec.minecron.command: >
|
||||||
bash -c '
|
bash -c '
|
||||||
echo "Mining a block to sn_lnd..."
|
blockcount=$$(bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} getblockcount 2>/dev/null)
|
||||||
bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} generatetoaddress 1 ${LND_ADDR}
|
if (( blockcount <= 0 )); then
|
||||||
sleep 60
|
echo "Mining 10 blocks to sn_lnd and stacker_lnd..."
|
||||||
echo "Mining a block to stacker_lnd..."
|
bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} generatetoaddress 100 ${LND_ADDR}
|
||||||
bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} generatetoaddress 1 ${STACKER_LND_ADDR}'
|
bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} generatetoaddress 100 ${STACKER_LND_ADDR}
|
||||||
|
else
|
||||||
|
echo "Mining a block to sn_lnd... ${LND_ADDR}"
|
||||||
|
bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} generatetoaddress 1 ${LND_ADDR}
|
||||||
|
echo "Mining a block to stacker_lnd... ${STACKER_LND_ADDR}"
|
||||||
|
bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} generatetoaddress 1 ${STACKER_LND_ADDR}
|
||||||
|
fi
|
||||||
|
'
|
||||||
sn_lnd:
|
sn_lnd:
|
||||||
build:
|
build:
|
||||||
context: ./docker/lnd
|
context: ./docker/lnd
|
||||||
|
@ -215,7 +218,7 @@ services:
|
||||||
container_name: sn_lnd
|
container_name: sn_lnd
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "lncli", "getinfo"]
|
test: ["CMD-SHELL", "lncli", "getinfo"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
@ -249,6 +252,7 @@ services:
|
||||||
- '--maxchansize=1000000000'
|
- '--maxchansize=1000000000'
|
||||||
- '--allow-circular-route'
|
- '--allow-circular-route'
|
||||||
- '--bitcoin.defaultchanconfs=0'
|
- '--bitcoin.defaultchanconfs=0'
|
||||||
|
- '--maxpendingchannels=10'
|
||||||
expose:
|
expose:
|
||||||
- "${LND_P2P_PORT}"
|
- "${LND_P2P_PORT}"
|
||||||
ports:
|
ports:
|
||||||
|
@ -256,6 +260,17 @@ services:
|
||||||
- "${LND_GRPC_PORT}:${LND_GRPC_PORT}"
|
- "${LND_GRPC_PORT}:${LND_GRPC_PORT}"
|
||||||
volumes:
|
volumes:
|
||||||
- sn_lnd:/home/lnd/.lnd
|
- sn_lnd:/home/lnd/.lnd
|
||||||
|
labels:
|
||||||
|
ofelia.enabled: "true"
|
||||||
|
ofelia.job-exec.sn_channel_cron.schedule: "@every 1m"
|
||||||
|
ofelia.job-exec.sn_channel_cron.command: >
|
||||||
|
su lnd -c bash -c "
|
||||||
|
if [ $$(lncli listchannels | jq '.member | length') -ge 1 ]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
lncli openchannel --node_key=$STACKER_LND_PUBKEY --connect stacker_lnd:9735 --sat_per_vbyte 1 --min_confs 0 --local_amt=1000000000 --push_amt=500000000
|
||||||
|
fi
|
||||||
|
"
|
||||||
stacker_lnd:
|
stacker_lnd:
|
||||||
build:
|
build:
|
||||||
context: ./docker/lnd
|
context: ./docker/lnd
|
||||||
|
@ -264,7 +279,7 @@ services:
|
||||||
container_name: stacker_lnd
|
container_name: stacker_lnd
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "lncli", "getinfo"]
|
test: ["CMD-SHELL", "lncli", "getinfo"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
@ -275,8 +290,6 @@ services:
|
||||||
restart: true
|
restart: true
|
||||||
env_file:
|
env_file:
|
||||||
- .env.sndev
|
- .env.sndev
|
||||||
environment:
|
|
||||||
- LN_NODE_FOR=stacker
|
|
||||||
command:
|
command:
|
||||||
- 'lnd'
|
- 'lnd'
|
||||||
- '--noseedbackup'
|
- '--noseedbackup'
|
||||||
|
@ -300,6 +313,7 @@ services:
|
||||||
- '--maxchansize=1000000000'
|
- '--maxchansize=1000000000'
|
||||||
- '--allow-circular-route'
|
- '--allow-circular-route'
|
||||||
- '--bitcoin.defaultchanconfs=0'
|
- '--bitcoin.defaultchanconfs=0'
|
||||||
|
- '--maxpendingchannels=10'
|
||||||
expose:
|
expose:
|
||||||
- "${LND_P2P_PORT}"
|
- "${LND_P2P_PORT}"
|
||||||
ports:
|
ports:
|
||||||
|
@ -307,11 +321,24 @@ services:
|
||||||
- "${STACKER_LND_GRPC_PORT}:${LND_GRPC_PORT}"
|
- "${STACKER_LND_GRPC_PORT}:${LND_GRPC_PORT}"
|
||||||
volumes:
|
volumes:
|
||||||
- stacker_lnd:/home/lnd/.lnd
|
- stacker_lnd:/home/lnd/.lnd
|
||||||
|
labels:
|
||||||
|
ofelia.enabled: "true"
|
||||||
|
ofelia.job-exec.stacker_channel_cron.schedule: "@every 1m"
|
||||||
|
ofelia.job-exec.stacker_channel_cron.command: >
|
||||||
|
su lnd -c bash -c "
|
||||||
|
if [ $$(lncli listchannels | jq '.member | length') -ge 1 ]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
lncli openchannel --node_key=$LND_PUBKEY --connect sn_lnd:9735 --sat_per_vbyte 1 --min_confs 0 --local_amt=1000000000 --push_amt=500000000
|
||||||
|
fi
|
||||||
|
"
|
||||||
channdler:
|
channdler:
|
||||||
image: mcuadros/ofelia:latest
|
image: mcuadros/ofelia:latest
|
||||||
container_name: channdler
|
container_name: channdler
|
||||||
depends_on:
|
depends_on:
|
||||||
- bitcoin
|
- bitcoin
|
||||||
|
- sn_lnd
|
||||||
|
- stacker_lnd
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command: daemon --docker -f label=com.docker.compose.project=${COMPOSE_PROJECT_NAME}
|
command: daemon --docker -f label=com.docker.compose.project=${COMPOSE_PROJECT_NAME}
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
FROM polarlightning/lnd:0.17.4-beta
|
FROM polarlightning/lnd:0.17.4-beta
|
||||||
|
|
||||||
ARG LN_NODE_FOR
|
ARG LN_NODE_FOR
|
||||||
|
ENV LN_NODE_FOR=$LN_NODE_FOR
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y jq \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
COPY ["./$LN_NODE_FOR/regtest/*", "/home/lnd/.lnd/data/chain/bitcoin/regtest/"]
|
COPY ["./$LN_NODE_FOR/regtest/*", "/home/lnd/.lnd/data/chain/bitcoin/regtest/"]
|
||||||
COPY ["./$LN_NODE_FOR/tls.*", "/home/lnd/.lnd/"]
|
COPY ["./$LN_NODE_FOR/tls.*", "/home/lnd/.lnd/"]
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue