Home / Input Output / hermes
Nov 13, 12-1 AM (0)
Nov 13, 1-2 AM (1)
Nov 13, 2-3 AM (0)
Nov 13, 3-4 AM (0)
Nov 13, 4-5 AM (0)
Nov 13, 5-6 AM (0)
Nov 13, 6-7 AM (2)
Nov 13, 7-8 AM (0)
Nov 13, 8-9 AM (7)
Nov 13, 9-10 AM (0)
Nov 13, 10-11 AM (2)
Nov 13, 11-12 PM (13)
Nov 13, 12-1 PM (1)
Nov 13, 1-2 PM (2)
Nov 13, 2-3 PM (0)
Nov 13, 3-4 PM (0)
Nov 13, 4-5 PM (0)
Nov 13, 5-6 PM (0)
Nov 13, 6-7 PM (0)
Nov 13, 7-8 PM (0)
Nov 13, 8-9 PM (0)
Nov 13, 9-10 PM (0)
Nov 13, 10-11 PM (0)
Nov 13, 11-12 AM (0)
Nov 14, 12-1 AM (0)
Nov 14, 1-2 AM (1)
Nov 14, 2-3 AM (0)
Nov 14, 3-4 AM (0)
Nov 14, 4-5 AM (0)
Nov 14, 5-6 AM (0)
Nov 14, 6-7 AM (0)
Nov 14, 7-8 AM (0)
Nov 14, 8-9 AM (4)
Nov 14, 9-10 AM (1)
Nov 14, 10-11 AM (1)
Nov 14, 11-12 PM (0)
Nov 14, 12-1 PM (2)
Nov 14, 1-2 PM (0)
Nov 14, 2-3 PM (0)
Nov 14, 3-4 PM (0)
Nov 14, 4-5 PM (0)
Nov 14, 5-6 PM (0)
Nov 14, 6-7 PM (0)
Nov 14, 7-8 PM (0)
Nov 14, 8-9 PM (0)
Nov 14, 9-10 PM (0)
Nov 14, 10-11 PM (0)
Nov 14, 11-12 AM (0)
Nov 15, 12-1 AM (0)
Nov 15, 1-2 AM (0)
Nov 15, 2-3 AM (0)
Nov 15, 3-4 AM (0)
Nov 15, 4-5 AM (0)
Nov 15, 5-6 AM (0)
Nov 15, 6-7 AM (0)
Nov 15, 7-8 AM (0)
Nov 15, 8-9 AM (0)
Nov 15, 9-10 AM (0)
Nov 15, 10-11 AM (0)
Nov 15, 11-12 PM (0)
Nov 15, 12-1 PM (0)
Nov 15, 1-2 PM (0)
Nov 15, 2-3 PM (0)
Nov 15, 3-4 PM (0)
Nov 15, 4-5 PM (0)
Nov 15, 5-6 PM (0)
Nov 15, 6-7 PM (0)
Nov 15, 7-8 PM (0)
Nov 15, 8-9 PM (0)
Nov 15, 9-10 PM (0)
Nov 15, 10-11 PM (0)
Nov 15, 11-12 AM (0)
Nov 16, 12-1 AM (0)
Nov 16, 1-2 AM (0)
Nov 16, 2-3 AM (0)
Nov 16, 3-4 AM (0)
Nov 16, 4-5 AM (0)
Nov 16, 5-6 AM (0)
Nov 16, 6-7 AM (0)
Nov 16, 7-8 AM (0)
Nov 16, 8-9 AM (0)
Nov 16, 9-10 AM (0)
Nov 16, 10-11 AM (0)
Nov 16, 11-12 PM (0)
Nov 16, 12-1 PM (0)
Nov 16, 1-2 PM (0)
Nov 16, 2-3 PM (0)
Nov 16, 3-4 PM (0)
Nov 16, 4-5 PM (0)
Nov 16, 5-6 PM (0)
Nov 16, 6-7 PM (0)
Nov 16, 7-8 PM (0)
Nov 16, 8-9 PM (0)
Nov 16, 9-10 PM (0)
Nov 16, 10-11 PM (0)
Nov 16, 11-12 AM (0)
Nov 17, 12-1 AM (0)
Nov 17, 1-2 AM (0)
Nov 17, 2-3 AM (0)
Nov 17, 3-4 AM (0)
Nov 17, 4-5 AM (0)
Nov 17, 5-6 AM (1)
Nov 17, 6-7 AM (0)
Nov 17, 7-8 AM (0)
Nov 17, 8-9 AM (0)
Nov 17, 9-10 AM (1)
Nov 17, 10-11 AM (2)
Nov 17, 11-12 PM (0)
Nov 17, 12-1 PM (0)
Nov 17, 1-2 PM (0)
Nov 17, 2-3 PM (0)
Nov 17, 3-4 PM (0)
Nov 17, 4-5 PM (0)
Nov 17, 5-6 PM (0)
Nov 17, 6-7 PM (0)
Nov 17, 7-8 PM (0)
Nov 17, 8-9 PM (0)
Nov 17, 9-10 PM (1)
Nov 17, 10-11 PM (0)
Nov 17, 11-12 AM (3)
Nov 18, 12-1 AM (0)
Nov 18, 1-2 AM (0)
Nov 18, 2-3 AM (0)
Nov 18, 3-4 AM (0)
Nov 18, 4-5 AM (0)
Nov 18, 5-6 AM (0)
Nov 18, 6-7 AM (0)
Nov 18, 7-8 AM (0)
Nov 18, 8-9 AM (3)
Nov 18, 9-10 AM (2)
Nov 18, 10-11 AM (1)
Nov 18, 11-12 PM (4)
Nov 18, 12-1 PM (5)
Nov 18, 1-2 PM (1)
Nov 18, 2-3 PM (1)
Nov 18, 3-4 PM (0)
Nov 18, 4-5 PM (0)
Nov 18, 5-6 PM (0)
Nov 18, 6-7 PM (3)
Nov 18, 7-8 PM (0)
Nov 18, 8-9 PM (0)
Nov 18, 9-10 PM (0)
Nov 18, 10-11 PM (0)
Nov 18, 11-12 AM (0)
Nov 19, 12-1 AM (0)
Nov 19, 1-2 AM (0)
Nov 19, 2-3 AM (0)
Nov 19, 3-4 AM (0)
Nov 19, 4-5 AM (0)
Nov 19, 5-6 AM (2)
Nov 19, 6-7 AM (2)
Nov 19, 7-8 AM (2)
Nov 19, 8-9 AM (2)
Nov 19, 9-10 AM (7)
Nov 19, 10-11 AM (8)
Nov 19, 11-12 PM (1)
Nov 19, 12-1 PM (6)
Nov 19, 1-2 PM (6)
Nov 19, 2-3 PM (3)
Nov 19, 3-4 PM (0)
Nov 19, 4-5 PM (0)
Nov 19, 5-6 PM (0)
Nov 19, 6-7 PM (0)
Nov 19, 7-8 PM (0)
Nov 19, 8-9 PM (0)
Nov 19, 9-10 PM (0)
Nov 19, 10-11 PM (2)
Nov 19, 11-12 AM (0)
Nov 20, 12-1 AM (0)
106 commits this week Nov 13, 2025 - Nov 20, 2025
fix(clippy): resolve pedantic lint warnings in cardano module
- Change Handle::stop() return type from Result<()> to () since it never fails
- Update stop() call sites to remove error handling
- Replace Ok(_) with Ok(()) for explicit unit pattern matching
- Use &STATE.sync_state instead of .iter() for more concise iteration
- Add backticks around  in documentation
- Simplify match expression formatting in sync_slot_to_point

