Home / Input Output / hermes
Dec 09, 3-4 AM (0)
Dec 09, 4-5 AM (0)
Dec 09, 5-6 AM (0)
Dec 09, 6-7 AM (0)
Dec 09, 7-8 AM (0)
Dec 09, 8-9 AM (0)
Dec 09, 9-10 AM (1)
Dec 09, 10-11 AM (0)
Dec 09, 11-12 PM (0)
Dec 09, 12-1 PM (0)
Dec 09, 1-2 PM (1)
Dec 09, 2-3 PM (0)
Dec 09, 3-4 PM (0)
Dec 09, 4-5 PM (0)
Dec 09, 5-6 PM (0)
Dec 09, 6-7 PM (0)
Dec 09, 7-8 PM (0)
Dec 09, 8-9 PM (0)
Dec 09, 9-10 PM (2)
Dec 09, 10-11 PM (0)
Dec 09, 11-12 AM (1)
Dec 10, 12-1 AM (0)
Dec 10, 1-2 AM (0)
Dec 10, 2-3 AM (0)
Dec 10, 3-4 AM (0)
Dec 10, 4-5 AM (0)
Dec 10, 5-6 AM (1)
Dec 10, 6-7 AM (2)
Dec 10, 7-8 AM (2)
Dec 10, 8-9 AM (1)
Dec 10, 9-10 AM (0)
Dec 10, 10-11 AM (1)
Dec 10, 11-12 PM (0)
Dec 10, 12-1 PM (1)
Dec 10, 1-2 PM (0)
Dec 10, 2-3 PM (0)
Dec 10, 3-4 PM (0)
Dec 10, 4-5 PM (2)
Dec 10, 5-6 PM (0)
Dec 10, 6-7 PM (0)
Dec 10, 7-8 PM (0)
Dec 10, 8-9 PM (0)
Dec 10, 9-10 PM (0)
Dec 10, 10-11 PM (2)
Dec 10, 11-12 AM (0)
Dec 11, 12-1 AM (1)
Dec 11, 1-2 AM (0)
Dec 11, 2-3 AM (0)
Dec 11, 3-4 AM (0)
Dec 11, 4-5 AM (0)
Dec 11, 5-6 AM (0)
Dec 11, 6-7 AM (0)
Dec 11, 7-8 AM (0)
Dec 11, 8-9 AM (0)
Dec 11, 9-10 AM (1)
Dec 11, 10-11 AM (2)
Dec 11, 11-12 PM (3)
Dec 11, 12-1 PM (0)
Dec 11, 1-2 PM (0)
Dec 11, 2-3 PM (0)
Dec 11, 3-4 PM (0)
Dec 11, 4-5 PM (0)
Dec 11, 5-6 PM (0)
Dec 11, 6-7 PM (0)
Dec 11, 7-8 PM (0)
Dec 11, 8-9 PM (0)
Dec 11, 9-10 PM (0)
Dec 11, 10-11 PM (0)
Dec 11, 11-12 AM (0)
Dec 12, 12-1 AM (0)
Dec 12, 1-2 AM (0)
Dec 12, 2-3 AM (0)
Dec 12, 3-4 AM (0)
Dec 12, 4-5 AM (0)
Dec 12, 5-6 AM (0)
Dec 12, 6-7 AM (0)
Dec 12, 7-8 AM (0)
Dec 12, 8-9 AM (0)
Dec 12, 9-10 AM (0)
Dec 12, 10-11 AM (0)
Dec 12, 11-12 PM (0)
Dec 12, 12-1 PM (0)
Dec 12, 1-2 PM (0)
Dec 12, 2-3 PM (0)
Dec 12, 3-4 PM (0)
Dec 12, 4-5 PM (0)
Dec 12, 5-6 PM (0)
Dec 12, 6-7 PM (0)
Dec 12, 7-8 PM (0)
Dec 12, 8-9 PM (0)
Dec 12, 9-10 PM (0)
Dec 12, 10-11 PM (0)
Dec 12, 11-12 AM (0)
Dec 13, 12-1 AM (0)
Dec 13, 1-2 AM (0)
Dec 13, 2-3 AM (0)
Dec 13, 3-4 AM (0)
Dec 13, 4-5 AM (0)
Dec 13, 5-6 AM (0)
Dec 13, 6-7 AM (0)
Dec 13, 7-8 AM (0)
Dec 13, 8-9 AM (0)
Dec 13, 9-10 AM (0)
Dec 13, 10-11 AM (0)
Dec 13, 11-12 PM (0)
Dec 13, 12-1 PM (0)
Dec 13, 1-2 PM (0)
Dec 13, 2-3 PM (0)
Dec 13, 3-4 PM (0)
Dec 13, 4-5 PM (0)
Dec 13, 5-6 PM (0)
Dec 13, 6-7 PM (0)
Dec 13, 7-8 PM (0)
Dec 13, 8-9 PM (0)
Dec 13, 9-10 PM (0)
Dec 13, 10-11 PM (0)
Dec 13, 11-12 AM (0)
Dec 14, 12-1 AM (0)
Dec 14, 1-2 AM (0)
Dec 14, 2-3 AM (0)
Dec 14, 3-4 AM (0)
Dec 14, 4-5 AM (0)
Dec 14, 5-6 AM (0)
Dec 14, 6-7 AM (0)
Dec 14, 7-8 AM (0)
Dec 14, 8-9 AM (0)
Dec 14, 9-10 AM (0)
Dec 14, 10-11 AM (0)
Dec 14, 11-12 PM (0)
Dec 14, 12-1 PM (0)
Dec 14, 1-2 PM (0)
Dec 14, 2-3 PM (0)
Dec 14, 3-4 PM (0)
Dec 14, 4-5 PM (0)
Dec 14, 5-6 PM (0)
Dec 14, 6-7 PM (0)
Dec 14, 7-8 PM (0)
Dec 14, 8-9 PM (0)
Dec 14, 9-10 PM (0)
Dec 14, 10-11 PM (0)
Dec 14, 11-12 AM (0)
Dec 15, 12-1 AM (0)
Dec 15, 1-2 AM (0)
Dec 15, 2-3 AM (0)
Dec 15, 3-4 AM (0)
Dec 15, 4-5 AM (0)
Dec 15, 5-6 AM (0)
Dec 15, 6-7 AM (0)
Dec 15, 7-8 AM (0)
Dec 15, 8-9 AM (0)
Dec 15, 9-10 AM (0)
Dec 15, 10-11 AM (0)
Dec 15, 11-12 PM (5)
Dec 15, 12-1 PM (4)
Dec 15, 1-2 PM (8)
Dec 15, 2-3 PM (2)
Dec 15, 3-4 PM (0)
Dec 15, 4-5 PM (4)
Dec 15, 5-6 PM (0)
Dec 15, 6-7 PM (0)
Dec 15, 7-8 PM (0)
Dec 15, 8-9 PM (0)
Dec 15, 9-10 PM (0)
Dec 15, 10-11 PM (0)
Dec 15, 11-12 AM (0)
Dec 16, 12-1 AM (0)
Dec 16, 1-2 AM (0)
Dec 16, 2-3 AM (0)
Dec 16, 3-4 AM (0)
47 commits this week Dec 09, 2025 - Dec 16, 2025
docs: improve clarity and fix clippy warnings
  - Explain mesh_n, bootstrap peers (DNS analogy), and 5-step post workflow
  - Fix confusing DHT log: need 2+ waiting for ourselves to appear
  - Add backticks around PubSub and function names (clippy doc-markdown)
  - Simplify TROUBLESHOOTING reset (quickstart handles rebuilds)
  - Clarify quickstart uses existing binaries (run just build-all after code changes)
