Home /
Input Output /
hermes
Jan 17, 9-10 PM (0)
Jan 17, 10-11 PM (0)
Jan 17, 11-12 AM (0)
Jan 18, 12-1 AM (0)
Jan 18, 1-2 AM (0)
Jan 18, 2-3 AM (0)
Jan 18, 3-4 AM (0)
Jan 18, 4-5 AM (0)
Jan 18, 5-6 AM (0)
Jan 18, 6-7 AM (0)
Jan 18, 7-8 AM (0)
Jan 18, 8-9 AM (0)
Jan 18, 9-10 AM (0)
Jan 18, 10-11 AM (0)
Jan 18, 11-12 PM (0)
Jan 18, 12-1 PM (0)
Jan 18, 1-2 PM (0)
Jan 18, 2-3 PM (0)
Jan 18, 3-4 PM (0)
Jan 18, 4-5 PM (0)
Jan 18, 5-6 PM (0)
Jan 18, 6-7 PM (0)
Jan 18, 7-8 PM (0)
Jan 18, 8-9 PM (0)
Jan 18, 9-10 PM (0)
Jan 18, 10-11 PM (0)
Jan 18, 11-12 AM (0)
Jan 19, 12-1 AM (0)
Jan 19, 1-2 AM (2)
Jan 19, 2-3 AM (2)
Jan 19, 3-4 AM (0)
Jan 19, 4-5 AM (0)
Jan 19, 5-6 AM (2)
Jan 19, 6-7 AM (0)
Jan 19, 7-8 AM (0)
Jan 19, 8-9 AM (1)
Jan 19, 9-10 AM (3)
Jan 19, 10-11 AM (0)
Jan 19, 11-12 PM (3)
Jan 19, 12-1 PM (0)
Jan 19, 1-2 PM (0)
Jan 19, 2-3 PM (0)
Jan 19, 3-4 PM (0)
Jan 19, 4-5 PM (0)
Jan 19, 5-6 PM (0)
Jan 19, 6-7 PM (0)
Jan 19, 7-8 PM (0)
Jan 19, 8-9 PM (0)
Jan 19, 9-10 PM (0)
Jan 19, 10-11 PM (0)
Jan 19, 11-12 AM (0)
Jan 20, 12-1 AM (0)
Jan 20, 1-2 AM (0)
Jan 20, 2-3 AM (0)
Jan 20, 3-4 AM (0)
Jan 20, 4-5 AM (0)
Jan 20, 5-6 AM (0)
Jan 20, 6-7 AM (0)
Jan 20, 7-8 AM (1)
Jan 20, 8-9 AM (0)
Jan 20, 9-10 AM (1)
Jan 20, 10-11 AM (0)
Jan 20, 11-12 PM (0)
Jan 20, 12-1 PM (0)
Jan 20, 1-2 PM (0)
Jan 20, 2-3 PM (0)
Jan 20, 3-4 PM (0)
Jan 20, 4-5 PM (0)
Jan 20, 5-6 PM (0)
Jan 20, 6-7 PM (0)
Jan 20, 7-8 PM (0)
Jan 20, 8-9 PM (0)
Jan 20, 9-10 PM (0)
Jan 20, 10-11 PM (0)
Jan 20, 11-12 AM (0)
Jan 21, 12-1 AM (0)
Jan 21, 1-2 AM (0)
Jan 21, 2-3 AM (0)
Jan 21, 3-4 AM (0)
Jan 21, 4-5 AM (0)
Jan 21, 5-6 AM (0)
Jan 21, 6-7 AM (0)
Jan 21, 7-8 AM (0)
Jan 21, 8-9 AM (8)
Jan 21, 9-10 AM (9)
Jan 21, 10-11 AM (5)
Jan 21, 11-12 PM (2)
Jan 21, 12-1 PM (1)
Jan 21, 1-2 PM (0)
Jan 21, 2-3 PM (0)
Jan 21, 3-4 PM (0)
Jan 21, 4-5 PM (0)
Jan 21, 5-6 PM (0)
Jan 21, 6-7 PM (0)
Jan 21, 7-8 PM (0)
Jan 21, 8-9 PM (0)
Jan 21, 9-10 PM (0)
Jan 21, 10-11 PM (0)
Jan 21, 11-12 AM (0)
Jan 22, 12-1 AM (0)
Jan 22, 1-2 AM (0)
Jan 22, 2-3 AM (0)
Jan 22, 3-4 AM (0)
Jan 22, 4-5 AM (0)
Jan 22, 5-6 AM (0)
Jan 22, 6-7 AM (0)
Jan 22, 7-8 AM (0)
Jan 22, 8-9 AM (2)
Jan 22, 9-10 AM (2)
Jan 22, 10-11 AM (1)
Jan 22, 11-12 PM (1)
Jan 22, 12-1 PM (0)
Jan 22, 1-2 PM (1)
Jan 22, 2-3 PM (0)
Jan 22, 3-4 PM (0)
Jan 22, 4-5 PM (0)
Jan 22, 5-6 PM (0)
Jan 22, 6-7 PM (0)
Jan 22, 7-8 PM (0)
Jan 22, 8-9 PM (0)
Jan 22, 9-10 PM (0)
Jan 22, 10-11 PM (0)
Jan 22, 11-12 AM (0)
Jan 23, 12-1 AM (0)
Jan 23, 1-2 AM (0)
Jan 23, 2-3 AM (0)
Jan 23, 3-4 AM (0)
Jan 23, 4-5 AM (0)
Jan 23, 5-6 AM (0)
Jan 23, 6-7 AM (0)
Jan 23, 7-8 AM (0)
Jan 23, 8-9 AM (0)
Jan 23, 9-10 AM (1)
Jan 23, 10-11 AM (2)
Jan 23, 11-12 PM (2)
Jan 23, 12-1 PM (0)
Jan 23, 1-2 PM (0)
Jan 23, 2-3 PM (0)
Jan 23, 3-4 PM (1)
Jan 23, 4-5 PM (0)
Jan 23, 5-6 PM (0)
Jan 23, 6-7 PM (0)
Jan 23, 7-8 PM (0)
Jan 23, 8-9 PM (0)
Jan 23, 9-10 PM (0)
Jan 23, 10-11 PM (0)
Jan 23, 11-12 AM (0)
Jan 24, 12-1 AM (0)
Jan 24, 1-2 AM (0)
Jan 24, 2-3 AM (0)
Jan 24, 3-4 AM (0)
Jan 24, 4-5 AM (0)
Jan 24, 5-6 AM (0)
Jan 24, 6-7 AM (0)
Jan 24, 7-8 AM (0)
Jan 24, 8-9 AM (0)
Jan 24, 9-10 AM (0)
Jan 24, 10-11 AM (0)
Jan 24, 11-12 PM (0)
Jan 24, 12-1 PM (0)
Jan 24, 1-2 PM (0)
Jan 24, 2-3 PM (0)
Jan 24, 3-4 PM (0)
Jan 24, 4-5 PM (0)
Jan 24, 5-6 PM (0)
Jan 24, 6-7 PM (0)
Jan 24, 7-8 PM (0)
Jan 24, 8-9 PM (0)
Jan 24, 9-10 PM (0)
53 commits this week
Jan 17, 2026
-
Jan 24, 2026
feat(hermes): Unsubscribe from ".dif" when the subscription is no longer needed (#775)
* Unsubscribe form IPFS topic is now possible * Satisfy linter * Add changes to api.wit
Unsubscribe form IPFS topic is now possible
Merge branch 'main' into document-scripts
fix(hermes): Add the ability to call `fn hermes_ipfs_subscribe()` from both async and sync contexts (#772)
* 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)
* 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
* use type CID instead of string
Signed-off-by: bkioshn <[email protected]>
* small cleanup
Signed-off-by: bkioshn <[email protected]>
* reverts commit 7043008def62f76ffe75b9bd91350c2cb33f4808
Signed-off-by: bkioshn <[email protected]>
* change cid string to CID
Signed-off-by: bkioshn <[email protected]>
* change ipfs-cid type string to bstr
Signed-off-by: bkioshn <[email protected]>
* revert change
Signed-off-by: bkioshn <[email protected]>
* fix linter
Signed-off-by: bkioshn <[email protected]>
* cleanup task.rs and add comment about unixfs
Signed-off-by: bkioshn <[email protected]>
* cleanup
Signed-off-by: bkioshn <[email protected]>
* hack, add conversion
Signed-off-by: bkioshn <[email protected]>
* fix node 3 connection + log capture
Signed-off-by: bkioshn <[email protected]>
* add log necessary for test
Signed-off-by: bkioshn <[email protected]>
* revert peer docker config
Signed-off-by: bkioshn <[email protected]>
* fix linter
Signed-off-by: bkioshn <[email protected]>
* filter non-empty cid array
Signed-off-by: bkioshn <[email protected]>
* add sqlite3 to dockerfile
Signed-off-by: bkioshn <[email protected]>
* fix response cid format
Signed-off-by: bkioshn <[email protected]>
* add doc sync host log
Signed-off-by: bkioshn <[email protected]>
* add bidirectional-sync and late-join-sync
Signed-off-by: bkioshn <[email protected]>
* add readme
Signed-off-by: bkioshn <[email protected]>
* fix format
Signed-off-by: bkioshn <[email protected]>
* fix linter
Signed-off-by: bkioshn <[email protected]>
* use new implementation of add and get ipfs file
Signed-off-by: bkioshn <[email protected]>
* hermes-ipfs points to branch
Signed-off-by: bkioshn <[email protected]>
* add error to hermes-ipfs wit
Signed-off-by: bkioshn <[email protected]>
* move cbor encode logic
Signed-off-by: bkioshn <[email protected]>
* fix get_ipfs_file
Signed-off-by: bkioshn <[email protected]>
* fix syntax and format
Signed-off-by: bkioshn <[email protected]>
* update hermes-ipfs to 0.0.11
Signed-off-by: bkioshn <[email protected]>
* store cid as text
Signed-off-by: bkioshn <[email protected]>
* debug just
Signed-off-by: bkioshn <[email protected]>
* update function
Signed-off-by: bkioshn <[email protected]>
* Extract `process_broadcasted_cids()`
* Remove lint exceptions
* Update TODO message
* Extract `root` and `count` for reconciliation
* Scaffolding for sending the .syn payload
* Publishing the dummy payload to the `.syn` channel
* Add debug logs
* Pacify Clippy temporarily
* Fix the comment
* Fix connection visualisation
* Pass SMT down to the doc sync message handler
* Handle the incoming keepalive sync message
* Retrieving proper prefixes from the tree
* Simplify type
* Getting a proper SMT state for the payload
* Introduce `DocReconciliation` and `DocReconciliationData`
* Putting data into the Syn payload
* Add `peer_root` and `peer_count` to the syn payload
* Temporarily pass `None` as the receiver of the syn payload
* Subscribe to `.dif` channel when upon starting reconciliation
* Publish a message to `.syn`
* Clean-up
* Restore `process_broadcasted_cids()`
* Move `module_ids` into `TopicMessageContext`
* Clean-up log messages
* Do not fail if there is no data to clean
* Temporarily disable `subscribe_to_diff()`
* Wait until Athena is initialized
* Actually disable the `subscribe_to_diff()`
* Bump `hermes-ipfs`
* Bump `hermes-ipfs`
* Remove patch
* Remove stray todo
* Fix lints
* Fix lints
* Add missing docs
* Fix lints
* Rephrase log message
* Allow subscribing to topic from both `async` and `sync` contexts
* Update topic name
* Fix lints
---------
Signed-off-by: bkioshn <[email protected]>
Co-authored-by: cong-or <[email protected]>
Co-authored-by: bkioshn <[email protected]>
Co-authored-by: bkioshn <[email protected]>
Merge remote-tracking branch 'origin/main' into async_fix
feat(hermes): DocSync reconciliation - publishing the .syn payload (#762)
* 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)
* 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
* use type CID instead of string
Signed-off-by: bkioshn <[email protected]>
* small cleanup
Signed-off-by: bkioshn <[email protected]>
* reverts commit 7043008def62f76ffe75b9bd91350c2cb33f4808
Signed-off-by: bkioshn <[email protected]>
* change cid string to CID
Signed-off-by: bkioshn <[email protected]>
* change ipfs-cid type string to bstr
Signed-off-by: bkioshn <[email protected]>
* revert change
Signed-off-by: bkioshn <[email protected]>
* fix linter
Signed-off-by: bkioshn <[email protected]>
* cleanup task.rs and add comment about unixfs
Signed-off-by: bkioshn <[email protected]>
* cleanup
Signed-off-by: bkioshn <[email protected]>
* hack, add conversion
Signed-off-by: bkioshn <[email protected]>
* fix node 3 connection + log capture
Signed-off-by: bkioshn <[email protected]>
* add log necessary for test
Signed-off-by: bkioshn <[email protected]>
* revert peer docker config
Signed-off-by: bkioshn <[email protected]>
* fix linter
Signed-off-by: bkioshn <[email protected]>
* filter non-empty cid array
Signed-off-by: bkioshn <[email protected]>
* add sqlite3 to dockerfile
Signed-off-by: bkioshn <[email protected]>
* fix response cid format
Signed-off-by: bkioshn <[email protected]>
* add doc sync host log
Signed-off-by: bkioshn <[email protected]>
* add bidirectional-sync and late-join-sync
Signed-off-by: bkioshn <[email protected]>
* add readme
Signed-off-by: bkioshn <[email protected]>
* fix format
Signed-off-by: bkioshn <[email protected]>
* fix linter
Signed-off-by: bkioshn <[email protected]>
* use new implementation of add and get ipfs file
Signed-off-by: bkioshn <[email protected]>
* hermes-ipfs points to branch
Signed-off-by: bkioshn <[email protected]>
* add error to hermes-ipfs wit
Signed-off-by: bkioshn <[email protected]>
* move cbor encode logic
Signed-off-by: bkioshn <[email protected]>
* fix get_ipfs_file
Signed-off-by: bkioshn <[email protected]>
* fix syntax and format
Signed-off-by: bkioshn <[email protected]>
* update hermes-ipfs to 0.0.11
Signed-off-by: bkioshn <[email protected]>
* store cid as text
Signed-off-by: bkioshn <[email protected]>
* debug just
Signed-off-by: bkioshn <[email protected]>
* update function
Signed-off-by: bkioshn <[email protected]>
* Extract `process_broadcasted_cids()`
* Remove lint exceptions
* Update TODO message
* Extract `root` and `count` for reconciliation
* Scaffolding for sending the .syn payload
* Publishing the dummy payload to the `.syn` channel
* Add debug logs
* Pacify Clippy temporarily
* Fix the comment
* Fix connection visualisation
* Pass SMT down to the doc sync message handler
* Handle the incoming keepalive sync message
* Retrieving proper prefixes from the tree
* Simplify type
* Getting a proper SMT state for the payload
* Introduce `DocReconciliation` and `DocReconciliationData`
* Putting data into the Syn payload
* Add `peer_root` and `peer_count` to the syn payload
* Temporarily pass `None` as the receiver of the syn payload
* Subscribe to `.dif` channel when upon starting reconciliation
* Publish a message to `.syn`
* Clean-up
* Restore `process_broadcasted_cids()`
* Move `module_ids` into `TopicMessageContext`
* Clean-up log messages
* Do not fail if there is no data to clean
* Temporarily disable `subscribe_to_diff()`
* Wait until Athena is initialized
* Actually disable the `subscribe_to_diff()`
* Bump `hermes-ipfs`
* Bump `hermes-ipfs`
* Remove patch
* Remove stray todo
* Fix lints
* Fix lints
* Add missing docs
* Fix lints
* Rephrase log message
---------
Signed-off-by: bkioshn <[email protected]>
Co-authored-by: cong-or <[email protected]>
Co-authored-by: bkioshn <[email protected]>
Co-authored-by: bkioshn <[email protected]>
Allow subscribing to topic from both `async` and `sync` contexts
docs(docs): Update architecture docs to reflect current code reality
docs(docs): Records scripts about hermes future work
Merge remote-tracking branch 'origin/main' into doc_reconciliation