Highlights

Logos Delivery

Messaging API — General Availability

  • [Deliverable] Reliability and scale validation with DST

    • achieved:
      • fix(conf): give logosdeliverynode a node config of its own (#4386).
      • fix(conf): configure the Messaging API from the node CLI — --reliability and --anonymity-level, so a network without Store nodes can run with reliability off (#4389).
      • docs(messaging): document how to run and use Messaging API nodes (#4387).
      • fix(rest): answer 429 with Retry-After when the send queue is full, instead of 500 (#4392).
      • feat(rest): list the messaging subscriptions (#4393).
      • fix(messaging): confirm every propagated send against Store (#4351).
  • [Deliverable] Integrate Rate Limit Manager

    • achieved:
      • Rln id release — a failed proof generation gives its message id back, so a retry reuses it instead of spending a new one the rate limit manager already charged (#4382).
      • closed the remaining issues: Allow initialize rate limit manager (#3838).
  • [Deliverable] Integrate Mix into Messaging API

    • next:
      • Mix replies can fail for senders behind NAT (#4357).

RLN on Logos Blockchain

  • [Deliverable] Implement pluggable RLN membership interface

    • achieved:
      • Rln interfaces — one config surface for both RLN backends, so an operator needs to know nothing about which one is in use (#4338).
  • [Deliverable] Enable RLN in Logos Devnet

    • achieved:
      • fix: message ids able to repeat within same epoch — two proofs sharing a nullifier in one epoch are exactly what recovers a sender’s identity secret (#4366).
      • RLN EVM: persistent message id store — a node restarted mid-epoch no longer reuses ids already carried in proofs it sent (#4385).
      • fix(rln): ignore instead of reject messages with unknown root — an honest peer’s valid message was rejected and its forwarder penalised by gossipsub (#4377).
      • fix(rln): report RLN READY only once a proof can be generated (#4381).

Logos Chat

Chat — Beta

  • [Deliverable] Installation management

    • achieved:
      • build: require chat_module and delivery_module 0.3.0 or later (#79).
      • build: prepare 0.3.0 against chat_module v0.3.0 (#78).
      • build: take the chat module on delivery_module v0.3.0-rc.3 (#77).
      • fix: view defects found in the second 0.3.0 QA (#75).
      • fix: view defects found before the 0.3.0 release (#74).
  • [Deliverable] Implement full identity model

    • achieved:
      • Account: namespace implementation (#294).
      • chore: Account::Context compile time validation (#291).
  • [Deliverable] Stabilize and polish API

    • achieved:
      • feat(sqlite): configure the connection for durability and concurrency (#274).
      • fix: stop aborting on peer input and losing reordered messages (#282).
      • build: require delivery_module 0.3.0 or later (#90).
      • build: prepare 0.3.0 (#89).
      • build: pin delivery_module to v0.3.0-rc.3 (#88).
      • fix: start delivery again on a later init, correct the contract docs (#86).
      • fix: take libchat’s fixes, return readable errors, reopen re-invited groups (#85).
      • fix(group_v2): stop printing to stderr on member removal (#287).
  • [Deliverable] Deliver user-facing chat features

    • achieved:
      • fix: tell the members who stay when a commit removes someone (#292).
      • fix: report Online when delivery’s node has started (#91).

Maintenance

  • achieved:
    • release: changelog for the final v0.39.0 (#4369), adopt nimble 0.26.0 (#4384), bump nim-libp2p to 2.4.0 (#4250).
    • store: reject queries with a time range over 24h (#4349), align query handling with 13/WAKU2-STORE (#4355), fail node setup on an unknown message DB engine (#4361), document the REST pageSize default and cap (rest-api#22).
    • lightpush: push through the node’s own service when it runs one (#4370), cap the request read size (#4378).
    • peers and discovery: count unique peers only on first sighting (#4372), stop serving ENRs not rediscovered within 15 min (#4391), simplify selection and ENR iteration (#4399).
    • config: add content-topic autoshards to subscribeShards (#4373), limit subscribed shards to 60 (#4388), flag deprecated and ignored node options (#4402).
    • robustness: async-signal-safe shutdown handlers (#4354), surface TLS key/cert errors (#4360) and hint PKCS#8 when a TLS key cannot be parsed (#4390), replace raises: [Exception] and bare CatchableError (#4362), replace nested waitFor/runForever with await in chat2 (#4358).
    • tooling and tests: wakucanary checks store-sync and the mix check is fixed (#4396), ignore _created samples in the node metrics log (#4375), pin the sync window in store-sync reconciliation tests (#4367), bind the announced-addresses test to an auto port (#4363), remove a disabled codec-renaming test (#4374).
    • nim-ffi poll model, first merges: #197, #198, #203.
  • next:
    • nim-ffi poll model, rest of the train: #199…#202, #206, #207, plus stop the build when two names share a name id (#210).
    • fix(rest): fail a static-topic relay publish when nothing is relayed (#4408).
    • allow pluggable nim-libp2p (#4341)
    • Fix the dead CLI config field for storeSync (#4133).