docs: improve clarity of P2P networking comments
  - Explain mesh_n parameter and its effect on Gossipsub operations
  - Add TL;DR sections to bootstrap discovery and PubSub warnings
  - Clarify cross-platform builds (cargo vs Earthly) and GLIBC compatibility
  - Add DNS analogy for bootstrap peers concept
  - List explicit 5-step post document workflow
  - Explain logging levels (debug = P2P diagnostics, info = app events)
docs: improve clarity of P2P networking comments
  - Explain mesh_n parameter and its effect on Gossipsub operations
  - Add TL;DR sections to bootstrap discovery and PubSub warnings
  - Clarify cross-platform builds (cargo vs Earthly) and GLIBC compatibility
  - Add DNS analogy for bootstrap peers concept
  - List explicit 5-step post document workflow
  - Explain logging levels (debug = P2P diagnostics, info = app events)
docs(p2p-testing): add custom test examples and fix ANSI color output
  - Add Writing Custom Tests section with examples (connectivity, resilience, throughput)
  - Include template and best practices for extending justfile tests
  - Fix ANSI escape codes not rendering (add -e flag to echo commands)
  - Note: proper API testing framework planned when endpoints finalized
docs(ipfs): add conceptual comments for P2P architecture and PubSub constraints
  - Explain what bootstrap peers are and their role in network formation
  - Document retry strategy for bootstrap connections
  - Add critical warning: public IPFS nodes cannot be used for Hermes PubSub
  - Explain why DHT server mode is required for Gossipsub mesh formation
  - Document auto-subscription strategy to avoid cold start problem

  Emphasizes the key constraint that Gossipsub requires custom Hermes bootstrap
  peers since public IPFS nodes don't subscribe to application-specific topics.
