refactor: extend BlockRefMeta and use on the other drivers (#1006)
Home /
TxPipe /
dolos
May 22, 3-4 PM (0)
May 22, 4-5 PM (0)
May 22, 5-6 PM (0)
May 22, 6-7 PM (0)
May 22, 7-8 PM (1)
May 22, 8-9 PM (0)
May 22, 9-10 PM (0)
May 22, 10-11 PM (0)
May 22, 11-12 AM (0)
May 23, 12-1 AM (0)
May 23, 1-2 AM (0)
May 23, 2-3 AM (0)
May 23, 3-4 AM (0)
May 23, 4-5 AM (0)
May 23, 5-6 AM (0)
May 23, 6-7 AM (0)
May 23, 7-8 AM (0)
May 23, 8-9 AM (0)
May 23, 9-10 AM (0)
May 23, 10-11 AM (0)
May 23, 11-12 PM (0)
May 23, 12-1 PM (0)
May 23, 1-2 PM (0)
May 23, 2-3 PM (0)
May 23, 3-4 PM (0)
May 23, 4-5 PM (0)
May 23, 5-6 PM (0)
May 23, 6-7 PM (0)
May 23, 7-8 PM (0)
May 23, 8-9 PM (0)
May 23, 9-10 PM (0)
May 23, 10-11 PM (0)
May 23, 11-12 AM (0)
May 24, 12-1 AM (0)
May 24, 1-2 AM (0)
May 24, 2-3 AM (0)
May 24, 3-4 AM (0)
May 24, 4-5 AM (0)
May 24, 5-6 AM (0)
May 24, 6-7 AM (0)
May 24, 7-8 AM (0)
May 24, 8-9 AM (0)
May 24, 9-10 AM (0)
May 24, 10-11 AM (0)
May 24, 11-12 PM (0)
May 24, 12-1 PM (0)
May 24, 1-2 PM (0)
May 24, 2-3 PM (0)
May 24, 3-4 PM (0)
May 24, 4-5 PM (0)
May 24, 5-6 PM (0)
May 24, 6-7 PM (0)
May 24, 7-8 PM (2)
May 24, 8-9 PM (0)
May 24, 9-10 PM (0)
May 24, 10-11 PM (0)
May 24, 11-12 AM (0)
May 25, 12-1 AM (0)
May 25, 1-2 AM (0)
May 25, 2-3 AM (0)
May 25, 3-4 AM (0)
May 25, 4-5 AM (0)
May 25, 5-6 AM (0)
May 25, 6-7 AM (0)
May 25, 7-8 AM (0)
May 25, 8-9 AM (0)
May 25, 9-10 AM (0)
May 25, 10-11 AM (0)
May 25, 11-12 PM (0)
May 25, 12-1 PM (0)
May 25, 1-2 PM (0)
May 25, 2-3 PM (0)
May 25, 3-4 PM (0)
May 25, 4-5 PM (0)
May 25, 5-6 PM (0)
May 25, 6-7 PM (0)
May 25, 7-8 PM (0)
May 25, 8-9 PM (0)
May 25, 9-10 PM (0)
May 25, 10-11 PM (0)
May 25, 11-12 AM (0)
May 26, 12-1 AM (0)
May 26, 1-2 AM (0)
May 26, 2-3 AM (0)
May 26, 3-4 AM (0)
May 26, 4-5 AM (0)
May 26, 5-6 AM (0)
May 26, 6-7 AM (0)
May 26, 7-8 AM (0)
May 26, 8-9 AM (0)
May 26, 9-10 AM (0)
May 26, 10-11 AM (0)
May 26, 11-12 PM (0)
May 26, 12-1 PM (0)
May 26, 1-2 PM (0)
May 26, 2-3 PM (0)
May 26, 3-4 PM (0)
May 26, 4-5 PM (0)
May 26, 5-6 PM (0)
May 26, 6-7 PM (0)
May 26, 7-8 PM (0)
May 26, 8-9 PM (0)
May 26, 9-10 PM (0)
May 26, 10-11 PM (0)
May 26, 11-12 AM (0)
May 27, 12-1 AM (0)
May 27, 1-2 AM (0)
May 27, 2-3 AM (0)
May 27, 3-4 AM (0)
May 27, 4-5 AM (0)
May 27, 5-6 AM (0)
May 27, 6-7 AM (0)
May 27, 7-8 AM (0)
May 27, 8-9 AM (0)
May 27, 9-10 AM (0)
May 27, 10-11 AM (0)
May 27, 11-12 PM (0)
May 27, 12-1 PM (0)
May 27, 1-2 PM (1)
May 27, 2-3 PM (0)
May 27, 3-4 PM (0)
May 27, 4-5 PM (0)
May 27, 5-6 PM (1)
May 27, 6-7 PM (0)
May 27, 7-8 PM (1)
May 27, 8-9 PM (0)
May 27, 9-10 PM (0)
May 27, 10-11 PM (0)
May 27, 11-12 AM (0)
May 28, 12-1 AM (0)
May 28, 1-2 AM (0)
May 28, 2-3 AM (0)
May 28, 3-4 AM (0)
May 28, 4-5 AM (0)
May 28, 5-6 AM (0)
May 28, 6-7 AM (0)
May 28, 7-8 AM (0)
May 28, 8-9 AM (0)
May 28, 9-10 AM (1)
May 28, 10-11 AM (0)
May 28, 11-12 PM (0)
May 28, 12-1 PM (2)
May 28, 1-2 PM (0)
May 28, 2-3 PM (0)
May 28, 3-4 PM (0)
May 28, 4-5 PM (0)
May 28, 5-6 PM (0)
May 28, 6-7 PM (4)
May 28, 7-8 PM (6)
May 28, 8-9 PM (2)
May 28, 9-10 PM (0)
May 28, 10-11 PM (0)
May 28, 11-12 AM (0)
May 29, 12-1 AM (0)
May 29, 1-2 AM (0)
May 29, 2-3 AM (0)
May 29, 3-4 AM (0)
May 29, 4-5 AM (0)
May 29, 5-6 AM (0)
May 29, 6-7 AM (0)
May 29, 7-8 AM (0)
May 29, 8-9 AM (0)
May 29, 9-10 AM (0)
May 29, 10-11 AM (0)
May 29, 11-12 PM (0)
May 29, 12-1 PM (0)
May 29, 1-2 PM (0)
May 29, 2-3 PM (0)
May 29, 3-4 PM (0)
21 commits this week
May 22, 2026
-
May 29, 2026
fix(cli): shutdown databases before export (#1005)
chore(minibf): Upgrade blockfrost crate to 0.1.88 (#1002)
Merge branch 'main' of github.com:txpipe/dolos into chore/update-blockfrost-crate
Merge branch 'main' of github.com:txpipe/dolos into fix/close-dbs-before-export
Merge branch 'main' of github.com:txpipe/dolos into chore/refactor-blockrefmeta-usage
fix: use Waker::noop() to satisfy clippy::manual_noop_waker (#1004)
Merge branch 'main' of github.com:txpipe/dolos into fix/close-dbs-before-export
chore(refactor): Extend BlockRefMeta and use on the other drivers
fix: Shutdown databases before export
fix(testing): use Waker::noop() to satisfy clippy::manual_noop_waker
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
fix(u5c): convert ChainPoint/BlockRef timestamp from seconds to ms (#1003)
fix(grpc): convert ChainPoint/BlockRef timestamp from seconds to ms
fix(u5c): populate block_ref in AnyUtxoData via block_by_tx_hash (#1000)
fix(grpc): convert ChainPoint/BlockRef timestamp from seconds to ms
chore(minibf): Upgrade blockfrost crate to 0.1.88
chore(docs): Add performance subsection on operations section
feat(minibf): add optional base_path configuration
Adds an optional `base_path` field to `MinibfConfig` that nests all minibf routes (including `/health` and `/metrics`) under a configurable path prefix. Set to `/api/v0` for full Blockfrost OpenAPI compliance; when omitted, routes remain at the root (no behavioral change). Invalid values (empty, just `/`, missing leading `/`, or containing `*`) return a new `ServeError::ConfigError` variant instead of panicking.
feat(minibf): add optional base_path configuration
Adds an optional `base_path` field to `MinibfConfig` that nests all minibf routes (including `/health` and `/metrics`) under a configurable path prefix. Set to `/api/v0` for full Blockfrost OpenAPI compliance; when omitted, routes remain at the root (no behavioral change). Invalid values (empty, just `/`, missing leading `/`, or containing `*`) return a new `ServeError::ConfigError` variant instead of panicking.
refactor(grpc): dedupe block_ref lookup, hoist era summary, fix double decode
Addresses review feedback on the per-UTxO block_ref population added in the previous commit: - Introduce `AsyncQueryFacade::block_meta_by_tx_hash` returning chain-point metadata (`BlockRefMeta`) decoded once inside the blocking task. Eliminates the redundant `MultiEraBlock::decode` previously performed in the gRPC caller. (review A-01) - Hoist `load_era_summary` to the request handler scope via a new shared `serve::grpc::block_refs` module. Previously `get_slot_timestamp` reloaded the era summary from state on every UTxO; now it runs once per request. (review A-02) - Deduplicate block lookups by source tx hash. A `search_utxos` page whose UTxOs cluster on M unique txs now does M lookups instead of N. (review A-03) - Propagate storage failures as `Status::internal` instead of swallowing them. Block-decode failures (indicating archive corruption) degrade to `debug!` rather than per-UTxO `warn!` log spam. (review A-04, A-05) - Extract the entire flow into `serve::grpc::block_refs::fetch_block_refs`, shared by both v1alpha and v1beta. Each version maps the chain-agnostic `BlockRefData` to its own proto-specific `ChainPoint` via a tiny `to_chain_point` helper. (review A-06) `into_u5c_utxo` now takes the pre-resolved `Option<ChainPoint>` as a parameter rather than performing its own lookup, keeping the per-UTxO path cheap. Tests deferred: no harness exists for `read_utxos`/`search_utxos`. The `minibf::TestDomainBuilder` pattern can seed a `ToyDomain` via `import_blocks`, and `FaultyToyDomain` covers error branches — happy to add unit tests if maintainers prefer them in-PR.