feat(hermes): add new document to smt
Home /
Input Output /
hermes
Dec 18, 3-4 AM (0)
Dec 18, 4-5 AM (0)
Dec 18, 5-6 AM (0)
Dec 18, 6-7 AM (0)
Dec 18, 7-8 AM (0)
Dec 18, 8-9 AM (0)
Dec 18, 9-10 AM (0)
Dec 18, 10-11 AM (2)
Dec 18, 11-12 PM (1)
Dec 18, 12-1 PM (0)
Dec 18, 1-2 PM (0)
Dec 18, 2-3 PM (0)
Dec 18, 3-4 PM (0)
Dec 18, 4-5 PM (0)
Dec 18, 5-6 PM (0)
Dec 18, 6-7 PM (0)
Dec 18, 7-8 PM (0)
Dec 18, 8-9 PM (0)
Dec 18, 9-10 PM (0)
Dec 18, 10-11 PM (0)
Dec 18, 11-12 AM (0)
Dec 19, 12-1 AM (0)
Dec 19, 1-2 AM (1)
Dec 19, 2-3 AM (0)
Dec 19, 3-4 AM (0)
Dec 19, 4-5 AM (0)
Dec 19, 5-6 AM (0)
Dec 19, 6-7 AM (0)
Dec 19, 7-8 AM (0)
Dec 19, 8-9 AM (0)
Dec 19, 9-10 AM (1)
Dec 19, 10-11 AM (0)
Dec 19, 11-12 PM (0)
Dec 19, 12-1 PM (0)
Dec 19, 1-2 PM (0)
Dec 19, 2-3 PM (0)
Dec 19, 3-4 PM (0)
Dec 19, 4-5 PM (0)
Dec 19, 5-6 PM (0)
Dec 19, 6-7 PM (0)
Dec 19, 7-8 PM (0)
Dec 19, 8-9 PM (0)
Dec 19, 9-10 PM (0)
Dec 19, 10-11 PM (0)
Dec 19, 11-12 AM (0)
Dec 20, 12-1 AM (0)
Dec 20, 1-2 AM (0)
Dec 20, 2-3 AM (0)
Dec 20, 3-4 AM (0)
Dec 20, 4-5 AM (0)
Dec 20, 5-6 AM (0)
Dec 20, 6-7 AM (0)
Dec 20, 7-8 AM (0)
Dec 20, 8-9 AM (0)
Dec 20, 9-10 AM (0)
Dec 20, 10-11 AM (0)
Dec 20, 11-12 PM (0)
Dec 20, 12-1 PM (0)
Dec 20, 1-2 PM (0)
Dec 20, 2-3 PM (0)
Dec 20, 3-4 PM (0)
Dec 20, 4-5 PM (0)
Dec 20, 5-6 PM (0)
Dec 20, 6-7 PM (0)
Dec 20, 7-8 PM (0)
Dec 20, 8-9 PM (0)
Dec 20, 9-10 PM (0)
Dec 20, 10-11 PM (0)
Dec 20, 11-12 AM (0)
Dec 21, 12-1 AM (0)
Dec 21, 1-2 AM (0)
Dec 21, 2-3 AM (0)
Dec 21, 3-4 AM (0)
Dec 21, 4-5 AM (0)
Dec 21, 5-6 AM (0)
Dec 21, 6-7 AM (0)
Dec 21, 7-8 AM (0)
Dec 21, 8-9 AM (0)
Dec 21, 9-10 AM (0)
Dec 21, 10-11 AM (0)
Dec 21, 11-12 PM (0)
Dec 21, 12-1 PM (0)
Dec 21, 1-2 PM (0)
Dec 21, 2-3 PM (0)
Dec 21, 3-4 PM (0)
Dec 21, 4-5 PM (0)
Dec 21, 5-6 PM (1)
Dec 21, 6-7 PM (0)
Dec 21, 7-8 PM (0)
Dec 21, 8-9 PM (0)
Dec 21, 9-10 PM (0)
Dec 21, 10-11 PM (0)
Dec 21, 11-12 AM (5)
Dec 22, 12-1 AM (0)
Dec 22, 1-2 AM (0)
Dec 22, 2-3 AM (0)
Dec 22, 3-4 AM (0)
Dec 22, 4-5 AM (1)
Dec 22, 5-6 AM (0)
Dec 22, 6-7 AM (1)
Dec 22, 7-8 AM (1)
Dec 22, 8-9 AM (3)
Dec 22, 9-10 AM (0)
Dec 22, 10-11 AM (0)
Dec 22, 11-12 PM (0)
Dec 22, 12-1 PM (0)
Dec 22, 1-2 PM (0)
Dec 22, 2-3 PM (0)
Dec 22, 3-4 PM (0)
Dec 22, 4-5 PM (0)
Dec 22, 5-6 PM (0)
Dec 22, 6-7 PM (0)
Dec 22, 7-8 PM (0)
Dec 22, 8-9 PM (0)
Dec 22, 9-10 PM (0)
Dec 22, 10-11 PM (0)
Dec 22, 11-12 AM (0)
Dec 23, 12-1 AM (0)
Dec 23, 1-2 AM (0)
Dec 23, 2-3 AM (0)
Dec 23, 3-4 AM (0)
Dec 23, 4-5 AM (0)
Dec 23, 5-6 AM (0)
Dec 23, 6-7 AM (0)
Dec 23, 7-8 AM (1)
Dec 23, 8-9 AM (0)
Dec 23, 9-10 AM (0)
Dec 23, 10-11 AM (0)
Dec 23, 11-12 PM (1)
Dec 23, 12-1 PM (0)
Dec 23, 1-2 PM (0)
Dec 23, 2-3 PM (0)
Dec 23, 3-4 PM (0)
Dec 23, 4-5 PM (0)
Dec 23, 5-6 PM (0)
Dec 23, 6-7 PM (0)
Dec 23, 7-8 PM (0)
Dec 23, 8-9 PM (0)
Dec 23, 9-10 PM (0)
Dec 23, 10-11 PM (0)
Dec 23, 11-12 AM (1)
Dec 24, 12-1 AM (0)
Dec 24, 1-2 AM (0)
Dec 24, 2-3 AM (0)
Dec 24, 3-4 AM (0)
Dec 24, 4-5 AM (0)
Dec 24, 5-6 AM (0)
Dec 24, 6-7 AM (1)
Dec 24, 7-8 AM (1)
Dec 24, 8-9 AM (1)
Dec 24, 9-10 AM (0)
Dec 24, 10-11 AM (1)
Dec 24, 11-12 PM (0)
Dec 24, 12-1 PM (4)
Dec 24, 1-2 PM (1)
Dec 24, 2-3 PM (0)
Dec 24, 3-4 PM (0)
Dec 24, 4-5 PM (0)
Dec 24, 5-6 PM (0)
Dec 24, 6-7 PM (0)
Dec 24, 7-8 PM (0)
Dec 24, 8-9 PM (0)
Dec 24, 9-10 PM (0)
Dec 24, 10-11 PM (0)
Dec 24, 11-12 AM (0)
Dec 25, 12-1 AM (0)
Dec 25, 1-2 AM (0)
Dec 25, 2-3 AM (0)
Dec 25, 3-4 AM (0)
29 commits this week
Dec 18, 2025
-
Dec 25, 2025
fix linter
Signed-off-by: bkioshn <[email protected]>
Merge branch 'main' into fix/doc-sync-p2p-propagation
Signed-off-by: bkioshn <[email protected]>
revert change
Signed-off-by: bkioshn <[email protected]>
change ipfs-cid type string to bstr
Signed-off-by: bkioshn <[email protected]>
feat(hermes): use cid instead of string
change cid string to CID
Signed-off-by: bkioshn <[email protected]>
reverts commit 7043008def62f76ffe75b9bd91350c2cb33f4808
Signed-off-by: bkioshn <[email protected]>
small cleanup
Signed-off-by: bkioshn <[email protected]>
feat(hermes): Implement quiet timers (#707)
* wip: implement quiet timer Signed-off-by: bkioshn <[email protected]> * feat(hermes): implement timers and their spawning * modify timer state Signed-off-by: bkioshn <[email protected]> * update doc sync channel state Signed-off-by: bkioshn <[email protected]> * remove timers and move to cat lib Signed-off-by: bkioshn <[email protected]> * update doc sync host Signed-off-by: bkioshn <[email protected]> * try branch feat/doc-sync-timers for hermes-ipfs Signed-off-by: bkioshn <[email protected]> * rename Signed-off-by: bkioshn <[email protected]> * cargo lock Signed-off-by: bkioshn <[email protected]> * add hermes-ipfs version Signed-off-by: bkioshn <[email protected]> * fix merge conflict Signed-off-by: bkioshn <[email protected]> * bump hermes-ipfs to v0.0.10 Signed-off-by: bkioshn <[email protected]> * properly implement .new msg keepalive Signed-off-by: bkioshn <[email protected]> --------- Signed-off-by: bkioshn <[email protected]> Co-authored-by: Uladzislau Borbut <[email protected]>
use type CID instead of string
Signed-off-by: bkioshn <[email protected]>
properly implement .new msg keepalive
Signed-off-by: bkioshn <[email protected]>
Merge branch 'main' into feat/703/new-topic-timer
Merge branch 'main' into fix/doc-sync-p2p-propagation
bump ci to 3.6.10 (#733)
Signed-off-by: bkioshn <[email protected]>
bump ci to 3.6.10
Signed-off-by: bkioshn <[email protected]>
chore(catalyst-ci): Update catalyst-ci to v3.6.10
bump hermes-ipfs to v0.0.10
Signed-off-by: bkioshn <[email protected]>
fix(hermes): make doc-sync PubSub handler non-blocking with async file operations
The doc_sync_topic_message_handler was blocking the PubSub event loop by using
blocking_send/blocking_recv for IPFS file operations, preventing new messages
from being processed while fetching content.
Changes:
- Add file_get_async() and file_pin_async() methods in ipfs/mod.rs that use
send().await instead of blocking_send()
- Update doc_sync_topic_message_handler() in ipfs/task.rs to spawn async task
with tokio::spawn() for file operations
- Add RECEIVED PubSub message with CID logging for test detection
- Fix test-pubsub-propagation in p2p-testing/justfile to properly detect
message reception using wc -l instead of grep -q
Result:
- PubSub handler no longer blocks - can process new messages while previous
content is still being fetched
- test-pubsub-propagation now passes with 100% success rate (5/5 nodes)
- Resolves doc-sync P2P message propagation issue
fix(hermes): make doc-sync PubSub handler non-blocking with async file operations
The doc_sync_topic_message_handler was blocking the PubSub event loop by using
blocking_send/blocking_recv for IPFS file operations, preventing new messages
from being processed while fetching content.
Changes:
- Add file_get_async() and file_pin_async() methods in ipfs/mod.rs that use
send().await instead of blocking_send()
- Update doc_sync_topic_message_handler() in ipfs/task.rs to spawn async task
with tokio::spawn() for file operations
- Add RECEIVED PubSub message with CID logging for test detection
- Fix test-pubsub-propagation in p2p-testing/justfile to properly detect
message reception using wc -l instead of grep -q
Result:
- PubSub handler no longer blocks - can process new messages while previous
content is still being fetched
- test-pubsub-propagation now passes with 100% success rate (5/5 nodes)
- Resolves doc-sync P2P message propagation issue
fix(hermes): make doc-sync PubSub handler non-blocking with async file operations
The doc_sync_topic_message_handler was blocking the PubSub event loop by using
blocking_send/blocking_recv for IPFS file operations, preventing new messages
from being processed while fetching content.
Changes:
- Add file_get_async() and file_pin_async() methods in ipfs/mod.rs that use
send().await instead of blocking_send()
- Update doc_sync_topic_message_handler() in ipfs/task.rs to spawn async task
with tokio::spawn() for file operations
- Add RECEIVED PubSub message with CID logging for test detection
- Fix test-pubsub-propagation in p2p-testing/justfile to properly detect
message reception using wc -l instead of grep -q
Result:
- PubSub handler no longer blocks - can process new messages while previous
content is still being fetched
- test-pubsub-propagation now passes with 100% success rate (5/5 nodes)
- Resolves doc-sync P2P message propagation issue
fix(hermes): make doc-sync PubSub handler non-blocking with async file operations
The doc_sync_topic_message_handler was blocking the PubSub event loop by using
blocking_send/blocking_recv for IPFS file operations, preventing new messages
from being processed while fetching content.
Changes:
- Add file_get_async() and file_pin_async() methods in ipfs/mod.rs that use
send().await instead of blocking_send()
- Update doc_sync_topic_message_handler() in ipfs/task.rs to spawn async task
with tokio::spawn() for file operations
- Add RECEIVED PubSub message with CID logging for test detection
- Fix test-pubsub-propagation in p2p-testing/justfile to properly detect
message reception using wc -l instead of grep -q
Result:
- PubSub handler no longer blocks - can process new messages while previous
content is still being fetched
- test-pubsub-propagation now passes with 100% success rate (5/5 nodes)
- Resolves doc-sync P2P message propagation issue
fix(hermes): make doc-sync PubSub handler non-blocking with async file operations
The doc_sync_topic_message_handler was blocking the PubSub event loop by using
blocking_send/blocking_recv for IPFS file operations, preventing new messages
from being processed while fetching content.
Changes:
- Add file_get_async() and file_pin_async() methods in ipfs/mod.rs that use
send().await instead of blocking_send()
- Update doc_sync_topic_message_handler() in ipfs/task.rs to spawn async task
with tokio::spawn() for file operations
- Add RECEIVED PubSub message with CID logging for test detection
- Fix test-pubsub-propagation in p2p-testing/justfile to properly detect
message reception using wc -l instead of grep -q
Result:
- PubSub handler no longer blocks - can process new messages while previous
content is still being fetched
- test-pubsub-propagation now passes with 100% success rate (5/5 nodes)
- Resolves doc-sync P2P message propagation issue
fix(hermes): doc-sync P2P message format and subscription conflicts
WHAT THIS FIXES:
- CID format: Use dag-cbor codec (0x51) instead of dag-pb (0x70) for protocol compliance
- Message encoding: Publish CBOR-encoded payload::New with CID lists instead of raw document bytes
- Subscription conflict: Remove auto-subscription that prevented doc-sync module from subscribing
CHANGES:
- hermes/bin/src/runtime_extensions/hermes/doc_sync/host.rs:
* Import minicbor crate directly (not via cardano_chain_follower)
* Compute both dag-pb CID (storage) and dag-cbor CID (protocol) in add_file()
* Construct proper payload::New structure in publish()
* Encode to CBOR before publishing to PubSub
- hermes/bin/src/ipfs/mod.rs:
* Remove auto-subscription to documents.new during bootstrap
* Prevents subscription kind conflicts with doc-sync module
- hermes/bin/src/ipfs/task.rs:
* Add extensive documentation of blocking operations issue
* Document root cause and recommended async solution
REMAINING ISSUE:
P2P propagation still fails due to blocking operations in async context.
The doc_sync_topic_message_handler (added in 944360f3) calls file_pin()
and file_get() which use blocking_send()/blocking_recv(). This causes
deadlock when called from async PubSub handler.
NEXT STEPS:
Convert file_pin() and file_get() to async versions. See detailed
implementation guide in task.rs comments (lines 354-374).
TEST:
cd p2p-testing && just test-pubsub-propagation
Currently FAILS with No Propagation due to blocking operations issue.
Will PASS once async conversion is complete.
Related: #691 (introduced blocking operations bug)
chore(catalyst-ci): Update catalyst-ci to v3.6.9