docs(ipfs): add conceptual comments for P2P architecture and PubSub constraints
  - Explain what bootstrap peers are and their role in network formation
  - Document retry strategy for bootstrap connections
  - Add critical warning: public IPFS nodes cannot be used for Hermes PubSub
  - Explain why DHT server mode is required for Gossipsub mesh formation
  - Document auto-subscription strategy to avoid cold start problem

  Emphasizes the key constraint that Gossipsub requires custom Hermes bootstrap
  peers since public IPFS nodes don't subscribe to application-specific topics.
refactor(ipfs): extract helper functions and eliminate hardcoded values
  - Add env_var_or() helper to eliminate duplicate env var parsing
  - Extract configure_listening_address() and connect_to_bootstrap_peers() from init()
  - Extract constants: IPFS_DATA_DIR, KEYPAIR_FILENAME, DEFAULT_APP_NAME, DEFAULT_MESH_TOPIC
  - Simplify retry_bootstrap_connections() with early returns and cleaner logic
refactor: eliminate hardcoded values and code duplication
  - Extract MESSAGE_PREVIEW_MAX_LEN constant and create format_message_preview() helper
  - Make IPFS listen port configurable via IPFS_LISTEN_PORT env var (default: 4001)
  - Make retry settings configurable via IPFS_RETRY_INTERVAL_SECS and IPFS_MAX_RETRIES
  - Document exponential backoff strategy for DHT provider queries

  Improves maintainability and configurability without changing behavior.
docs(p2p-testing): enhance clarity and add cross-platform support
  - Add TL;DR quickstart and fast restart workflows
  - Auto-detect platform for builds (Linux cargo, Mac/Windows Earthly)
  - Fix non-existent command references and outdated line numbers
  - Add comprehensive inline comments to docker-compose
  - Expand bootstrap peer discovery docs for production deployment
docs(p2p): improve docs clarity and add cross-platform build auto-detection
  - Restructure README with TL;DR for minimal cognitive load
  - Add comprehensive comments to docker-compose.yml and Dockerfile
  - Auto-detect platform in build commands (Linux uses cargo, Mac/Windows uses Earthly)
  - Fix outdated references and broken commands
  - Add fast restart workflow documentation
  - Add GitHub Actions integration TODOs
docs(p2p): improve documentation accuracy and usability
  Restructure README with TL;DR and fast restart workflows. Fix outdated
  command references (dashboard, test-pubsub-core) and clarify prerequisites
  (Rust toolchain, not Earthly). Remove duplicate entries and confusing
  peer ID examples. Add TODOs for GitHub Actions integration.

  Next task: integrate CI workflow into GitHub Actions runners for automated PR testing.
refactor(p2p): Make test-pubsub test actual propagation and add millisecond timing
  Update test-pubsub to publish messages and verify reception on all nodes (minimal output for CI), matching test-pubsub-propagation functionality. Remove redundant test-pubsub-core
  command.

  Improve timing precision from seconds to milliseconds using date +%s%3N, showing actual sub-second propagation delays (0.234s instead of 0s) in visualization and final status.
refactor(p2p): Simplify testing infrastructure by removing redundant commands
   Remove dashboard and health-check commands (~195 lines) since test-pubsub-propagation
   already validates all necessary functionality (nodes running status, mesh connectivity
   via message propagation, gossipsub activity via successful delivery, end-to-end P2P).

   Fix HTTP endpoint health check to include required Host header for Hermes gateway.