WH-1903: snapshot of btc node work @ Closes #1903

This commit is contained in:
Josh Siegel 2022-11-14 21:08:44 +00:00 committed by Conor Patrick
parent b0a9218bd2
commit 2fab13e2cc
7 changed files with 119 additions and 0 deletions

View File

@ -39,6 +39,7 @@ config.define_string("webHost", False, "Public hostname for port forwards")
# Components
config.define_bool("near", False, "Enable Near component")
config.define_bool("btc", False, "Enable BTC component")
config.define_bool("aptos", False, "Enable Aptos component")
config.define_bool("algorand", False, "Enable Algorand component")
config.define_bool("evm2", False, "Enable second Eth component")
@ -74,6 +75,7 @@ guardiand_debug = cfg.get("guardiand_debug", False)
node_metrics = cfg.get("node_metrics", False)
guardiand_governor = cfg.get("guardiand_governor", False)
secondWormchain = cfg.get("secondWormchain", False)
btc = cfg.get("btc", False)
if cfg.get("manual", False):
trigger_mode = TRIGGER_MODE_MANUAL
@ -709,6 +711,25 @@ if wormchain:
trigger_mode = trigger_mode,
)
if btc:
k8s_yaml_with_ns("devnet/btc-localnet.yaml")
docker_build(
ref = "btc-node",
context = "bitcoin",
dockerfile = "bitcoin/Dockerfile",
target = "bitcoin-build",
)
k8s_resource(
"btc",
port_forwards = [
port_forward(18556, name = "RPC [:18556]", host = webHost),
],
labels = ["btc"],
trigger_mode = trigger_mode,
)
if aptos:
k8s_yaml_with_ns("devnet/aptos-localnet.yaml")

27
bitcoin/Dockerfile Normal file
View File

@ -0,0 +1,27 @@
FROM --platform=linux/amd64 docker.io/golang:1.17.5@sha256:90d1ab81f3d157ca649a9ff8d251691b810d95ea6023a03cdca139df58bca599 AS bitcoin-build
ARG ARCH=amd64
ENV GO111MODULE=on
WORKDIR /app
RUN apt-get update && apt-get install git netcat
RUN git clone https://github.com/btcsuite/btcd.git
WORKDIR /app/btcd
RUN go install -v . ./cmd/...
WORKDIR /app
RUN git clone https://github.com/btcsuite/btcwallet.git
WORKDIR /app/btcwallet
RUN go install -v . ./cmd/...
WORKDIR /root
COPY scripts/.btcwallet .btcwallet
COPY scripts/start_node.sh .

8
bitcoin/NOTES Normal file
View File

@ -0,0 +1,8 @@
use this node https://github.com/btcsuite/btcd and run with the --addrindex option
https://gist.github.com/davecgh/2992ed85d41307e794f6
# DOCKER_BUILDKIT=1 docker build --progress plain -f Dockerfile -t foo .
% docker run -it -v `pwd`:`pwd` -w `pwd` foo bash
kubectl exec -it btc-0 -c btc-node -- /bin/bash

Binary file not shown.

18
bitcoin/scripts/start_node.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash -f
# 18554 --wallet
# 18555 --btc server
# 18556 --RPC server
set -x
/go/bin/btcd --addrindex --simnet --rpcuser=wormhole --rpcpass=w0rmh013 --miningaddr=ShadQfLbaRSnU5c1XrLknkLyWCkVV8rGMy --rpclisten 0.0.0.0:18556 &
sleep 1
/go/bin/btcwallet --simnet --username wormhole --password=w0rmh013 --rpclisten 0.0.0.0:18554 &
sleep 1
/go/bin/btcctl --simnet --wallet --rpcuser=wormhole --rpcpass=w0rmh013 walletpassphrase foo 9999
/go/bin/btcctl --simnet --wallet --rpcuser=wormhole --rpcpass=w0rmh013 importprivkey Frd9p1JbyHgmcRrEzixN4LAAhK7forzdw65A9j6CTXRGiwawqKkg
/go/bin/btcctl --simnet --rpcuser=wormhole --rpcpass=w0rmh013 generate 100
jobs
#sleep infinity
nc -lk 0.0.0.0 18557

45
devnet/btc-localnet.yaml Normal file
View File

@ -0,0 +1,45 @@
apiVersion: v1
kind: Service
metadata:
labels:
app: btc
name: btc
spec:
ports:
- name: node
port: 18556
targetPort: 18556
selector:
app: btc
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: btc
name: btc
spec:
replicas: 1
selector:
matchLabels:
app: btc
serviceName: btc
template:
metadata:
labels:
app: btc
spec:
containers:
- name: btc-node
image: btc-node
command:
- /bin/sh
- -c
- /root/start_node.sh
ports:
- containerPort: 18556
name: node
protocol: TCP
readinessProbe:
tcpSocket:
port: 18557