From c68cfd6535da3bfa72a977dd71d652a01d126e3b Mon Sep 17 00:00:00 2001 From: Matthew Zipkin Date: Wed, 9 Apr 2025 11:55:04 -0400 Subject: [PATCH 1/6] test integration with pinheadmz/http-rewrite --- .github/workflows/main_ci.yml | 152 ++++++++-------------------------- 1 file changed, 33 insertions(+), 119 deletions(-) diff --git a/.github/workflows/main_ci.yml b/.github/workflows/main_ci.yml index 820b25c6c1..5cdcd2abd9 100644 --- a/.github/workflows/main_ci.yml +++ b/.github/workflows/main_ci.yml @@ -6,45 +6,18 @@ on: - master pull_request: -permissions: - contents: read - pages: write - id-token: write - jobs: ################## # Jobs with matrix ################## - unit: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - node-version: [18, 'lts/*'] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - steps: - - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3 - with: - node-version: ${{ matrix.node-version }} - registry-url: https://registry.npmjs.org/ - cache: 'npm' - - run: npm ci - - run: npm run unit integration: runs-on: ubuntu-latest strategy: fail-fast: false matrix: - node-version: [18, 'lts/*'] + node-version: [18, 20] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - services: - regtest: - image: junderw/bitcoinjs-regtest-server@sha256:5b69cf95d9edf6d5b3a00504665d6b3c382a6aa3728fe8ce897974c519061463 - ports: - - 8080:8080 steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - name: Use Node.js ${{ matrix.node-version }} @@ -53,94 +26,35 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ cache: 'npm' - - run: npm ci - - run: APIURL=http://127.0.0.1:8080/1 npm run integration - - - - ##################### - # Jobs without matrix - ##################### - coverage: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - - uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3 - with: - node-version: 'lts/*' - registry-url: https://registry.npmjs.org/ - cache: 'npm' - - run: npm ci - - run: npm run coverage - format: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - - uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3 - with: - node-version: 'lts/*' - registry-url: https://registry.npmjs.org/ - cache: 'npm' - - run: npm ci - - run: npm run format:ci - gitdiff: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - - uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3 - with: - node-version: 'lts/*' - registry-url: https://registry.npmjs.org/ - cache: 'npm' - - run: npm ci - - run: npm run gitdiff:ci - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - - uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3 - with: - node-version: 'lts/*' - registry-url: https://registry.npmjs.org/ - cache: 'npm' - - run: npm ci - - run: npm run lint - lint-tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - - uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3 - with: - node-version: 'lts/*' - registry-url: https://registry.npmjs.org/ - cache: 'npm' - - run: npm ci - - run: npm run lint:tests - - build-doc: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - - uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3 - with: - node-version: 'lts/*' - registry-url: https://registry.npmjs.org/ - cache: 'npm' - - run: npm ci - - run: npm run doc - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - path: ./docs - - deploy-doc: - if: github.ref == 'refs/heads/master' - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build-doc - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v2 + - name: install + run: npm ci + - name: install bitcoin + run: | + sudo apt-get install -y build-essential cmake pkgconf python3 libevent-dev libboost-dev libzmq3-dev libsqlite3-dev + git clone --depth 1 --branch http-rewrite-13march2025 https://github.com/pinheadmz/bitcoin + cd bitcoin + cmake -B build -DENABLE_WALLET=ON -DWITH_ZMQ=ON -DBUILD_GUI=OFF -DBUILD_BENCH=OFF -DBUILD_FUZZ_BINARY=OFF -DBUILD_GUI_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_UTIL=OFF -DBUILD_TX=OFF -DBUILD_WALLET_TOOL=OFF + cmake --build build -j$(nproc) + build/bin/bitcoind -regtest -txindex -zmqpubhashtx=tcp://127.0.0.1:30001 -zmqpubhashblock=tcp://127.0.0.1:30001 -rpcworkqueue=32 -daemon + build/bin/bitcoin-cli -regtest -rpcwait createwallet ci + build/bin/bitcoin-cli -regtest -rpcwait -generate 432 + - name: start regtest server + run: | + git clone https://github.com/bitcoinjs/regtest-server + cd regtest-server + npm install + mkdir ~/regtest-data + echo "satoshi" > ~/regtest-data/KEYS + export RPCCOOKIE=~/.bitcoin/regtest/.cookie + export KEYDB=~/regtest-data/KEYS + export INDEXDB=~/regtest-data/db + export ZMQ=tcp://127.0.0.1:30001 + export RPCCONCURRENT=32 + export RPC=http://localhost:18443 + export PORT=8080 + node index.js & + - name: test + run: | + export APIPASS=satoshi + export APIURL=http://127.0.0.1:8080/1 + npm run integration From 719f4c584ba7baa8c56ba607a27d243688df42e1 Mon Sep 17 00:00:00 2001 From: Matthew Zipkin Date: Wed, 9 Apr 2025 13:05:36 -0400 Subject: [PATCH 2/6] update test for maxburnamount --- test/integration/transactions.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/transactions.spec.ts b/test/integration/transactions.spec.ts index 994af186bc..a734eb5101 100644 --- a/test/integration/transactions.spec.ts +++ b/test/integration/transactions.spec.ts @@ -189,7 +189,7 @@ describe('bitcoinjs-lib (transactions with psbt)', () => { .addInput(inputData1) .addOutput({ script: embed.output!, - value: 1000n, + value: 0n, }) .addOutput({ address: regtestUtils.RANDOM_ADDRESS, From 5c3dd7e3bf60b24878b83ac55f709b8488a6387c Mon Sep 17 00:00:00 2001 From: Matthew Zipkin Date: Tue, 28 Oct 2025 14:15:55 -0400 Subject: [PATCH 3/6] test furszy:2025_threadpool_http_server --- .github/workflows/main_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main_ci.yml b/.github/workflows/main_ci.yml index 5cdcd2abd9..f8cfb52727 100644 --- a/.github/workflows/main_ci.yml +++ b/.github/workflows/main_ci.yml @@ -31,7 +31,7 @@ jobs: - name: install bitcoin run: | sudo apt-get install -y build-essential cmake pkgconf python3 libevent-dev libboost-dev libzmq3-dev libsqlite3-dev - git clone --depth 1 --branch http-rewrite-13march2025 https://github.com/pinheadmz/bitcoin + git clone --depth 1 --branch 2025_threadpool_http_server https://github.com/furszy/bitcoin-core cd bitcoin cmake -B build -DENABLE_WALLET=ON -DWITH_ZMQ=ON -DBUILD_GUI=OFF -DBUILD_BENCH=OFF -DBUILD_FUZZ_BINARY=OFF -DBUILD_GUI_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_UTIL=OFF -DBUILD_TX=OFF -DBUILD_WALLET_TOOL=OFF cmake --build build -j$(nproc) From 82589e3806909a3192e8c5a68c61f24663e7371b Mon Sep 17 00:00:00 2001 From: Matthew Zipkin Date: Tue, 28 Oct 2025 14:31:56 -0400 Subject: [PATCH 4/6] remove npm cache --- .github/workflows/main_ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main_ci.yml b/.github/workflows/main_ci.yml index f8cfb52727..bf984d7585 100644 --- a/.github/workflows/main_ci.yml +++ b/.github/workflows/main_ci.yml @@ -25,7 +25,6 @@ jobs: with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ - cache: 'npm' - name: install run: npm ci - name: install bitcoin From 41252bb986cbab52ba5db5dba3e782a6c491bd43 Mon Sep 17 00:00:00 2001 From: Matthew Zipkin Date: Tue, 28 Oct 2025 14:33:25 -0400 Subject: [PATCH 5/6] fix repo name --- .github/workflows/main_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main_ci.yml b/.github/workflows/main_ci.yml index bf984d7585..eac466004e 100644 --- a/.github/workflows/main_ci.yml +++ b/.github/workflows/main_ci.yml @@ -31,7 +31,7 @@ jobs: run: | sudo apt-get install -y build-essential cmake pkgconf python3 libevent-dev libboost-dev libzmq3-dev libsqlite3-dev git clone --depth 1 --branch 2025_threadpool_http_server https://github.com/furszy/bitcoin-core - cd bitcoin + cd bitcoin-core cmake -B build -DENABLE_WALLET=ON -DWITH_ZMQ=ON -DBUILD_GUI=OFF -DBUILD_BENCH=OFF -DBUILD_FUZZ_BINARY=OFF -DBUILD_GUI_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_UTIL=OFF -DBUILD_TX=OFF -DBUILD_WALLET_TOOL=OFF cmake --build build -j$(nproc) build/bin/bitcoind -regtest -txindex -zmqpubhashtx=tcp://127.0.0.1:30001 -zmqpubhashblock=tcp://127.0.0.1:30001 -rpcworkqueue=32 -daemon From 191eee31cc738b8129c277194ed494aad9704875 Mon Sep 17 00:00:00 2001 From: Matthew Zipkin Date: Tue, 28 Oct 2025 14:41:49 -0400 Subject: [PATCH 6/6] add capnproto --- .github/workflows/main_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main_ci.yml b/.github/workflows/main_ci.yml index eac466004e..717d95d44b 100644 --- a/.github/workflows/main_ci.yml +++ b/.github/workflows/main_ci.yml @@ -29,7 +29,7 @@ jobs: run: npm ci - name: install bitcoin run: | - sudo apt-get install -y build-essential cmake pkgconf python3 libevent-dev libboost-dev libzmq3-dev libsqlite3-dev + sudo apt-get install -y build-essential cmake pkgconf python3 libevent-dev libboost-dev libzmq3-dev libsqlite3-dev libcapnp-dev capnproto git clone --depth 1 --branch 2025_threadpool_http_server https://github.com/furszy/bitcoin-core cd bitcoin-core cmake -B build -DENABLE_WALLET=ON -DWITH_ZMQ=ON -DBUILD_GUI=OFF -DBUILD_BENCH=OFF -DBUILD_FUZZ_BINARY=OFF -DBUILD_GUI_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_UTIL=OFF -DBUILD_TX=OFF -DBUILD_WALLET_TOOL=OFF