Skip to content

Conversation

@bkioshn
Copy link
Contributor

@bkioshn bkioshn commented Dec 1, 2025

Description

Implement quiet timer for doc-sync

Related Issue(s)

This PR covers 3. Keep alive mechanism

Closes #703

Description of Changes

  • Modify the Channel constructor to create timers and start the quiet timer
  • The timer is moved to hermes-ipfs

Related Pull Requests

input-output-hk/catalyst-libs#698

Test

Keepalive failed: Keepalive publish failed indicate that the send_new_keepalive is being sent.
The failure is expected because there is only one node running.

{"timestamp":"2025-12-11T03:44:46.955289671Z","level":"INFO","fields":{"message":"Created Doc Sync Channel: documents"},"target":"hermes::runtime_extensions::hermes::doc_sync::host","filename":"bin/src/runtime_extensions/hermes/doc_sync/host.rs","line_number":138,"threadName":"main","threadId":"ThreadId(1)"}
{"timestamp":"2025-12-11T03:45:25.766862744Z","level":"ERROR","fields":{"message":"pubsub_publish failed: NoPeersSubscribedToTopic","topic":"documents.new"},"target":"hermes::ipfs::task","filename":"bin/src/ipfs/task.rs","line_number":117,"threadId":"ThreadId(6)"}
{"timestamp":"2025-12-11T03:45:25.766928608Z","level":"WARN","fields":{"message":"Keepalive failed: Keepalive publish failed: Errno { code: 12, name: \"pubsub-publish-error\", message: \"Unable to publish to IPFS topic.\" }"},"target":"hermes_ipfs::doc_sync::timers::state","filename":"/home/bkioshn/.cargo/git/checkouts/catalyst-libs-ea5fae4b3770f96d/4885498/rust/hermes-ipfs/src/doc_sync/timers/state.rs","line_number":98,"threadId":"ThreadId(18)"}
{"timestamp":"2025-12-11T03:46:06.464535951Z","level":"ERROR","fields":{"message":"pubsub_publish failed: NoPeersSubscribedToTopic","topic":"documents.new"},"target":"hermes::ipfs::task","filename":"bin/src/ipfs/task.rs","line_number":117,"threadId":"ThreadId(6)"}
{"timestamp":"2025-12-11T03:46:06.464649354Z","level":"WARN","fields":{"message":"Keepalive failed: Keepalive publish failed: Errno { code: 12, name: \"pubsub-publish-error\", message: \"Unable to publish to IPFS topic.\" }"},"target":"hermes_ipfs::doc_sync::timers::state","filename":"/home/bkioshn/.cargo/git/checkouts/catalyst-libs-ea5fae4b3770f96d/4885498/rust/hermes-ipfs/src/doc_sync/timers/state.rs","line_number":98,"threadId":"ThreadId(18)"}
{"timestamp":"2025-12-11T03:46:32.868180449Z","level":"ERROR","fields":{"message":"pubsub_publish failed: NoPeersSubscribedToTopic","topic":"documents.new"},"target":"hermes::ipfs::task","filename":"bin/src/ipfs/task.rs","line_number":117,"threadId":"ThreadId(6)"}
{"timestamp":"2025-12-11T03:46:32.868260179Z","level":"WARN","fields":{"message":"Keepalive failed: Keepalive publish failed: Errno { code: 12, name: \"pubsub-publish-error\", message: \"Unable to publish to IPFS topic.\" }"},"target":"hermes_ipfs::doc_sync::timers::state","filename":"/home/bkioshn/.cargo/git/checkouts/catalyst-libs-ea5fae4b3770f96d/4885498/rust/hermes-ipfs/src/doc_sync/timers/state.rs","line_number":98,"threadId":"ThreadId(18)"}
{"timestamp":"2025-12-11T03:47:00.090811034Z","level":"ERROR","fields":{"message":"pubsub_publish failed: NoPeersSubscribedToTopic","topic":"documents.new"},"target":"hermes::ipfs::task","filename":"bin/src/ipfs/task.rs","line_number":117,"threadId":"ThreadId(6)"}
{"timestamp":"2025-12-11T03:47:00.090876968Z","level":"WARN","fields":{"message":"Keepalive failed: Keepalive publish failed: Errno { code: 12, name: \"pubsub-publish-error\", message: \"Unable to publish to IPFS topic.\" }"},"target":"hermes_ipfs::doc_sync::timers::state","filename":"/home/bkioshn/.cargo/git/checkouts/catalyst-libs-ea5fae4b3770f96d/4885498/rust/hermes-ipfs/src/doc_sync/timers/state.rs","line_number":98,"threadId":"ThreadId(18)"}
{"timestamp":"2025-12-11T03:47:36.1963705Z","level":"ERROR","fields":{"message":"pubsub_publish failed: NoPeersSubscribedToTopic","topic":"documents.new"},"target":"hermes::ipfs::task","filename":"bin/src/ipfs/task.rs","line_number":117,"threadId":"ThreadId(6)"}

NOTE: update the hermes-ipfs after tagging.

Please confirm the following checks

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream module

Base automatically changed from feat/703/new-topic to main December 1, 2025 13:53
@bkioshn bkioshn marked this pull request as draft December 1, 2025 14:02
@aido-mth aido-mth force-pushed the feat/703/new-topic-timer branch from a67bc0a to d5e8a9d Compare December 4, 2025 08:57
@bkioshn bkioshn changed the title wip: implement quiet timer feat(hermes): Implement Timers Dec 8, 2025
@bkioshn bkioshn added the squad: hermetics Hermes Backend, System Development & Integration Team label Dec 10, 2025
@bkioshn bkioshn added this to Catalyst Dec 10, 2025
@bkioshn bkioshn changed the title feat(hermes): Implement Timers feat(hermes): Implement quiet timers Dec 10, 2025
@bkioshn bkioshn moved this from New to 👀 In review in Catalyst Dec 10, 2025
@bkioshn bkioshn marked this pull request as ready for review December 10, 2025 09:11
Signed-off-by: bkioshn <[email protected]>
Signed-off-by: bkioshn <[email protected]>
@bkioshn bkioshn added the review me PR is ready for review label Dec 11, 2025
@github-actions
Copy link

📚 Docs Preview

The docs for this PR can be previewed at the following URL:

https://docs.dev.projectcatalyst.io/hermes/feat/703/new-topic-timer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review me PR is ready for review squad: hermetics Hermes Backend, System Development & Integration Team

Projects

Status: 👀 In review

Development

Successfully merging this pull request may close these issues.

🛠️ [TASK] : .new topic

3 participants