filter_iter example fails to compile on Windows because it depends on bdk_testenv

Chiusa Adatta ai principianti
#2,338 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

Inizia da crates/bitcoind_rpc/examples/README.md e dall'esempio filter_iter, quindi esegui cargo build -p bdk_bitcoind_rpc --example filter_iter su Windows. Esamina l'import bdk_testenv::anyhow e il percorso della sua dev-dependency. Il lavoro è completato quando l'esempio documentato compila senza includere il test harness electrsd disponibile solo su Unix; i suoi requisiti di runtime esistenti devono rimanere documentati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Context

Discovered while using BDK as a new developer: after the bdk_bitcoind_rpc library crate compiled, I followed the in-tree example instructions to run the only official example.

Reproduction

On Windows, from a checkout of this repository:

cargo build -p bdk_bitcoind_rpc
cargo build -p bdk_bitcoind_rpc --example filter_iter

The first command succeeds. The second fails.

crates/bitcoind_rpc/examples/README.md documents the same example as:

cargo run -p bdk_bitcoind_rpc --example filter_iter
Expected behavior

The documented example should compile on a host where bdk_bitcoind_rpc itself compiles. Runtime still needs a local bitcoind (RPC_URL / RPC_COOKIE); that is already documented. Compile should not require the Unix-only test harness.

Actual behavior

Building the example pulls in the bdk_testenv dev-dependency and fails in electrsd 0.38.1's build.rs:

error[E0433]: cannot find `unix` in `os`
  --> electrsd-0.38.1\build.rs:14:18
   |
14 |     use std::os::unix::fs::PermissionsExt;
error[E0599]: no associated function or constant named `from_mode` found for struct `Permissions`
  --> electrsd-0.38.1\build.rs:78:39

The example does not use TestEnv. It only imports anyhow from bdk_testenv:

use anyhow::Context;
use bdk_testenv::anyhow;

Because Cargo examples may use the package's dev-dependencies, that import is enough to compile electrsd.

Environment
  • BDK commit: 0790f0400b108974b538e44d6498dc6fe1157548
  • Crate: bdk_bitcoind_rpc 0.22.0 (filter_iter example)
  • OS: Windows 10 (10.0.26200), x86_64-pc-windows-msvc
  • Rust: rustc 1.97.1 (8bab26f4f 2026-07-14)

Which backend(s) are relevant (if any)?

  • Bitcoin Core RPC

Is this blocking production use?

  • No
Additional context

bdk_testenv depending on electrsd is reasonable for integration tests. It is surprising for this example, because the example talks to an already-running Signet bitcoind and does not start a regtest node.

This is a build/developer-experience issue, not a runtime bug in FilterIter.

Related but different:

  • #1618 / PR #2329 — CI coverage for the example path on Ubuntu
  • #2268 — FilterIter safety
Lingua principale
Rust
Stelle
1.1k
Fork
520
Merge medio
4g 1h
PR unite (30g)
21

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di bitcoindevkit/bdk

Tutte le issue di bitcoindevkit/bdk

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.