Page MenuHomePhabricator

[chronik] add an optional checkpoint_height query parameters to the block-header endpoint
DraftPublic

Authored by PiRK on Aug 1 2024, 10:17.
This is a draft revision that has not yet been submitted for review.

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

Return a merkle root for all block hashes up to checkpoint_height, as well as the merkle branch of the queried block header up to root, deepest pairing first.

For the block headers range API, the additional merkle data is included only for the last header. A user can trivially check that the returned headers are a valid chain, then use the checkpoint merkle data to check that the last header is part of the checkpointed chain.

TODO:

  • invalidate cache when a reorg happens

Depends on D16756

Test Plan

ninja check-functional

Event Timeline

Tail of the build log:

    Checking embedded-io v0.4.0
   Compiling prost-build v0.11.9
    Checking cobs v0.2.3
    Checking data-encoding v2.5.0
    Checking utf-8 v0.7.6
    Checking smallvec v1.13.2
    Checking httpdate v1.0.3
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
    Checking postcard v1.0.8
    Checking pin-project v1.1.5
    Checking tungstenite v0.21.0
    Checking toml_datetime v0.6.6
    Checking hyper v1.2.0
    Checking serde_spanned v0.6.6
   Compiling pyo3 v0.22.2
    Checking sync_wrapper v0.1.2
    Checking mime v0.3.17
    Checking topo_sort v0.4.0
    Checking seahash v4.1.0
    Checking winnow v0.6.13
    Checking axum-core v0.4.3
    Checking tokio-tungstenite v0.21.0
    Checking tower v0.4.13
    Checking memoffset v0.9.1
    Checking serde_json v1.0.115
    Checking serde_urlencoded v0.7.1
    Checking hyper-util v0.1.3
    Checking futures-executor v0.3.30
    Checking serde_path_to_error v0.1.16
    Checking matchit v0.7.3
    Checking sync_wrapper v1.0.1
    Checking unicode-segmentation v1.11.0
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking base64 v0.21.7
    Checking unindent v0.2.3
    Checking tower-http v0.5.2
    Checking futures v0.3.30
    Checking convert_case v0.6.0
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
    Checking toml_edit v0.22.14
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.7.5
   Compiling pyo3-macros v0.22.2
    Checking toml v0.8.14
    Checking chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
    Checking rocksdb v0.21.0
    Checking chronik-db v0.1.0 (/work/chronik/chronik-db)
    Checking chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
error: unused variable: `cp_height`
   --> chronik/chronik-indexer/src/query/blocks.rs:313:9
    |
313 |         cp_height: i32,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cp_height`
    |
    = note: `-D unused-variables` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(unused_variables)]`

