Skip to content

Commit

Permalink
Merge pull request #24 from hirosystems/feat/stacks2.4
Browse files Browse the repository at this point in the history
feat: Stacks 2.4 image
  • Loading branch information
CharlieC3 committed Dec 4, 2023
2 parents 0426af0 + 5313001 commit ce3ddfe
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 72 deletions.
75 changes: 8 additions & 67 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:

env:
STACKS_BLOCKCHAIN_COMMIT: "2.2.0.0.1"
STACKS_BLOCKCHAIN_COMMIT: "feat/epoch-2.4"

jobs:
cancel-previous-runs:
Expand Down Expand Up @@ -115,13 +115,13 @@ jobs:
images: hirosystems/stacks-api-e2e
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=stacks2.1,enable={{is_default_branch}}
type=raw,value=stacks2.1-{{branch}}-{{sha}}
type=ref,event=branch,prefix=stacks2.1-
type=ref,event=pr,prefix=stacks2.1-
type=semver,pattern={{version}},prefix=stacks2.1-
type=semver,pattern={{major}}.{{minor}},prefix=stacks2.1-
type=sha,prefix=stacks2.1-
type=raw,value=stacks2.4,enable={{is_default_branch}}
type=raw,value=stacks2.4-{{branch}}-{{sha}}
type=ref,event=branch,prefix=stacks2.4-
type=ref,event=pr,prefix=stacks2.4-
type=semver,pattern={{version}},prefix=stacks2.4-
type=semver,pattern={{major}}.{{minor}},prefix=stacks2.4-
type=sha,prefix=stacks2.4-
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
Expand All @@ -146,62 +146,3 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=hirosystems/stacks-api-e2e:latest
cache-to: type=inline

build-push-stacks2_1-transition-docker:
needs: build-stacks-node
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: stacks-node-bin
path: stacks-blockchain-binaries
- name: Process of downloaded artifacts
working-directory: stacks-blockchain-binaries
run: |
ls -R
chmod +x x86_64-unknown-linux-gnu/stacks-node
chmod +x aarch64-unknown-linux-gnu/stacks-node
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: hirosystems/stacks-api-e2e
flavor: |
latest=false
tags: |
type=raw,value=stacks2.1-transition,enable={{is_default_branch}}
type=raw,value=stacks2.1-transition-{{branch}}-{{sha}}
type=ref,event=branch,prefix=stacks2.1-transition-
type=ref,event=pr,prefix=stacks2.1-transition-
type=semver,pattern={{version}},prefix=stacks2.1-transition-
type=semver,pattern={{major}}.{{minor}},prefix=stacks2.1-transition-
type=sha,prefix=stacks2.1-transition-
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
with:
config-inline: |
[worker.oci]
max-parallelism = 1
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN || secrets.DOCKERHUB_PASSWORD }}
- name: Build Docker images
uses: docker/build-push-action@v3
with:
file: Dockerfile.e2e
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=hirosystems/stacks-api-e2e:stacks2.1-transition
cache-to: type=inline
build-args: |
STACKS_21_HEIGHT=120
STACKS_POX2_HEIGHT=136
47 changes: 43 additions & 4 deletions Dockerfile.e2e
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
FROM rust:bullseye as builder

# A commit hash, tag, or branch
ARG GIT_COMMIT=2.2.0.0.1
ARG GIT_COMMIT=feat/epoch-2.4
ARG BLOCKCHAIN_REPO=https://github.com/stacks-network/stacks-blockchain.git

ARG TARGETPLATFORM
Expand Down Expand Up @@ -85,6 +85,15 @@ ENV STACKS_21_HEIGHT=$STACKS_21_HEIGHT
ARG STACKS_POX2_HEIGHT=107
ENV STACKS_POX2_HEIGHT=$STACKS_POX2_HEIGHT

ARG STACKS_22_HEIGHT=108
ENV STACKS_22_HEIGHT=$STACKS_22_HEIGHT

ARG STACKS_23_HEIGHT=109
ENV STACKS_23_HEIGHT=$STACKS_23_HEIGHT

ARG STACKS_24_HEIGHT=111
ENV STACKS_24_HEIGHT=$STACKS_24_HEIGHT

# priv: 6ad9cadb42d4edbfbe0c5bfb3b8a4125ddced021c4174f829b714ccbf527f02001
# ARG REWARD_RECIPIENT=STQM73RQC4EX0A07KWG1J5ECZJYBZS4SJ4ERC6WN
ARG REWARD_RECIPIENT
Expand Down Expand Up @@ -128,7 +137,7 @@ RUN <<EOF
bitcoin-cli -rpcwait getmininginfo
bitcoin-cli createwallet ""
bitcoin-cli importprivkey $BTC_ADDR_WIF "" false
bitcoin-cli generatetoaddress 100 $BTC_ADDR
bitcoin-cli generatetoaddress 101 $BTC_ADDR

node event-observer.js &
EVENT_OBSERVER_PID=$!
Expand All @@ -141,13 +150,43 @@ RUN <<EOF

while true; do
HEIGHT=$(curl -s localhost:20443/v2/info | jq '.burn_block_height')
if [ "$HEIGHT" = "100" ]; then
echo "Stacks node caught up to block 100"
if [ "$HEIGHT" = "101" ]; then
echo "Stacks node caught up to Bitcoin block $HEIGHT"
break
fi
sleep 0.5s
done

while true; do
TX=$(bitcoin-cli listtransactions '*' 1 0 true)
CONFS=$(echo "$TX" | jq '.[].confirmations')
if [ "$CONFS" = "0" ]; then
echo "Detected Stacks mining mempool tx, mining btc block..."
bitcoin-cli generatetoaddress 1 $BTC_ADDR
chain_height=$(bitcoin-cli getblockcount)
echo "Current Bitcoin chain height: $chain_height"

