From 2e55b94d699de834d96aed97afc9afa48c2cfd1d Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 18 Dec 2025 16:58:30 +0100 Subject: [PATCH 01/10] install llvm in ci to build electrs --- .github/workflows/build_electrs.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index 9686f96..f14e5c2 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -49,6 +49,12 @@ jobs: repository: Blockstream/electrs ref: ${{ env.ELECTRS_COMMIT }} - uses: dtolnay/rust-toolchain@stable + - name: Install LLVM (Ubuntu) + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install -y llvm-dev libclang-dev clang + - name: Install LLVM (macOS) + if: runner.os == 'macOS' + run: brew install llvm - run: cargo build --release - name: downcase runner.os run: echo ${{ runner.os }} | tr '[:upper:]' '[:lower:]' | echo RUNNER_OS_LOWER=$(>${GITHUB_ENV} From ff81d75943bbd7746b249a564a66d0e2a98822ce Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 18 Dec 2025 17:01:29 +0100 Subject: [PATCH 02/10] try downgarding os --- .github/workflows/build_electrs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index f14e5c2..b28b08a 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -38,7 +38,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-24.04, macos-15] + os: [ubuntu-20.04, macos-14] env: ELECTRS_COMMIT: "a33e97e1a1fc63fa9c20a116bb92579bbf43b254" From 0b50896dcc409e548e5dd37df72ea56cfde1c8c9 Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 18 Dec 2025 17:22:32 +0100 Subject: [PATCH 03/10] use older rust --- .github/workflows/build_electrs.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index b28b08a..1a36280 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -38,9 +38,10 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-20.04, macos-14] + os: [ubuntu-22.04, macos-14] env: ELECTRS_COMMIT: "a33e97e1a1fc63fa9c20a116bb92579bbf43b254" + RUST_VERSION: "1.75.0" steps: - name: Check out Electrs @@ -48,14 +49,16 @@ jobs: with: repository: Blockstream/electrs ref: ${{ env.ELECTRS_COMMIT }} - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ env.RUST_VERSION }} - name: Install LLVM (Ubuntu) if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y llvm-dev libclang-dev clang - name: Install LLVM (macOS) if: runner.os == 'macOS' run: brew install llvm - - run: cargo build --release + - run: cargo build --release --locked - name: downcase runner.os run: echo ${{ runner.os }} | tr '[:upper:]' '[:lower:]' | echo RUNNER_OS_LOWER=$(>${GITHUB_ENV} - name: Upload libs From e928cc79c7fa7f31e2524c9c105a5892aeed3bbb Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 18 Dec 2025 17:27:40 +0100 Subject: [PATCH 04/10] fix mac build --- .github/workflows/build_electrs.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index 1a36280..a3607cb 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -57,7 +57,10 @@ jobs: run: sudo apt-get update && sudo apt-get install -y llvm-dev libclang-dev clang - name: Install LLVM (macOS) if: runner.os == 'macOS' - run: brew install llvm + run: | + brew install llvm + echo "/opt/homebrew/opt/llvm/bin" >> $GITHUB_PATH + echo "LLVM_CONFIG_PATH=/opt/homebrew/opt/llvm/bin/llvm-config" >> $GITHUB_ENV - run: cargo build --release --locked - name: downcase runner.os run: echo ${{ runner.os }} | tr '[:upper:]' '[:lower:]' | echo RUNNER_OS_LOWER=$(>${GITHUB_ENV} From 8377e812becba1dad46d0407818c62bcf38a29c5 Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 18 Dec 2025 17:36:11 +0100 Subject: [PATCH 05/10] install previous version of llvm --- .github/workflows/build_electrs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index a3607cb..d62f36a 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -58,9 +58,9 @@ jobs: - name: Install LLVM (macOS) if: runner.os == 'macOS' run: | - brew install llvm - echo "/opt/homebrew/opt/llvm/bin" >> $GITHUB_PATH - echo "LLVM_CONFIG_PATH=/opt/homebrew/opt/llvm/bin/llvm-config" >> $GITHUB_ENV + brew install llvm@17 + echo "/opt/homebrew/opt/llvm@17/bin" >> $GITHUB_PATH + echo "LLVM_CONFIG_PATH=/opt/homebrew/opt/llvm@17/bin/llvm-config" >> $GITHUB_ENV - run: cargo build --release --locked - name: downcase runner.os run: echo ${{ runner.os }} | tr '[:upper:]' '[:lower:]' | echo RUNNER_OS_LOWER=$(>${GITHUB_ENV} From 4a6eca44434de743e7d74cb13ae45b17a9381e90 Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 18 Dec 2025 17:40:55 +0100 Subject: [PATCH 06/10] install llvm on mac in another way --- .github/workflows/build_electrs.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index d62f36a..ed239e1 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -55,12 +55,11 @@ jobs: - name: Install LLVM (Ubuntu) if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y llvm-dev libclang-dev clang - - name: Install LLVM (macOS) + - name: Set up build environment (macOS) if: runner.os == 'macOS' run: | - brew install llvm@17 - echo "/opt/homebrew/opt/llvm@17/bin" >> $GITHUB_PATH - echo "LLVM_CONFIG_PATH=/opt/homebrew/opt/llvm@17/bin/llvm-config" >> $GITHUB_ENV + echo "LIBCLANG_PATH=$(xcode-select -p)/Toolchains/XcodeDefault.xctoolchain/usr/lib" >> $GITHUB_ENV + echo "BINDGEN_EXTRA_CLANG_ARGS=-isysroot $(xcrun --show-sdk-path)" >> $GITHUB_ENV - run: cargo build --release --locked - name: downcase runner.os run: echo ${{ runner.os }} | tr '[:upper:]' '[:lower:]' | echo RUNNER_OS_LOWER=$(>${GITHUB_ENV} From 41c0fe5383c8eba5bdc5dfa2b0653e2cf9d21bb9 Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 18 Dec 2025 17:53:58 +0100 Subject: [PATCH 07/10] use the liquid feature --- .github/workflows/build_electrs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index ed239e1..f94838f 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -60,7 +60,7 @@ jobs: run: | echo "LIBCLANG_PATH=$(xcode-select -p)/Toolchains/XcodeDefault.xctoolchain/usr/lib" >> $GITHUB_ENV echo "BINDGEN_EXTRA_CLANG_ARGS=-isysroot $(xcrun --show-sdk-path)" >> $GITHUB_ENV - - run: cargo build --release --locked + - run: cargo build --release --locked --features liquid - name: downcase runner.os run: echo ${{ runner.os }} | tr '[:upper:]' '[:lower:]' | echo RUNNER_OS_LOWER=$(>${GITHUB_ENV} - name: Upload libs From 19307fc15ba0b51887288d4fb43c8deaaa8e515d Mon Sep 17 00:00:00 2001 From: Riccardo Casatta Date: Thu, 18 Dec 2025 18:13:14 +0100 Subject: [PATCH 08/10] upgrade electrs --- .github/workflows/build_electrs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index f94838f..2919d37 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -40,7 +40,7 @@ jobs: matrix: os: [ubuntu-22.04, macos-14] env: - ELECTRS_COMMIT: "a33e97e1a1fc63fa9c20a116bb92579bbf43b254" + ELECTRS_COMMIT: "027e38d3ebc2f85b28ae76f8f3448438ee4fc7b1" RUST_VERSION: "1.75.0" steps: From 86976c1a08c72a030b126166ee30cd5d61f03102 Mon Sep 17 00:00:00 2001 From: Leonardo Lima Date: Mon, 5 Jan 2026 16:09:37 -0300 Subject: [PATCH 09/10] ci(build_electrs): add new job for `esplora_ee3646fc` - add new `build-electrs-esplora-ee3646fc` CI job for building blockstream/electrs for new `esplora_ee3646fc` feature. - rename old CI job to `build-electrs-esplora-a33e97e1` --- .github/workflows/build_electrs.yml | 38 ++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_electrs.yml b/.github/workflows/build_electrs.yml index 2919d37..cc121c5 100644 --- a/.github/workflows/build_electrs.yml +++ b/.github/workflows/build_electrs.yml @@ -31,7 +31,6 @@ jobs: name: electrs_${{ env.RUNNER_OS_LOWER }}_${{ env.ELECTRS_TAG }} path: target/release/electrs - build-electrs-esplora: name: Build Electrs Esplora runs-on: ${{ matrix.os }} @@ -68,3 +67,40 @@ jobs: with: name: electrs_${{ env.RUNNER_OS_LOWER }}_esplora_${{ env.ELECTRS_COMMIT }} path: target/release/electrs + + build-electrs-esplora-ee3646fc: + name: Build Electrs Esplora - ee3646fc + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-22.04, macos-14] + env: + ELECTRS_COMMIT: "ee3646fc4a6a3f407fae3cf726c31c3230cddc52" + RUST_VERSION: "1.75.0" + + steps: + - name: Check out Electrs + uses: actions/checkout@master + with: + repository: Blockstream/electrs + ref: ${{ env.ELECTRS_COMMIT }} + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ env.RUST_VERSION }} + - name: Install LLVM (Ubuntu) + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install -y llvm-dev libclang-dev clang + - name: Set up build environment (macOS) + if: runner.os == 'macOS' + run: | + echo "LIBCLANG_PATH=$(xcode-select -p)/Toolchains/XcodeDefault.xctoolchain/usr/lib" >> $GITHUB_ENV + echo "BINDGEN_EXTRA_CLANG_ARGS=-isysroot $(xcrun --show-sdk-path)" >> $GITHUB_ENV + - run: cargo build --release --locked --features liquid + - name: downcase runner.os + run: echo ${{ runner.os }} | tr '[:upper:]' '[:lower:]' | echo RUNNER_OS_LOWER=$(>${GITHUB_ENV} + - name: Upload libs + uses: actions/upload-artifact@v4 + with: + name: electrs_${{ env.RUNNER_OS_LOWER }}_esplora_${{ env.ELECTRS_COMMIT }} + path: target/release/electrs From 3142d628652e9e1b87492a7edd2078f2977c8fbd Mon Sep 17 00:00:00 2001 From: Leonardo Lima Date: Mon, 5 Jan 2026 16:13:29 -0300 Subject: [PATCH 10/10] feat: add new `esplora_ee3646fc` feature - add new `esplora_ee3646fc`. - update CI to build/test new added esplora feature. --- .github/workflows/cont_integration.yml | 4 +++- Cargo.toml | 1 + README.md | 1 + sha256 | 2 ++ src/lib.rs | 7 ++++++- src/versions.rs | 5 +++++ 6 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cont_integration.yml b/.github/workflows/cont_integration.yml index 02c9aa4..bf63056 100644 --- a/.github/workflows/cont_integration.yml +++ b/.github/workflows/cont_integration.yml @@ -71,7 +71,9 @@ jobs: CARGO_TERM_COLOR: always strategy: matrix: - features: ["corepc-node_22_1,legacy,esplora_a33e97e1"] + features: + - corepc-node_22_1,legacy,esplora_a33e97e1 + - corepc-node_28_2,legacy,esplora_ee3646fc steps: - uses: actions/checkout@v3 diff --git a/Cargo.toml b/Cargo.toml index a93453d..6c1229a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,6 +38,7 @@ legacy = [] download = ["bitcoin_hashes", "zip", "minreq"] esplora_a33e97e1 = ["download", "legacy"] +esplora_ee3646fc = ["download", "legacy"] # commit: ee3646fc4a6a3f407fae3cf726c31c3230cddc52 electrs_0_8_10 = ["download"] electrs_0_9_1 = ["download"] electrs_0_9_11 = ["download"] diff --git a/README.md b/README.md index e4c64f7..58bfddb 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ I used integration testing based on external bash script launching needed extern * [electrs 0.9.1](https://github.com/romanz/electrs/releases/tag/v0.9.1) (feature=electrs_0_9_1) * [electrs 0.8.10](https://github.com/romanz/electrs/releases/tag/v0.8.10) (feature=electrs_0_8_10) * [electrs esplora](https://github.com/Blockstream/electrs/tree/a33e97e1a1fc63fa9c20a116bb92579bbf43b254) (feature=esplora_a33e97e1) + * [electrs esplora](https://github.com/Blockstream/electrs/tree/ee3646fc4a6a3f407fae3cf726c31c3230cddc52) (feature=esplora_ee3646fc) Thanks to these features every `#[test]` could easily run isolated with its own environment diff --git a/sha256 b/sha256 index a894118..30eab0e 100644 --- a/sha256 +++ b/sha256 @@ -1,5 +1,7 @@ 2d5ff149e8a2482d3658e9b386830dfc40c8fbd7c175ca7cbac58240a9505bcd electrs_macos_esplora_a33e97e1a1fc63fa9c20a116bb92579bbf43b254.zip 865e26a96e8df77df01d96f2f569dcf9622fc87a8d99a9b8fe30861a4db9ddf1 electrs_linux_esplora_a33e97e1a1fc63fa9c20a116bb92579bbf43b254.zip +a9626866a3ec2fa444ccacac4b36f3ce7578cb18b8e37f4b82cb8071128f8202 electrs_macos_esplora_ee3646fc4a6a3f407fae3cf726c31c3230cddc52.zip +ba322ab3283c0e327e21562d6e47c21dc64d442947bd4ef8e05ba1375b8121ea electrs_linux_esplora_ee3646fc4a6a3f407fae3cf726c31c3230cddc52.zip 0459d493d399bdb9ef145c84125c3cd26c1993a48efe59fa9d3fa13a03b2f555 electrs_linux_v0.8.10.zip 48c857ca953ea66ee31c4da5a801298c85815e792ab57291107e77a4871d5421 electrs_macos_v0.8.10.zip fee5cc9b6c8bbd3adc45c63c881844d948c1b4dd6817f99ee087a0ccc4ba3be0 electrs_linux_v0.9.1.zip diff --git a/src/lib.rs b/src/lib.rs index 9936b59..35e4efb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -88,6 +88,7 @@ impl Default for Conf<'_> { let args = if cfg!(feature = "electrs_0_9_1") || cfg!(feature = "electrs_0_8_10") || cfg!(feature = "esplora_a33e97e1") + || cfg!(feature = "esplora_ee3646fc") || cfg!(feature = "legacy") { vec!["-vvv"] @@ -217,6 +218,7 @@ impl ElectrsD { let p2p_socket; if cfg!(feature = "electrs_0_8_10") || cfg!(feature = "esplora_a33e97e1") + || cfg!(feature = "esplora_ee3646fc") || cfg!(feature = "legacy") { args.push("--jsonrpc-import"); @@ -479,7 +481,10 @@ mod test { debug!("electrs: {}", &electrs_exe); let mut conf = corepc_node::Conf::default(); conf.view_stdout = log_enabled!(Level::Debug); - if !cfg!(feature = "electrs_0_8_10") && !cfg!(feature = "esplora_a33e97e1") { + if !cfg!(feature = "electrs_0_8_10") + && !cfg!(feature = "esplora_a33e97e1") + && !cfg!(feature = "esplora_ee3646fc") + { conf.p2p = P2P::Yes; } let bitcoind = corepc_node::Node::with_conf(&bitcoind_exe, &conf).unwrap(); diff --git a/src/versions.rs b/src/versions.rs index 999c39d..850bd96 100644 --- a/src/versions.rs +++ b/src/versions.rs @@ -13,6 +13,9 @@ const VERSION: &str = "v0.8.10"; #[cfg(feature = "esplora_a33e97e1")] const VERSION: &str = "esplora_a33e97e1a1fc63fa9c20a116bb92579bbf43b254"; +#[cfg(feature = "esplora_ee3646fc")] +const VERSION: &str = "esplora_ee3646fc4a6a3f407fae3cf726c31c3230cddc52"; + #[cfg(feature = "electrs_0_9_1")] const VERSION: &str = "v0.9.1"; @@ -28,6 +31,7 @@ const VERSION: &str = "v0.10.6"; feature = "electrs_0_9_11", feature = "electrs_0_10_6", feature = "esplora_a33e97e1", + feature = "esplora_ee3646fc", )))] const VERSION: &str = "NA"; @@ -37,6 +41,7 @@ pub const HAS_FEATURE: bool = cfg!(any( feature = "electrs_0_9_11", feature = "electrs_0_10_6", feature = "esplora_a33e97e1", + feature = "esplora_ee3646fc", )); pub fn electrs_name() -> String {