error: could not compile `chronik-indexer` (lib) due to 1 previous error
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1
tobias_ruck added inline comments.
chronik/chronik-http/src/handlers.rs
269 ↗(On Diff #48981)

Do you think we should rename this cp_height to checkpoint_height? For ElectrumX users this might be clear, but for normal Chronik enjoyers they might be confused

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

/bin/bash: line 1: :wq: command not found

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[240/582] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[241/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[242/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[244/582] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/cashaddr.cpp.o
[246/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[247/582] Building CXX object src/CMakeFiles/common.dir/common/configfile.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[249/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[250/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[261/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[263/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[264/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[266/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[267/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[268/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[269/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[270/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[271/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[272/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[273/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[274/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[275/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[276/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[277/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[278/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[279/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[280/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[281/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[282/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[283/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[284/582] Linking C static library src/secp256k1/libsecp256k1.a
[285/582] Linking C executable src/secp256k1/ecmult-bench
[286/582] Linking C executable src/secp256k1/recover-bench
[287/582] Linking C executable src/secp256k1/internal-bench
[288/582] Linking C executable src/secp256k1/verify-bench
[289/582] Linking C executable src/secp256k1/sign-bench
[290/582] Linking CXX static library src/libcommon.a
[291/582] Linking CXX static library src/libscript.a
[292/582] Linking CXX static library src/libbitcoinconsensus.a
[293/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[294/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[295/582] Linking CXX executable src/bitcoin-cli
[296/582] Linking CXX executable src/bitcoin-tx
ninja: build stopped: cannot make progress due to previous errors.
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/common.dir/cashaddr.cpp.o
[240/582] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[241/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[242/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[244/582] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[246/582] Building CXX object src/CMakeFiles/common.dir/common/configfile.cpp.o
[247/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[249/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[250/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[261/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[263/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[264/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[266/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[267/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[268/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[269/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[270/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[271/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[272/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[273/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[274/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[275/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[276/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[277/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[278/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[279/582] Linking C static library src/secp256k1/libsecp256k1.a
[280/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[281/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[282/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[283/582] Linking C executable src/secp256k1/ecmult-bench
[284/582] Linking C executable src/secp256k1/verify-bench
[285/582] Linking C executable src/secp256k1/internal-bench
[286/582] Linking C executable src/secp256k1/recover-bench
[287/582] Linking C executable src/secp256k1/sign-bench
[288/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[289/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[290/582] Linking CXX static library src/libcommon.a
[291/582] Linking CXX static library src/libscript.a
[292/582] Linking CXX static library src/libbitcoinconsensus.a
[293/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[294/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[295/582] Linking CXX executable src/bitcoin-cli
[296/582] Linking CXX executable src/bitcoin-tx
ninja: build stopped: cannot make progress due to previous errors.
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[240/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[241/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[242/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[244/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[246/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[247/582] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[249/582] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[250/582] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/common/configfile.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[261/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[263/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[264/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[266/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[267/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[268/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[269/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[270/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[271/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[272/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[273/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[274/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[275/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[276/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[277/582] Linking C static library src/secp256k1/libsecp256k1.a
[278/582] Linking C executable src/secp256k1/recover-bench
[279/582] Linking C executable src/secp256k1/sign-bench
[280/582] Linking C executable src/secp256k1/verify-bench
[281/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[282/582] Linking C executable src/secp256k1/internal-bench
[283/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[284/582] Linking C executable src/secp256k1/ecmult-bench
[285/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[286/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[287/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[288/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[289/582] Linking CXX static library src/libcommon.a
[290/582] Linking CXX static library src/libscript.a
[291/582] Linking CXX static library src/libbitcoinconsensus.a
[292/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[293/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[294/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[295/582] Linking CXX executable src/bitcoin-cli
[296/582] Linking CXX executable src/bitcoin-tx
ninja: build stopped: cannot make progress due to previous errors.
Build chronik-client-integration-tests failed with exit code 1

Tail of the build log:

    Checking sha1 v0.10.6
    Checking httpdate v1.0.3
    Checking data-encoding v2.5.0
    Checking embedded-io v0.4.0
    Checking utf-8 v0.7.6
    Checking smallvec v1.13.2
    Checking cobs v0.2.3
    Checking ryu v1.0.17
    Checking postcard v1.0.8
    Checking tungstenite v0.21.0
    Checking pin-project v1.1.5
    Checking chronik-plugin-common v0.1.0 (/work/chronik/chronik-plugin-common)
   Compiling prost-build v0.11.9
    Checking toml_datetime v0.6.6
    Checking serde_spanned v0.6.6
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
   Compiling pyo3 v0.22.2
    Checking winnow v0.6.13
    Checking seahash v4.1.0
    Checking sync_wrapper v0.1.2
    Checking topo_sort v0.4.0
    Checking mime v0.3.17
    Checking memoffset v0.9.1
    Checking serde_json v1.0.115
    Checking serde_urlencoded v0.7.1
    Checking axum-core v0.4.3
    Checking futures-executor v0.3.30
    Checking hyper v1.2.0
    Checking tower v0.4.13
    Checking tokio-tungstenite v0.21.0
    Checking serde_path_to_error v0.1.16
    Checking base64 v0.21.7
    Checking matchit v0.7.3
    Checking hyper-util v0.1.3
    Checking sync_wrapper v1.0.1
    Checking unicode-segmentation v1.11.0
    Checking unindent v0.2.3
    Checking tower-http v0.5.2
    Checking futures v0.3.30
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking toml_edit v0.22.14
    Checking convert_case v0.6.0
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.7.5
   Compiling pyo3-macros v0.22.2
    Checking toml v0.8.14
error: missing documentation for a method
  --> chronik/chronik-bridge/src/ffi.rs:10:1
   |
10 | #[cxx::bridge(namespace = "chronik_bridge")]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D missing-docs` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(missing_docs)]`

error: could not compile `chronik-bridge` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

test chronik/bitcoinsuite-core/src/bytes.rs - bytes::read_bytes (line 19) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::digest (line 76) ... ok
test chronik/bitcoinsuite-core/src/bytes.rs - bytes::read_array (line 55) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::from_le_hex (line 289) ... ok
test chronik/bitcoinsuite-core/src/script/opcode.rs - script::opcode::Opcode (line 12) ... ok
test chronik/bitcoinsuite-core/src/script/opcode.rs - script::opcode::Opcode::number (line 75) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::from_le_slice (line 242) ... ok
test chronik/bitcoinsuite-core/src/script/opcode.rs - script::opcode::opcode_number_to_name (line 86) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::to_be_bytes (line 150) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::to_be_vec (line 225) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::hex_le (line 168) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::hex_be (line 190) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::to_le_bytes (line 138) ... ok
test chronik/bitcoinsuite-core/src/hash.rs - hash::Hashed::to_le_vec (line 208) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey.rs - script::pubkey::PubKey (line 13) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey.rs - script::pubkey::PubKey::array (line 47) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey.rs - script::pubkey::PubKey::as_slice (line 37) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey.rs - script::pubkey::PubKey::hex (line 57) ... ok
test chronik/bitcoinsuite-core/src/script/pubkey_variant.rs - script::pubkey_variant::PubKeyVariant (line 14) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::is_opreturn (line 159) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::bytecode (line 126) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::p2pk_uncompressed (line 98) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::p2pk (line 76) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::p2pkh (line 36) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::hex (line 148) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::iter_ops (line 174) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::p2sh (line 56) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::freeze (line 135) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::to_vec (line 137) ... ok
test chronik/bitcoinsuite-core/src/script/script.rs - script::script::Script::variant (line 223) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::put_bytecode (line 44) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::with_capacity (line 17) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::put_opcodes (line 28) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::put_slp_pushdata (line 116) ... ok
test chronik/bitcoinsuite-core/src/script/uncompressed_pubkey.rs - script::uncompressed_pubkey::UncompressedPubKey (line 13) ... ok
test chronik/bitcoinsuite-core/src/script/script_mut.rs - script::script_mut::ScriptMut::put_pushdata (line 58) ... ok
test chronik/bitcoinsuite-core/src/script/uncompressed_pubkey.rs - script::uncompressed_pubkey::UncompressedPubKey::array (line 50) ... ok
test chronik/bitcoinsuite-core/src/tx/tx.rs - tx::tx::Tx (line 34) - compile fail ... ok
test chronik/bitcoinsuite-core/src/script/uncompressed_pubkey.rs - script::uncompressed_pubkey::UncompressedPubKey::hex (line 60) ... ok
test chronik/bitcoinsuite-core/src/script/uncompressed_pubkey.rs - script::uncompressed_pubkey::UncompressedPubKey::as_slice (line 40) ... ok
test chronik/bitcoinsuite-core/src/script/variant.rs - script::variant::ScriptVariant::from_type_and_payload (line 94) ... ok
test chronik/bitcoinsuite-core/src/tx/tx.rs - tx::tx::OutPoint::is_coinbase (line 125) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::new (line 47) ... ok
test chronik/bitcoinsuite-core/src/tx/tx.rs - tx::tx::Tx (line 14) ... ok
test chronik/bitcoinsuite-core/src/script/variant.rs - script::variant::ScriptVariant::to_script (line 108) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::as_bytes (line 89) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::to_bytes (line 74) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::to_vec (line 104) ... ok
test chronik/bitcoinsuite-core/src/tx/txid.rs - tx::txid::TxId::from_tx (line 59) ... ok

test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.53s

   Doc-tests bitcoinsuite-slp

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

fix a few compiler error, now the error is

795 |             block_merkle_tree: &self.block_merkle_tree,
    |                                ^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: expected mutable reference `&mut BlockMerkleTree`
                       found reference `&BlockMerkleTree`

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[240/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[241/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[242/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[244/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[246/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[247/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[249/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[250/582] Building CXX object src/CMakeFiles/script.dir/script/bitfield.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[252/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/pubkey.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[259/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[261/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[262/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[263/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[264/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[266/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[267/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[268/582] Linking C static library src/secp256k1/libsecp256k1.a
[269/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[270/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[271/582] Linking C executable src/secp256k1/recover-bench
[272/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[273/582] Linking C executable src/secp256k1/sign-bench
[274/582] Linking C executable src/secp256k1/ecmult-bench
[275/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[276/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[277/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[278/582] Linking C executable src/secp256k1/verify-bench
[279/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[280/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[281/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[282/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[283/582] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[284/582] Linking C executable src/secp256k1/internal-bench
[285/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[286/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[287/582] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[288/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[289/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[290/582] Linking CXX static library src/libcommon.a
[291/582] Linking CXX static library src/libscript.a
[292/582] Linking CXX static library src/libbitcoinconsensus.a
[293/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[294/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[295/582] Linking CXX executable src/bitcoin-cli
[296/582] Linking CXX executable src/bitcoin-tx
ninja: build stopped: cannot make progress due to previous errors.
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[240/582] Building CXX object src/CMakeFiles/common.dir/cashaddr.cpp.o
[241/582] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[242/582] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[244/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/common/configfile.cpp.o
[246/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[247/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[249/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[250/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[261/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[263/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[264/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[266/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[267/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[268/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[269/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[270/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[271/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[272/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[273/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[274/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[275/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[276/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[277/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[278/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[279/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[280/582] Linking C static library src/secp256k1/libsecp256k1.a
[281/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[282/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[283/582] Linking C executable src/secp256k1/ecmult-bench
[284/582] Linking C executable src/secp256k1/recover-bench
[285/582] Linking C executable src/secp256k1/verify-bench
[286/582] Linking C executable src/secp256k1/internal-bench
[287/582] Linking C executable src/secp256k1/sign-bench
[288/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[289/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[290/582] Linking CXX static library src/libcommon.a
[291/582] Linking CXX static library src/libscript.a
[292/582] Linking CXX static library src/libbitcoinconsensus.a
[293/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[294/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[295/582] Linking CXX executable src/bitcoin-cli
[296/582] Linking CXX executable src/bitcoin-tx
ninja: build stopped: cannot make progress due to previous errors.
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[240/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[241/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[242/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[244/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[246/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[247/582] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[248/582] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[249/582] Building CXX object src/CMakeFiles/script.dir/script/interpreter.cpp.o
[250/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/common/configfile.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[261/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[263/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[264/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[266/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[267/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[268/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[269/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[270/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[271/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[272/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[273/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[274/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[275/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[276/582] Linking C static library src/secp256k1/libsecp256k1.a
[277/582] Linking C executable src/secp256k1/sign-bench
[278/582] Linking C executable src/secp256k1/recover-bench
[279/582] Linking C executable src/secp256k1/verify-bench
[280/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[281/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[282/582] Linking C executable src/secp256k1/ecmult-bench
[283/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[284/582] Linking C executable src/secp256k1/internal-bench
[285/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[286/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[287/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[288/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[289/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[290/582] Linking CXX static library src/libcommon.a
[291/582] Linking CXX static library src/libscript.a
[292/582] Linking CXX static library src/libbitcoinconsensus.a
[293/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[294/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[295/582] Linking CXX executable src/bitcoin-cli
[296/582] Linking CXX executable src/bitcoin-tx
ninja: build stopped: cannot make progress due to previous errors.
Build chronik-client-integration-tests failed with exit code 1

Tail of the build log:

   Compiling unicode-segmentation v1.11.0
   Compiling sync_wrapper v0.1.2
   Compiling mime v0.3.17
   Compiling serde_json v1.0.115
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
   Compiling hyper v1.2.0
   Compiling tungstenite v0.21.0
   Compiling convert_case v0.6.0
   Compiling tower v0.4.13
warning: missing documentation for a method
  --> chronik/chronik-bridge/src/ffi.rs:10:1
   |
10 | #[cxx::bridge(namespace = "chronik_bridge")]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: the lint level is defined here
  --> chronik/chronik-bridge/src/lib.rs:15:1
   |
15 | / abc_rust_lint::lint! {
16 | |     pub mod ffi;
17 | |     pub mod util;
18 | | }
   | |_^
   = note: this warning originates in the macro `abc_rust_lint::lint` (in Nightly builds, run with -Z macro-backtrace for more info)

   Compiling axum-core v0.4.3
   Compiling tokio-tungstenite v0.21.0
   Compiling hyper-util v0.1.3
   Compiling serde_urlencoded v0.7.1
warning: `chronik-bridge` (lib) generated 1 warning
   Compiling futures-executor v0.3.30
   Compiling serde_path_to_error v0.1.16
   Compiling matchit v0.7.3
   Compiling base64 v0.21.7
   Compiling sync_wrapper v1.0.1
   Compiling toml_edit v0.22.14
   Compiling futures v0.3.30
   Compiling tower-http v0.5.2
   Compiling librocksdb-sys v0.11.0+8.1.1
   Compiling axum v0.7.5
   Compiling pyo3-macros v0.22.2
   Compiling toml v0.8.14
   Compiling chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
   Compiling rocksdb v0.21.0
   Compiling chronik-db v0.1.0 (/work/chronik/chronik-db)
   Compiling chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
error[E0308]: mismatched types
   --> chronik/chronik-indexer/src/indexer.rs:795:32
    |
795 |             block_merkle_tree: &self.block_merkle_tree,
    |                                ^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability
    |
    = note: expected mutable reference `&mut BlockMerkleTree`
                       found reference `&BlockMerkleTree`

For more information about this error, try `rustc --explain E0308`.
error: could not compile `chronik-indexer` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

  --> chronik/chronik-bridge/src/lib.rs:15:1
   |
15 | / abc_rust_lint::lint! {
16 | |     pub mod ffi;
17 | |     pub mod util;
18 | | }
   | |_^
   = note: this warning originates in the macro `abc_rust_lint::lint` (in Nightly builds, run with -Z macro-backtrace for more info)

   Compiling base64 v0.21.7
   Compiling hyper v1.2.0
   Compiling tower v0.4.13
   Compiling pyo3 v0.22.2
   Compiling tokio-tungstenite v0.21.0
   Compiling matchit v0.7.3
warning: `chronik-bridge` (lib) generated 1 warning
   Compiling sync_wrapper v1.0.1
   Compiling futures v0.3.30
   Compiling tower-http v0.5.2
   Compiling toml v0.8.14
   Compiling hyper-util v0.1.3
   Compiling chronik-util v0.1.0 (/work/chronik/chronik-util)
   Compiling axum v0.7.5
   Compiling librocksdb-sys v0.11.0+8.1.1
   Compiling chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
   Compiling rocksdb v0.21.0
   Compiling chronik-db v0.1.0 (/work/chronik/chronik-db)
   Compiling chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
error[E0308]: mismatched types
   --> chronik/chronik-indexer/src/indexer.rs:795:32
    |
795 |             block_merkle_tree: &self.block_merkle_tree,
    |                                ^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability
    |
    = note: expected mutable reference `&mut BlockMerkleTree`
                       found reference `&BlockMerkleTree`

For more information about this error, try `rustc --explain E0308`.
error: could not compile `chronik-indexer` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
[7/7] cd /work && /usr/bin/cmake -E env CARGO_TARGET_DIR="/work/abc-ci-builds/build-chronik-plugins/cargo/build" CARGO_BUILD_RUSTC="/root/.rustup/toolchains/1.76.0-x86_64-unknown-linux-gnu/bin/rustc" CARGO_BUILD_RUSTDOC="/root/.cargo/bin/rustdoc" /root/.rustup/toolchains/1.76.0-x86_64-unknown-linux-gnu/bin/cargo --locked clippy --package 'bitcoinsuite-*' -- -D warnings
warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Checking either v1.10.0
    Checking serde v1.0.197
    Checking thiserror v1.0.58
    Checking itertools v0.10.5
    Checking bytes v1.6.0
    Checking bitcoinsuite-core v0.1.0 (/work/chronik/bitcoinsuite-core)
    Checking bitcoinsuite-slp v0.1.0 (/work/chronik/bitcoinsuite-slp)
    Finished dev [unoptimized + debuginfo] target(s) in 6m 05s
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1
chronik/chronik-http/src/handlers.rs
392 ↗(On Diff #49582)
chronik/chronik-indexer/src/indexer.rs
97 ↗(On Diff #49582)

Since this requires mutable access, you probably want a mutex here

use tokio::sync::Mutex;

chronik/chronik-indexer/src/query/blocks.rs
59 ↗(On Diff #49582)
318 ↗(On Diff #49582)
350–351 ↗(On Diff #49582)

and then make header async

use a mutex for the merkle tree cache
still WIP (compiler errors)

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[240/582] Building CXX object src/CMakeFiles/common.dir/cashaddr.cpp.o
[241/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[242/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[244/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[246/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[247/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[249/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[250/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[257/582] Building CXX object src/CMakeFiles/bitcoinconsensus-shared.dir/script/bitcoinconsensus.cpp.o
[258/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[261/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[263/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[264/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[265/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[266/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[267/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[268/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[269/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[270/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[271/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[272/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/amount.cpp.o
[273/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[274/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[275/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[276/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[277/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[278/582] Linking C static library src/secp256k1/libsecp256k1.a
[279/582] Linking C executable src/secp256k1/verify-bench
[280/582] Linking C executable src/secp256k1/ecmult-bench
[281/582] Linking C executable src/secp256k1/internal-bench
[282/582] Linking C executable src/secp256k1/recover-bench
[283/582] Linking C executable src/secp256k1/sign-bench
[284/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[285/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[286/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[287/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[288/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[289/582] Linking CXX static library src/libcommon.a
[290/582] Linking CXX static library src/libscript.a
[291/582] Linking CXX static library src/libbitcoinconsensus.a
[292/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[293/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[294/582] Linking CXX executable src/bitcoin-tx
[295/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[296/582] Linking CXX executable src/bitcoin-cli
ninja: build stopped: cannot make progress due to previous errors.
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/common.dir/cashaddr.cpp.o
[240/582] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[241/582] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[242/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[244/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[245/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[246/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[247/582] Building CXX object src/CMakeFiles/common.dir/common/configfile.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[249/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[250/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[261/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[263/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[264/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[266/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[267/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[268/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[269/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[270/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[271/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[272/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[273/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[274/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[275/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[276/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[277/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[278/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[279/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[280/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[281/582] Linking C static library src/secp256k1/libsecp256k1.a
[282/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[283/582] Linking C executable src/secp256k1/ecmult-bench
[284/582] Linking C executable src/secp256k1/recover-bench
[285/582] Linking C executable src/secp256k1/verify-bench
[286/582] Linking C executable src/secp256k1/sign-bench
[287/582] Linking C executable src/secp256k1/internal-bench
[288/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[289/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[290/582] Linking CXX static library src/libcommon.a
[291/582] Linking CXX static library src/libscript.a
[292/582] Linking CXX static library src/libbitcoinconsensus.a
[293/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[294/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[295/582] Linking CXX executable src/bitcoin-cli
[296/582] Linking CXX executable src/bitcoin-tx
ninja: build stopped: cannot make progress due to previous errors.
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[240/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[241/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[242/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[243/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[244/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/pubkey.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[246/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[247/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[249/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[250/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/uint256.cpp.o
[251/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/arith_uint256.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[256/582] Building CXX object src/CMakeFiles/script.dir/script/sigencoding.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[260/582] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/amount.cpp.o
[261/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[263/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[264/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[266/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[267/582] Linking C static library src/secp256k1/libsecp256k1.a
[268/582] Linking C executable src/secp256k1/recover-bench
[269/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[270/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[271/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[272/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[273/582] Linking C executable src/secp256k1/verify-bench
[274/582] Linking C executable src/secp256k1/sign-bench
[275/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[276/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[277/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[278/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[279/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[280/582] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[281/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[282/582] Linking C executable src/secp256k1/ecmult-bench
[283/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[284/582] Linking C executable src/secp256k1/internal-bench
[285/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[286/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[287/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[288/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[289/582] Linking CXX static library src/libcommon.a
[290/582] Linking CXX static library src/libscript.a
[291/582] Linking CXX static library src/libbitcoinconsensus.a
[292/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.12
[293/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[294/582] Linking CXX executable src/bitcoin-tx
[295/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[296/582] Linking CXX executable src/bitcoin-cli
ninja: build stopped: cannot make progress due to previous errors.
Build chronik-client-integration-tests failed with exit code 1

Tail of the build log:

    Checking sha1 v0.10.6
    Checking embedded-io v0.4.0
    Checking data-encoding v2.5.0
    Checking cobs v0.2.3
    Checking utf-8 v0.7.6
    Checking smallvec v1.13.2
    Checking ryu v1.0.17
    Checking httpdate v1.0.3
    Checking tungstenite v0.21.0
    Checking postcard v1.0.8
    Checking pin-project v1.1.5
    Checking chronik-plugin-common v0.1.0 (/work/chronik/chronik-plugin-common)
   Compiling prost-build v0.11.9
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
    Checking serde_spanned v0.6.6
    Checking toml_datetime v0.6.6
   Compiling pyo3 v0.22.2
    Checking seahash v4.1.0
    Checking sync_wrapper v0.1.2
    Checking mime v0.3.17
    Checking topo_sort v0.4.0
    Checking winnow v0.6.13
    Checking memoffset v0.9.1
    Checking axum-core v0.4.3
    Checking serde_json v1.0.115
    Checking serde_urlencoded v0.7.1
    Checking hyper v1.2.0
    Checking tower v0.4.13
    Checking tokio-tungstenite v0.21.0
    Checking futures-executor v0.3.30
    Checking serde_path_to_error v0.1.16
    Checking sync_wrapper v1.0.1
    Checking hyper-util v0.1.3
    Checking base64 v0.21.7
    Checking matchit v0.7.3
    Checking unindent v0.2.3
    Checking unicode-segmentation v1.11.0
    Checking tower-http v0.5.2
    Checking futures v0.3.30
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking convert_case v0.6.0
    Checking toml_edit v0.22.14
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.7.5
   Compiling pyo3-macros v0.22.2
    Checking toml v0.8.14
error: missing documentation for a method
  --> chronik/chronik-bridge/src/ffi.rs:10:1
   |
10 | #[cxx::bridge(namespace = "chronik_bridge")]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D missing-docs` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(missing_docs)]`

error: could not compile `chronik-bridge` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

   Compiling axum v0.7.5
   Compiling librocksdb-sys v0.11.0+8.1.1
   Compiling chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
   Compiling rocksdb v0.21.0
   Compiling chronik-db v0.1.0 (/work/chronik/chronik-db)
   Compiling chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
warning: unused variable: `root`
   --> chronik/chronik-indexer/src/query/blocks.rs:355:17
    |
355 |             let root = root.to_le_bytes();
    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_root`
    |
note: the lint level is defined here
   --> chronik/chronik-indexer/src/lib.rs:7:1
    |
7   | / abc_rust_lint::lint! {
8   | |     pub mod avalanche;
9   | |     pub mod subs_group;
10  | |     pub mod indexer;
...   |
14  | |     pub mod merkle;
15  | | }
    | |_^
    = note: `#[warn(unused_variables)]` implied by `#[warn(unused)]`
    = note: this warning originates in the macro `abc_rust_lint::lint` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: unused variable: `branch`
   --> chronik/chronik-indexer/src/query/blocks.rs:356:17
    |
356 |             let branch: Vec<_> =
    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_branch`

   Compiling chronik-http v0.1.0 (/work/chronik/chronik-http)
error[E0277]: the trait bound `fn(axum::extract::Path<String>, Query<HashMap<String, String>>, Extension<Arc<tokio::sync::RwLock<ChronikIndexer>>>, Extension<Arc<Node>>) -> impl futures::Future<Output = Result<Protobuf<BlockHeader>, ReportError>> {server::handle_block_header}: Handler<_, _>` is not satisfied
   --> chronik/chronik-http/src/server.rs:162:30
    |
162 |                 routing::get(handle_block_header),
    |                 ------------ ^^^^^^^^^^^^^^^^^^^ the trait `Handler<_, _>` is not implemented for fn item `fn(Path<String>, Query<HashMap<String, String>>, Extension<Arc<...>>, ...) -> ... {handle_block_header}`
    |                 |
    |                 required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S>`:
              <Layered<L, H, T, S> as Handler<T, S>>
              <MethodRouter<S> as Handler<(), S>>
note: required by a bound in `axum::routing::get`
   --> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.7.5/src/routing/method_routing.rs:385:1
    |
385 | top_level_handler_fn!(get, GET);
    | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `get`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

For more information about this error, try `rustc --explain E0277`.
error: could not compile `chronik-http` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
warning: `chronik-indexer` (lib) generated 2 warnings (run `cargo fix --lib -p chronik-indexer` to apply 2 suggestions)
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

rebase on D16747 and fix scope for branch & root vars

Now it compiles, but is still lacking tests

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

   Compiling bitcoinsuite-slp v0.1.0 (/work/chronik/bitcoinsuite-slp)
   Compiling abc-rust-error v0.1.0 (/work/chronik/abc-rust-error)
   Compiling chronik-plugin-common v0.1.0 (/work/chronik/chronik-plugin-common)
   Compiling toml v0.8.14
   Compiling chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
   Compiling chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
   Compiling rocksdb v0.21.0
   Compiling chronik-db v0.1.0 (/work/chronik/chronik-db)
    Finished test [unoptimized + debuginfo] target(s) in 4m 44s
     Running unittests src/lib.rs (abc-ci-builds/build-chronik-plugins/cargo/build/debug/deps/chronik_db-a3c26c153718321c)

running 37 tests
test groups::script::tests::test_script_group ... ok
test index_tx::tests::test_tx_num_cache ... ok
test io::block_stats::tests::test_block_stats ... ok
test io::group_utxos::tests::test_value_group_utxos ... ok
test io::group_history::tests::test_value_group_history ... ok
test io::token::tests::test_batch_common::test_batch_cycle ... ok
test io::token::tests::test_batch_common::test_batch_skip_validation ... ok
test io::token::tests::test_batch_common::test_batch_topological_sort ... ok
test io::token::tests::test_batch_burn::test_batch_burn ... ok
test io::token::tests::test_batch_alp::test_batch_alp ... ok
test mem::group_history::tests::test_mempool_group_history ... ok
test mem::group_utxos::tests::test_mempool_group_utxos ... ok
test mem::spent_by::tests::test_mempool_spent_by ... ok
test io::token::tests::test_batch_disconnect_block::test_batch_disconnect ... ok
test io::token::tests::test_batch_genesis::test_batch_genesis_alp ... ok
test io::spent_by::tests::test_spent_by ... ok
test io::token::tests::test_batch_nft::test_batch_slp_nft1 ... ok
test io::token::tests::test_batch_genesis::test_batch_genesis_slp_fungible ... ok
test ser::tests::test_deserialize_err ... ok
test ser::tests::test_deserialize_leftover_err ... ok
test ser::tests::test_err_display_deserialize ... ok
test ser::tests::test_err_display_deserialize_leftover ... ok
test ser::tests::test_err_display_serialize ... ok
test ser::tests::test_roundtrip ... ok
test ser::tests::test_roundtrip_vec ... ok
test io::token::tests::test_batch_vault::test_batch_vault ... ok
test ser::tests::test_serialize_err ... ok
test io::token::tests::test_batch_unknown::test_batch_unknown ... ok
test io::merge::tests::test_catch_merge ... ok
test mem::tokens::tests::test_mempool_tokens ... ok
test reverse_lookup::tests::test_reverse_lookup ... ok
test plugins::io::tests::test_plugin_metas ... ok
test plugins::io::tests::test_plugin_writer ... ok
test index_tx::tests::test_prepare_indexed_txs ... ok
test io::blocks::tests::test_blocks ... ok
test io::txs::tests::test_insert_txs ... ok
test reverse_lookup::tests::test_reverse_lookup_rng ... ok

test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.38s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1
PiRK edited the summary of this revision. (Show Details)
PiRK edited the test plan for this revision. (Show Details)

add functional test, fix checkpoint_height <-> block_height mistake in blocks.rs

PiRK retitled this revision from [chronik] add an optional cp_height query parameters to the block-header endpoint to [chronik] add an optional checkpoint_height query parameters to the block-header endpoint.

Tail of the build log:

    Checking sha1 v0.10.6
    Checking cobs v0.2.3
    Checking utf-8 v0.7.6
    Checking httpdate v1.0.3
    Checking ryu v1.0.17
    Checking data-encoding v2.5.0
    Checking embedded-io v0.4.0
    Checking smallvec v1.13.2
    Checking postcard v1.0.8
    Checking pin-project v1.1.5
    Checking tungstenite v0.21.0
    Checking chronik-plugin-common v0.1.0 (/work/chronik/chronik-plugin-common)
    Checking toml_datetime v0.6.6
   Compiling prost-build v0.11.9
    Checking serde_spanned v0.6.6
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
   Compiling pyo3 v0.22.2
    Checking mime v0.3.17
    Checking seahash v4.1.0
    Checking winnow v0.6.13
    Checking sync_wrapper v0.1.2
    Checking topo_sort v0.4.0
    Checking axum-core v0.4.3
    Checking memoffset v0.9.1
    Checking serde_json v1.0.115
    Checking serde_urlencoded v0.7.1
    Checking futures-executor v0.3.30
    Checking serde_path_to_error v0.1.16
    Checking hyper v1.2.0
    Checking tower v0.4.13
    Checking tokio-tungstenite v0.21.0
    Checking unicode-segmentation v1.11.0
    Checking matchit v0.7.3
    Checking unindent v0.2.3
    Checking base64 v0.21.7
    Checking sync_wrapper v1.0.1
    Checking futures v0.3.30
    Checking tower-http v0.5.2
    Checking hyper-util v0.1.3
    Checking convert_case v0.6.0
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking toml_edit v0.22.14
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.7.5
   Compiling pyo3-macros v0.22.2
    Checking toml v0.8.14
error: missing documentation for a method
  --> chronik/chronik-bridge/src/ffi.rs:10:1
   |
10 | #[cxx::bridge(namespace = "chronik_bridge")]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D missing-docs` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(missing_docs)]`

error: could not compile `chronik-bridge` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1
PiRK edited the summary of this revision. (Show Details)

implement the checkpoint data for the range of headers endpoint as well. TODO: more functional tests, invalidate merkle cache in case of reorrg

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1