diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000..15d3fa3 --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,271 @@ +SHELL := /bin/bash + +PWD ?= pwd_unknown + +THIS_FILE := $(lastword $(MAKEFILE_LIST)) +export THIS_FILE +TIME := $(shell date +%s) +export TIME + +ARCH :=$(shell uname -m) +export ARCH +ifeq ($(ARCH),x86_64) +ARCH :=x86_64-linux-gnu +export ARCH +endif +ifeq ($(ARCH),arm64) +ARCH :=aarch64-linux-gnu +export ARCH +endif + +ifeq ($(user),) +HOST_USER := root +HOST_UID := $(strip $(if $(uid),$(uid),0)) +else +HOST_USER := $(strip $(if $(USER),$(USER),nodummy)) +HOST_UID := $(strip $(if $(shell id -u),$(shell id -u),4000)) +endif +export HOST_USER +export HOST_UID + +ifeq ($(target),) +SERVICE_TARGET ?= shell +else +SERVICE_TARGET := $(target) +endif +export SERVICE_TARGET + +ifeq ($(docker),) +DOCKER := $(shell which docker) +else +DOCKER := $(docker) +endif +export DOCKER + +ifeq ($(compose),) +DOCKER_COMPOSE := $(shell which docker-compose) +else +DOCKER_COMPOSE := $(compose) +endif +export DOCKER_COMPOSE + +PYTHON := $(shell which python) +export PYTHON +PYTHON3 := $(shell which python3) +export PYTHON3 + +PIP := $(shell which pip) +export PIP +PIP3 := $(shell which pip3) +export PIP3 + +# PROJECT_NAME defaults to name of the current directory. +ifeq ($(project),) +PROJECT_NAME := $(notdir $(PWD)) +else +PROJECT_NAME := $(project) +endif +export PROJECT_NAME + +#GIT CONFIG +GIT_USER_NAME := $(shell git config user.name) +export GIT_USER_NAME +GIT_USER_EMAIL := $(shell git config user.email) +export GIT_USER_EMAIL +GIT_SERVER := https://github.com +export GIT_SERVER + +GIT_REPO_NAME := $(PROJECT_NAME) +export GIT_REPO_NAME + +ifeq ($(profile),) +ifeq ($(GIT_REPO_ORIGIN),git@github.com:PLEBNET_PLAYGROUND/plebnet-playground-docker.dev.git) +GIT_PROFILE := PLEBNET-PLAYGROUND +endif +ifeq ($(GIT_REPO_ORIGIN),https://github.com/PLEBNET_PLAYGROUND/plebnet-playground-docker.dev.git) +GIT_PROFILE := PLEBNET-PLAYGROUND +endif +else +GIT_PROFILE := $(profile) +endif +export GIT_PROFILE + +GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD) +export GIT_BRANCH +GIT_HASH := $(shell git rev-parse --short HEAD) +export GIT_HASH +GIT_PREVIOUS_HASH := $(shell git rev-parse --short master@{1}) +export GIT_PREVIOUS_HASH +GIT_REPO_ORIGIN := $(shell git remote get-url origin) +export GIT_REPO_ORIGIN +GIT_REPO_PATH := $(HOME)/$(GIT_REPO_NAME) +export GIT_REPO_PATH + +ifneq ($(bitcoin-datadir),) +BITCOIN_DATA_DIR := $(bitcoin-datadir) +else +BITCOIN_DATA_DIR := $(HOME)/.bitcoin +endif +export BITCOIN_DATA_DIR + +ifeq ($(nocache),true) +NOCACHE := --no-cache +else +NOCACHE := +endif +export NOCACHE + +ifeq ($(verbose),true) +VERBOSE := --verbose +else +VERBOSE := +endif +export VERBOSE + +#TODO more umbrel config testing +ifeq ($(port),) +PUBLIC_PORT := 80 +else +PUBLIC_PORT := $(port) +endif +export PUBLIC_PORT + +ifeq ($(nodeport),) +NODE_PORT := 8333 +else +NODE_PORT := $(nodeport) +endif +export NODE_PORT + +ifneq ($(passwd),) +PASSWORD := $(passwd) +else +PASSWORD := changeme +endif +export PASSWORD + +ifeq ($(cmd),) +CMD_ARGUMENTS := +else +CMD_ARGUMENTS := $(cmd) +endif +export CMD_ARGUMENTS + +#ifeq ($(umbrel),true) +##comply with umbrel conventions +#PWD=/home/umbrel/umbrel/apps/$(PROJECT_NAME) +#UMBREL=true +#else +#pwd ?= pwd_unknown +#UMBREL=false +#endif +#export PWD +#export UMBREL +######################## + +PACKAGE_PREFIX := ghcr.io +export PACKAGE_PREFIX + +.PHONY: help +help: + @echo '' + @echo ' [USAGE]: make [COMMAND] [EXTRA_ARGUMENTS] ' + @echo '' + @echo ' make init' + @echo ' make install' + @echo ' make run' + +.PHONY: report +report: + @echo '' + @echo ' [ARGUMENTS] ' + @echo ' args:' + @echo ' - HOME=${HOME}' + @echo ' - PWD=${PWD}' + @echo ' - PYTHON=${PYTHON}' + @echo ' - PYTHON3=${PYTHON3}' + @echo ' - PIP=${PIP}' + @echo ' - PIP3=${PIP3}' + @echo ' - UMBREL=${UMBREL}' + @echo ' - THIS_FILE=${THIS_FILE}' + @echo ' - TIME=${TIME}' + @echo ' - PACKAGE_PREFIX=${PACKAGE_PREFIX}' + @echo ' - ARCH=${ARCH}' + @echo ' - HOST_USER=${HOST_USER}' + @echo ' - HOST_UID=${HOST_UID}' + @echo ' - PUBLIC_PORT=${PUBLIC_PORT}' + @echo ' - NODE_PORT=${NODE_PORT}' + @echo ' - SERVICE_TARGET=${SERVICE_TARGET}' + @echo ' - PROJECT_NAME=${PROJECT_NAME}' + @echo ' - DOCKER_BUILD_TYPE=${DOCKER_BUILD_TYPE}' + @echo ' - DOCKER_COMPOSE=${DOCKER_COMPOSE}' + @echo ' - GIT_USER_NAME=${GIT_USER_NAME}' + @echo ' - GIT_USER_EMAIL=${GIT_USER_EMAIL}' + @echo ' - GIT_SERVER=${GIT_SERVER}' + @echo ' - GIT_PROFILE=${GIT_PROFILE}' + @echo ' - GIT_BRANCH=${GIT_BRANCH}' + @echo ' - GIT_HASH=${GIT_HASH}' + @echo ' - GIT_PREVIOUS_HASH=${GIT_PREVIOUS_HASH}' + @echo ' - GIT_REPO_ORIGIN=${GIT_REPO_ORIGIN}' + @echo ' - GIT_REPO_NAME=${GIT_REPO_NAME}' + @echo ' - GIT_REPO_PATH=${GIT_REPO_PATH}' + @echo ' - BITCOIN_CONF=${BITCOIN_CONF}' + @echo ' - BITCOIN_DATA_DIR=${BITCOIN_DATA_DIR}' + @echo ' - STATOSHI_DATA_DIR=${STATOSHI_DATA_DIR}' + @echo ' - NOCACHE=${NOCACHE}' + @echo ' - VERBOSE=${VERBOSE}' + @echo ' - PUBLIC_PORT=${PUBLIC_PORT}' + @echo ' - NODE_PORT=${NODE_PORT}' + @echo ' - PASSWORD=${PASSWORD}' + @echo ' - CMD_ARGUMENTS=${CMD_ARGUMENTS}' + +####################### +.PHONY: init +init: report +ifneq ($(shell id -u),0) + @echo 'sudo make init #try if permissions issue' +endif + @echo 'init' + mkdir -p volumes/tor_datadir + mkdir -p volumes/tor_servicesdir + touch volumes/tor_datadir + touch volumes/tor_servicesdir +ifneq ($(PIP3),) + $(PIP3) install -r requirements.txt +else + $(PIP) install -r requirements.txt +endif +####################### +.PHONY: install +install: init + bash -c './up-generic.sh $(ARCH)' +####################### +.PHONY: uninstall +uninstall: + bash -c './uninstall.sh $(ARCH)' +####################### +.PHONY: run +run: init + $(DOCKER_COMPOSE) $(VERBOSE) $(NOCACHE) up --remove-orphans & +####################### +.PHONY: clean +clean: + # remove created images + @bash -c "echo $(PROJECT_NAME)" + @$(DOCKER_COMPOSE) -p $(PROJECT_NAME) down --remove-orphans --rmi all 2>/dev/null \ + && echo 'Image(s) for "$(PROJECT_NAME)" removed.' \ + || echo 'Image(s) for "$(PROJECT_NAME)" already removed.' +####################### +.PHONY: prune +prune: + @bash -c "echo $(PROJECT_NAME)" + $(DOCKER_COMPOSE) -p $(PROJECT_NAME) down + docker system prune -af +####################### +.PHONY: prune-network +prune-network: + @bash -c "echo $(PROJECT_NAME)" + $(DOCKER_COMPOSE) -p $(PROJECT_NAME) down + docker network prune -f +####################### + diff --git a/docker-compose.yaml.template b/docker-compose.yaml.template index 8aa463f..f7d0ec4 100644 --- a/docker-compose.yaml.template +++ b/docker-compose.yaml.template @@ -1,4 +1,4 @@ -version: "3" +version: "3.4" networks: {} services: bitcoind: @@ -7,7 +7,7 @@ services: dockerfile: Dockerfile args: - ARCH=${ARCH} - image: playground-cluster-bitcoind + image: ghcr.io/randymcmillan/plebnet-playground-docker/bitcoind-${ARCH}/root links: - tor-${tor_i} depends_on: @@ -28,7 +28,7 @@ services: build: context: ./lnd-signet dockerfile: Dockerfile - image: playground-cluster-lnd + image: ghcr.io/randymcmillan/plebnet-playground-docker/lnd-${ARCH}/root links: - bitcoind-${bitcoind_i} - tor-${tor_i} @@ -63,7 +63,7 @@ services: build: context: ./tor dockerfile: Dockerfile - image: playground-cluster-tor + image: ghcr.io/randymcmillan/plebnet-playground-docker/tor-${ARCH}/root container_name: playground-tor-${tor_i} expose: - 9050 diff --git a/plebnet_generate.py b/plebnet_generate.py old mode 100644 new mode 100755 index 755ac05..28673ef --- a/plebnet_generate.py +++ b/plebnet_generate.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 # Generates docker-compose for n nodes. # + diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..e69de29 diff --git a/scripts/play b/scripts/play new file mode 100755 index 0000000..cc117e7 --- /dev/null +++ b/scripts/play @@ -0,0 +1,148 @@ +#!/bin/bash + +if hash docker 2>/dev/null; then + +THUNDERHUB_ID=$(echo $(docker ps | awk '/thunderhub/'|awk ' {print $1}' | awk 'NR==1')) +export THUNDERHUB_ID +THUNDERHUB_IMAGE=$(echo $(docker images | awk '/thunderhub/'|awk ' {print $3}' | awk 'NR==1')) +export THUNDERHUB_IMAGE + +RTL_ID=$(echo $(docker ps | awk '/rtl/'|awk ' {print $1}' | awk 'NR==1')) +export RTL_ID +RTL_IMAGE=$(echo $(docker images | awk '/rtl/'|awk ' {print $3}' | awk 'NR==1')) +export RTL_IMAGE + +LND_ID=$(echo $(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==1')) +export LND_ID +LND_IMAGE=$(echo $(docker images | awk '/lnd/'|awk ' {print $3}' | awk 'NR==1')) +export LND_IMAGE + +DOCS_ID=$(echo $(docker ps | awk '/docs/'|awk ' {print $1}' | awk 'NR==1')) +export DOCS_ID +DOCS_IMAGE=$(echo $(docker images | awk '/docs/'|awk ' {print $3}' | awk 'NR==1')) +export DOCS_IMAGE + +BITCOIND_ID=$(echo $(docker ps | awk '/bitcoind/'|awk ' {print $1}' | awk 'NR==1')) +export BITCOIND_ID +BITCOIND_IMAGE=$(echo $(docker images | awk '/bitcoind/'|awk ' {print $3}' | awk 'NR==1')) +export BITCOIND_IMAGE + +TOR_ID=$(echo $(docker ps | awk '/tor/'|awk ' {print $1}' | awk 'NR==1')) +export TOR_ID +TOR_IMAGE=$(echo $(docker images | awk '/tor/'|awk ' {print $3}' | awk 'NR==1')) +export TOR_IMAGE + +BTCD_ID=$(echo $(docker ps | awk '/btcd/'|awk ' {print $1}' | awk 'NR==1')) +export BTCD_ID +BTCD_IMAGE=$(echo $(docker images | awk '/btcd/'|awk ' {print $3}' | awk 'NR==1')) +export BTCD_IMAGE + +for ((i=1;i<=$#;i++)); +do + + if [[ ${!i} = *ids ]]; then + ((i++)) + echo THUNDERHUB_ID: + echo $THUNDERHUB_ID + echo RTL_ID: + echo $RTL_ID + echo LND_ID: + echo $LND_ID + echo DOCS_ID: + echo $DOCS_ID + echo BITCOIND_ID: + echo $BITCOIND_ID + echo TOR_ID: + echo $TOR_ID + [ -z "$BTCD_ID" ] && echo "try 'make btcd'"|| echo BTCD_ID: + [ -z "$BTCD_ID" ] && echo || echo $BTCD_ID + exit + + elif [[ ${!i} = *images ]]; then + ((i++)) + echo THUNDERHUB_IMAGE: + echo $THUNDERHUB_IMAGE + echo RTL_IMAGE: + echo $RTL_IMAGE + echo LND_IMAGE: + echo $LND_IMAGE + echo DOCS_IMAGE: + echo $DOCS_IMAGE + echo BITCOIND_IMAGES: + echo $BITCOIND_IMAGE + echo TOR_IMAGE: + echo $TOR_IMAGE + [ -z "$BTCD_IMAGE" ] && echo "try 'make btcd'"|| echo BTCD_IMAGE: + [ -z "$BTCD_IMAGE" ] && echo || echo $BTCD_IMAGE + exit + + elif [[ ${!i} = top ]]; then + ((i++)) + docker top ${!i} + exit + + elif [[ ${!i} = *start ]]; then + ((i++)) + docker restart ${!i} + exit + + elif [[ ${!i} = stop ]]; then + ((i++)) + docker stop ${!i} + exit + + elif [[ ${!i} = *cli ]]; then + ((i++)) + docker exec -it $BITCOIND_ID sh -c "/usr/local/bin/bitcoin-cli $2 $3 $4" + [ -z "$BTCD_ID" ] && echo || docker exec -it $BTCD_ID sh -c "/usr/local/bin/bitcoin-cli $2 $3 $4" + exit + + elif [[ ${!i} = *d ]]; then + ((i++)) + docker exec -it $BITCOIND_ID sh -c "/usr/local/bin/bitcoind $2 $3 $4" + [ -z "$BTCD_ID" ] && echo || docker exec -it $BTCD_ID sh -c "/usr/local/bin/bitcoind $2 $3 $4" + exit + + elif [[ ${!i} = *shell ]]; then + ((i++)) + [ -z "$2" ] && echo "try 'play ids' then 'make shell '" || docker exec -it $2 sh + exit + + elif [[ ${!i} = *debug ]]; then + ((i++)) + docker exec -it $BITCOIND_ID sh -c "tail -f /home/root/.bitcoin" + + elif [[ ${!i} == *help ]]; then + ((i++)) + echo + echo "play ids" + echo "play top " + echo "play shell " + echo "play start " + echo "play stop " + echo + echo "Examples:" + echo + echo "docker exec -it sh - enter container shell" + echo + echo "playground-bitcoind" + echo + echo "play -cli gettxoutsetinfo" + echo "docker exec -it $BITCOIND_ID sh -c '/usr/local/bin/bitcoin-cli gettxoutsetinfo'" + echo "play -cli getmininginfo" + echo "docker exec -it $BITCOIND_ID sh -c '/usr/local/bin/bitcoin-cli getmininginfo'" + echo "play -cli 'getblockhash 1000'" + echo "docker exec -it $BITCOIND_ID sh -c '/usr/local/bin/bitcoin-cli $1'" + echo + exit + + elif [ -n ${!i} ]; then + ((i++)) + docker exec -it $BITCOIND_ID sh -c "$1" + exit + fi + +done; +play help; +fi #end if docker hash + diff --git a/up-generic.sh b/up-generic.sh index fa022d7..b1cc327 100755 --- a/up-generic.sh +++ b/up-generic.sh @@ -1,32 +1,56 @@ #This is for internal testing only -: ${ARCH:=x86_64-linux-gnu} -: ${bitcoind=1} -: ${lnd=1} -: ${tor=1} +if [[ $# -ne 1 ]]; +then + echo "up-generic.sh (# of instances)" + exit +fi -python plebnet_generate.py ARCH=$ARCH bitcoind=$bitcoind lnd=$lnd tor=$tor +SYSTEM_ARCH=$(uname -m) +export SYSTEM_ARCH +case $SYSTEM_ARCH in + + x86_64) + echo -n "$SYSTEM_ARCH" + ARCH=x86_64-linux-gnu + echo + ;; + + arm64 | aarch64) + echo -n "$SYSTEM_ARCH" + ARCH=aarch64-linux-gnu + echo + ;; +esac +export ARCH + +: ${ARCH:=$ARCH} +: ${bitcoind=$1} +: ${lnd=$1} +: ${tor=$1} + +./plebnet_generate.py ARCH=$ARCH bitcoind=$bitcoind lnd=$lnd tor=$tor #Remove -docker-compose down +docker-compose down sudo rm -rf volumes #Create Datafile mkdir volumes -for (( i=0; i<=$bitcoind-1; i++ )) +for (( i=0; i<=$bitcoind; i++ )) do mkdir volumes/bitcoin_datadir_$i done -for (( i=0; i<=$lnd-1; i++ )) +for (( i=0; i<=$lnd; i++ )) do mkdir volumes/lnd_datadir_$i done -for (( i=0; i<=$tor-1; i++ )) +for (( i=0; i<=$tor; i++ )) do - mkdir volumes/tor_datadir_$i - mkdir volumes/tor_servicesdir_$i - mkdir volumes/tor_torrcdir_$i + mkdir -p volumes/tor_datadir_$i + mkdir -p volumes/tor_servicesdir_$i + mkdir -p volumes/tor_torrcdir_$i done docker-compose build --build-arg ARCH=$ARCH diff --git a/zz-randy.sh b/zz-randy.sh new file mode 100755 index 0000000..6eabeb1 --- /dev/null +++ b/zz-randy.sh @@ -0,0 +1,69 @@ + +for i in {0..4} +do +#echo "Talking to playground-lnd-${i}..." +#echo "Connecting to playground cloud seed node 03ee9d906caa8e8e66fe97d7a76c2bd9806813b0b0f1cee8b9d03904b538f53c4e@104.131.10.218:9735" +# docker exec -it playground-lnd-${i} lncli --macaroonpath /root/.lnd/data/chain/bitcoin/signet/admin.macaroon disconnect 03ee9d906caa8e8e66fe97d7a76c2bd9806813b0b0f1cee8b9d03904b538f53c4e +# docker exec -it playground-lnd-${i} lncli --macaroonpath /root/.lnd/data/chain/bitcoin/signet/admin.macaroon connect --perm 03ee9d906caa8e8e66fe97d7a76c2bd9806813b0b0f1cee8b9d03904b538f53c4e@xrybvh4myas4rr3p6itf5ib6zqtrfb5gyb5246bakifev5s62rlicyad.onion:9735 +# ./getcoins.py -n playground-lnd-${i} +# docker exec -it playground-lnd-${i} lncli --macaroonpath /root/.lnd/data/chain/bitcoin/signet/admin.macaroon walletbalance | jq .total_balance + #docker exec -it playground-lnd-${i} lncli --macaroonpath /root/.lnd/data/chain/bitcoin/signet/admin.macaroon openchannel 03ee9d906caa8e8e66fe97d7a76c2bd9806813b0b0f1cee8b9d03904b538f53c4e 80000000 40000000 --min_confs 0 + echo i=$i + #echo line 13 + LND_ID_1=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==1') + LND_ID_2=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==2') + LND_ID_3=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==3') + LND_ID_4=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==4') + LND_ID_5=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==5') + LND_ID_6=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==6') + LND_ID_7=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==7') + LND_ID_8=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==8') + LND_ID_9=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==9') + LND_ID_10=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==10') + LND_ID_11=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==11') + LND_ID_12=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==12') + LND_ID_13=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==13') + LND_ID_14=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==14') + LND_ID_15=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==15') + LND_ID_16=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==16') + LND_ID_17=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==17') + LND_ID_18=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==18') + LND_ID_19=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==19') + LND_ID_20=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==20') + LND_ID_21=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==21') + LND_ID_22=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==22') + LND_ID_23=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==23') + LND_ID_24=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==24') + LND_ID_25=$(docker ps | awk '/lnd/'|awk ' {print $1}' | awk 'NR==25') + #echo line 39 + if ! test -z "$publicIPConnect"; then + #docker exec -it $LND_ID_0 sh -c "lncli --network=signet getnetworkinfo" + #docker exec -it $LND_ID_1 sh -c "lncli --network=signet getnetworkinfo" + #docker exec -it $LND_ID_2 sh -c "lncli --network=signet getnetworkinfo" + #docker exec -it $LND_ID_3 sh -c "lncli --network=signet getnetworkinfo" + #docker exec -it $LND_ID_4 sh -c "lncli --network=signet getnetworkinfo" + #docker exec -it $LND_ID_5 sh -c "lncli --network=signet getnetworkinfo" + #docker exec -it $LND_ID_0 sh -c "ADDRESS=$publicIPConnect && export ADDRESS && lncli --network=signet --macaroonpath=/root/.lnd/data/chain/bitcoin/signet/admin.macaroon connect $ADDRESS" + docker exec -it $LND_ID_1 sh -c "lncli" + docker exec -it $LND_ID_1 sh -c "export" + docker exec -it $LND_ID_1 sh -c "export $publicIPConnect" + #docker exec -it $LND_ID_1 sh -c "ADDRESS=$publicIPConnect && export $ADDRESS && echo $ADDRESS && lncli --network=signet --macaroonpath=/root/.lnd/data/chain/bitcoin/signet/admin.macaroon connect $ADDRESS:9735" + #docker exec -it $LND_ID_2 sh -c "ADDRESS=$publicIPConnect && export $ADDRESS && echo $ADDRESS && lncli --network=signet --macaroonpath=/root/.lnd/data/chain/bitcoin/signet/admin.macaroon connect $ADDRESS:9735" + #docker exec -it $LND_ID_3 sh -c "ADDRESS=$publicIPConnect && export $ADDRESS && echo $ADDRESS && lncli --network=signet --macaroonpath=/root/.lnd/data/chain/bitcoin/signet/admin.macaroon connect $ADDRESS:9735" + #docker exec -it $LND_ID_4 sh -c "ADDRESS=$publicIPConnect && export $ADDRESS && echo $ADDRESS && lncli --network=signet --macaroonpath=/root/.lnd/data/chain/bitcoin/signet/admin.macaroon connect $ADDRESS:9735" + #docker exec -it $LND_ID_5 sh -c "ADDRESS=$publicIPConnect && export $ADDRESS && echo $ADDRESS && lncli --network=signet --macaroonpath=/root/.lnd/data/chain/bitcoin/signet/admin.macaroon connect $ADDRESS:9735" + #docker exec -it $LND_ID_0 sh -c "lncli --network=signet listpeers" + #docker exec -it $LND_ID_1 sh -c "lncli --network=signet listpeers" + #docker exec -it $LND_ID_2 sh -c "lncli --network=signet listpeers" + #docker exec -it $LND_ID_3 sh -c "lncli --network=signet listpeers" + #docker exec -it $LND_ID_4 sh -c "lncli --network=signet listpeers" + #docker exec -it $LND_ID_5 sh -c "lncli --network=signet listpeers" + + fi + hostIp=$(docker exec -it playground-lnd-${i} hostname -i | tr -d '\n') + # nodeConnect=$(docker exec -it playground-lnd-${i} lncli --macaroonpath /root/.lnd/data/chain/bitcoin/signet/admin.macaroon getinfo | jq .uris[] | tr -d '"') + pubkey=$(docker exec -it playground-lnd-${i} lncli --macaroonpath /root/.lnd/data/chain/bitcoin/signet/admin.macaroon getinfo | jq .identity_pubkey | tr -d '"' | tr -d '\n') + + publicIPConnect=$pubkey@$hostIp + echo $publicIPConnect +done