Resolves clippy::unnecessary_wraps, clippy::ignored_unit_patterns,
clippy::explicit_iter_loop, and clippy::doc_markdown warnings.
fix(clippy): resolve pedantic lint warnings in cardano module
- Change Handle::stop() return type from Result<()> to () since it never fails
- Update stop() call sites to remove error handling
- Replace Ok(_) with Ok(()) for explicit unit pattern matching
- Use &STATE.sync_state instead of .iter() for more concise iteration
- Add backticks around  in documentation
- Simplify match expression formatting in sync_slot_to_point

Resolves clippy::unnecessary_wraps, clippy::ignored_unit_patterns,
clippy::explicit_iter_loop, and clippy::doc_markdown warnings.
fix: remove duplicate function definitions from merge conflict
Removed duplicate code in block.rs that was accidentally kept when
resolving merge conflicts with main branch. The duplicates were:

- get_block_relative: removed non-timeout version (lines 41-44)
- get_tips: removed non-timeout version (lines 76-79)

Preserved the timeout-protected implementations (120s timeout) which
prevent indefinite hangs during shutdown and resource exhaustion.
fix(hermes): Resolved Cardano RTE thread-related issues, corrected bugs, and implemented general improvements while reviewing the codebase (#665)
* use global Tokio runtime

Signed-off-by: bkioshn <[email protected]>

* fix spawn subscribe

Signed-off-by: bkioshn <[email protected]>

* fix sync slot and build block

Signed-off-by: bkioshn <[email protected]>

* fix start slot for rbac

Signed-off-by: bkioshn <[email protected]>

* test: update dep to use ccf-follow-point-0

Signed-off-by: bkioshn <[email protected]>

* update rbac indexer config

Signed-off-by: bkioshn <[email protected]>

* fix linter and format

Signed-off-by: bkioshn <[email protected]>

* update cargo lock

Signed-off-by: bkioshn <[email protected]>

* revert dep change

Signed-off-by: bkioshn <[email protected]>

* handle point 0

Signed-off-by: bkioshn <[email protected]>

* fix rbac get path

Signed-off-by: bkioshn <[email protected]>

---------

Signed-off-by: bkioshn <[email protected]>
fix: use readonly resource access for all read-only operations
Reduces lock contention by using get_app_state_readonly() and
get_object_shared() for all operations that only read resources without
modifying them. This allows unlimited concurrent read access instead of
serializing all operations through exclusive locks.

Operations converted to readonly access:
- Block queries: is_immutable, is_rollback, get_slot, raw, get_fork
- Transaction queries: get_metadata, get_txn_hash, raw
- Network queries: get_block, get_tips, subscribe_block, subscribe_immutable_roll_forward
- SubscriptionId queries: get_network

This is part of the broader deadlock fix that eliminates lock contention
during high-throughput blockchain indexing workloads.
fix: use readonly resource access for all read-only operations
Reduces lock contention by using get_app_state_readonly() and
get_object_shared() for all operations that only read resources without
modifying them. This allows unlimited concurrent read access instead of
serializing all operations through exclusive locks.

Operations converted to readonly access:
- Block queries: is_immutable, is_rollback, get_slot, raw, get_fork
- Transaction queries: get_metadata, get_txn_hash, raw
- Network queries: get_block, get_tips, subscribe_block, subscribe_immutable_roll_forward
- SubscriptionId queries: get_network

This is part of the broader deadlock fix that eliminates lock contention
during high-throughput blockchain indexing workloads.
Merge fix/cardano-rte-thread: combine timeout handling with API improvements
Merges latest changes from fix/cardano-rte-thread while preserving all
deadlock fixes and resource exhaustion protections from fix/deadlocks.

Changes from fix/cardano-rte-thread integrated:
- Simplified resource manager API (get_app_state vs get_app_state_readonly)
- Removed unnecessary .clone() calls (Network is Copy)
- Added normalize_point() helper for Point creation
- Simplified sync_slot_to_point return type (removed Result wrapper)
- ChainFollower API updates (by-value instead of by-reference)

All fix/deadlocks protections preserved:
- Timeout handling in all blocking operations (120s timeout)
- Rate limiting to prevent resource exhaustion (~100 updates/sec)
- DashMap resize deadlock prevention (512K initial capacity)
- Drop handler deadlock fixes (delete_resource_rep_readonly)
- Bounded event queue with backpressure

Resolution strategy:
- Kept timeout logic and error handling from fix/deadlocks
- Adopted cleaner API signatures from fix/cardano-rte-thread
- Combined normalize_point helper with timeout wrapping
- Preserved all comments explaining deadlock mitigations