while true; do
HEIGHT=$(curl -s localhost:20443/v2/info | jq '.burn_block_height')
if [ "$HEIGHT" = "$chain_height" ]; then
echo "Stacks node caught up to Bitcoin block $HEIGHT"
break
else
echo "Stacks node burn height: $HEIGHT, waiting for $chain_height"
fi
sleep 0.1s
done

if [ "$chain_height" = "$STACKS_24_HEIGHT" ]; then
break
fi

else
sleep 0.1s
fi
done


kill $STACKS_PID
wait $STACKS_PID

Expand Down
17 changes: 16 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
version: "3.9"

x-common-vars:
- &STACKS_BLOCKCHAIN_COMMIT ecfe80bf16cfe60ef6e68aa30e9b3f8d7b18e268
- &STACKS_BLOCKCHAIN_COMMIT master
- &BTC_ADDR miEJtNKa3ASpA19v5ZhvbKTEieYjLpzCYT
- &MINER_SEED 9e446f6b0c6a96cf2190e54bcd5a8569c3e386f091605499464389b8d4e0bfc201 # stx: STEW4ZNT093ZHK4NEQKX8QJGM2Y7WWJ2FQQS5C19, btc: miEJtNKa3ASpA19v5ZhvbKTEieYjLpzCYT, pub_key: 035379aa40c02890d253cfa577964116eb5295570ae9f7287cbae5f2585f5b2c7c, wif: cStMQXkK5yTFGP3KbNXYQ3sJf2qwQiKrZwR9QJnksp32eKzef1za
- &BITCOIN_PEER_PORT 18444
- &BITCOIN_RPC_PORT 18443
- &BITCOIN_RPC_USER btc
- &BITCOIN_RPC_PASS btc
- &MINE_INTERVAL ${MINE_INTERVAL:-0.5s}
- &STACKS_20_HEIGHT ${STACKS_20_HEIGHT:-101}
- &STACKS_2_05_HEIGHT ${STACKS_2_05_HEIGHT:-102}
- &STACKS_21_HEIGHT ${STACKS_21_HEIGHT:-103}
- &STACKS_POX2_HEIGHT ${STACKS_POX2_HEIGHT:-104} # 104 is is stacks_block=1, 106 is stacks_block=3
- &STACKS_22_HEIGHT ${STACKS_22_HEIGHT:-105}
- &STACKS_23_HEIGHT ${STACKS_23_HEIGHT:-106}
- &STACKS_24_HEIGHT ${STACKS_24_HEIGHT:-107}
- &REWARD_RECIPIENT ${REWARD_RECIPIENT:-STQM73RQC4EX0A07KWG1J5ECZJYBZS4SJ4ERC6WN} # priv: 6ad9cadb42d4edbfbe0c5bfb3b8a4125ddced021c4174f829b714ccbf527f02001

services:
Expand All @@ -37,8 +42,13 @@ services:
MINER_SEED: *MINER_SEED
BTC_ADDR: *BTC_ADDR
INIT_BLOCKS: 101
STACKS_20_HEIGHT: *STACKS_20_HEIGHT
STACKS_2_05_HEIGHT: *STACKS_2_05_HEIGHT
STACKS_21_HEIGHT: *STACKS_21_HEIGHT
STACKS_POX2_HEIGHT: *STACKS_POX2_HEIGHT
STACKS_22_HEIGHT: *STACKS_22_HEIGHT
STACKS_23_HEIGHT: *STACKS_23_HEIGHT
STACKS_24_HEIGHT: *STACKS_24_HEIGHT
REWARD_RECIPIENT: *REWARD_RECIPIENT
entrypoint:
- /bin/bash
Expand Down Expand Up @@ -166,8 +176,13 @@ services:
BITCOIN_RPC_USER: *BITCOIN_RPC_USER
BITCOIN_RPC_PASS: *BITCOIN_RPC_PASS
MINER_SEED: *MINER_SEED
STACKS_20_HEIGHT: *STACKS_20_HEIGHT
STACKS_2_05_HEIGHT: *STACKS_2_05_HEIGHT
STACKS_21_HEIGHT: *STACKS_21_HEIGHT
STACKS_POX2_HEIGHT: *STACKS_POX2_HEIGHT
STACKS_22_HEIGHT: *STACKS_22_HEIGHT
STACKS_23_HEIGHT: *STACKS_23_HEIGHT
STACKS_24_HEIGHT: *STACKS_24_HEIGHT
REWARD_RECIPIENT: *REWARD_RECIPIENT
entrypoint:
- /bin/bash
Expand Down
12 changes: 12 additions & 0 deletions stacks-krypton-miner.toml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,18 @@ start_height = $STACKS_2_05_HEIGHT
epoch_name = "2.1"
start_height = $STACKS_21_HEIGHT

[[burnchain.epochs]]
epoch_name = "2.2"
start_height = $STACKS_22_HEIGHT

[[burnchain.epochs]]
epoch_name = "2.3"
start_height = $STACKS_23_HEIGHT

[[burnchain.epochs]]
epoch_name = "2.4"
start_height = $STACKS_24_HEIGHT

[[ustx_balance]]
address = "STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6"
amount = 10000000000000000
Expand Down
11 changes: 11 additions & 0 deletions wip.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
* First build the image:
```shell
docker build -t e2e-test -f Dockerfile.e2e .
```

* Then run the image:
```shell
docker run --rm -p "20443:20443" -e MINE_INTERVAL=5s e2e-test
```

* If everything works, visit http://localhost:20443/v2/pox

0 comments on commit ce3ddfe

Please sign in to comment.