10 Commits

Author SHA1 Message Date
Prem Chaitanya Prathi
b78a2c5da0
chore: pin full June-green dependency manifest
Single-dep pinning was whack-a-mole: after chronos and httputils, a
third floating transitive dep broke template expansion inside pinned
libp2p 2.0.0 rendezvous code (sequtils gensym collision). Pin the
complete package set the last green docker image (PR #3807, Jun 2026)
resolved, extracted from that run's CI log. Verified locally:
wakunode2 builds clean against exactly these versions.

This block is a stand-in lockfile; drop it when a real lockfile
returns or the code is updated for current upstreams.
2026-08-10 19:01:19 +05:30
Prem Chaitanya Prathi
23a9f870f9
chore: pin httputils 0.4.1 alongside chronos 4.2.2
httputils 0.5.0 changed HttpCode such that chronos 4.2.2's httpclient
no longer compiles ('selector must be of an ordinal type' at
httpclient.nim:934). Pin the pair the June green image resolved.
2026-08-10 18:45:08 +05:30
Prem Chaitanya Prathi
a876f87f63
chore: pin chronos to 4.2.2 to unbreak wakunode2 build
chronos 4.4.0 (resolved by the floating >= 4.2.0 requirement since the
lockfile removal) introduced stricter effect checking that rejects the
long-standing waitFor in rest_api/endpoint/relay/handlers.nim:191 with
'illegal effect: NestedPoll'. The last green docker image (PR #3807,
June 2026) resolved chronos 4.2.2; pin that until the handler is
reworked for chronos >= 4.4.
2026-08-10 18:32:48 +05:30
Prem Chaitanya Prathi
291dd91ebc
chore: bump mix-rln-spam-protection-plugin for proof lifecycle metrics
Points at feat/proof-gen-metrics-testnet tip (a5cb0d6): the Prometheus
metrics for RLN proof generation/verification, rejection reasons,
partial-proof-cache usage and group size, cherry-picked onto the
libp2p v2.0.0-compatible plugin line so the nim-libp2p-mix 50c4ab4
diamond pin stays collapsed.

Nodes are built with -d:metrics already; the new mix_rln_* series
appear on the existing /metrics endpoint with no further wiring.
2026-08-10 16:11:16 +05:30
Prem Chaitanya Prathi
920c2a9ad7
chore(mix): use MixRlnSpamProtection.new constructor, bump plugin pin
Rename the call site to the typedesc constructor
MixRlnSpamProtection.new (was newMixRlnSpamProtection) to match
nim-libp2p conventions, and bump the mix-rln-spam-protection-plugin
pin to 61ee3e5 which provides the renamed constructor.
2026-06-22 14:20:58 +05:30
Prem Chaitanya Prathi
bd65c116bb
feat(mix): DoS protection + libp2p v2.0.0 + stateless RLN + tests (rebased onto #3935)
Squash of 13 commits from feat/mix-dos-protection-libp2p-v2.0.0 onto the
logos_delivery/ folder-restructure base from #3935 (build-messaging-folder).

Original commit history (squashed):
- d8e6dcef feat(mix): integrate mix protocol with extended kademlia + RLN spam protection
- fb72f18d refactor(mix): split DoS-protection self-registration into background retry
- d8bbef0c feat(mix): bump libp2p stack to v2.0.0 + adopt stateless RLN spam protection
- 2f24448a fix(tests): use HmacDrbgContext.new() instead of crypto.newRng()
- 5a21455c fix(ci): regen nimble.lock for v2.0.0 + disambiguate rng in wakucore
- 03ef02a2 fix(tests): wrap HmacDrbgContext via newBearSslRng for libp2p v2.0.0
- 167ab1df fix(nix): regenerate deps.nix from updated nimble.lock
- 97a27222 fix(tests): wrap or pass Rng correctly for 3-arg PrivateKey.random
- 5561fcb5 fix(tests): replace removed newStandardSwitch with SwitchBuilder
- ba39ee4a fix(tests): libp2p v2.0.0 API migrations across test suite
- 328e11df fix: gitignore test binaries + remove accidentally-committed binary
- cc712444 fix(tests): more v2.0.0 API migrations (rng template, PeerId.random, etc.)
- 412d97a9 fix(tests): unblock CI — nph, excise orphan waku_noise, complete v2.0.0 Rng migration

Conflict resolutions (#3935 → ours):
- 11 import-path migrations: waku/X → logos_delivery/waku/X
- waku_node/waku_node/relay.nim: dropped our `registerRelayHandler` proc
  (relocated to subscription_manager.nim by #3935; see cascade fix below)
- factory/builder.nim: combined both sides' new imports (net_config + waku_switch)
- factory/conf_builder/mix_conf_builder.nim: libp2p_mix package (not libp2p/protocols/mix)
- waku_mix/protocol.nim: combined paths + our mix_rln_spam_protection/relay/nimchronos imports
- 3 test files: dropped noise_utils import (replicates noise excision from original PR)
- 2 UA file moves: option_shims.nim and waku_mix_coordination.nim added at new paths

Cascade fixes (#3935 lost our work, restored):
- subscription_manager.nim: added `mixHandler` to #3935's `registerRelayHandler`,
  and added `waku_mix` to its imports. Without this, mix messages were silently
  dropped from the relay handler chain.
- config.nims: option_shims auto-import path migrated to logos_delivery/...

Validation:
- nph check on all 82 staged .nim files: clean (0 reformats needed)
- wakunode2 build: exit 0, 38 MB binary
- (sim PASS confirmed in earlier identical-state run: 5/5 mix init,
  5 RLN proofs gen/verify, 0 errors)

Backup tag at original tip: backup/3931-pre-3935-rebase (412d97a9).
2026-06-22 14:20:58 +05:30
Darshan
7e98489a24
feat: wire ReliabilityManager into the Reliable Channel (#3942) 2026-06-16 10:40:59 +05:30
Fabiana Cecin
6837ae0c1f
feat: bump nim-libp2p to v2.0.0 (#3929)
* bump nim-libp2p pin to v2.0.0 tag
* bump json_rpc to v0.6.1, lsquic to v0.5.1, boringssl to v0.0.8 (latest tags)
* add libp2p_mix dep; repoint libp2p/protocols/mix -> libp2p_mix
* pin nimble.lock: websock / protobuf_serialization / npeg / jwt
* Makefile: add -d:libp2p_quic_support
* regenerate nix/deps.nix (adds libp2p_mix, refreshes pins)
* migrate rng ref HmacDrbgContext -> libp2p Rng across prod/channels/tests (interface-only; same DRBG)
* waku_switch: TransportConfig factory; unified 2.0.0 connection limits (withMaxInOut, withMaxConnections); local MaxConnections
* waku_relay/rendezvous/discv5/kademlia: v2.0.0 API (rng, config, ServiceDiscovery rename)
* call Service.setup() on post-build switch services (2.0.0 split setup/start)
* drop libp2p/utils/semaphore -> chronos AsyncSemaphore
* add logos_delivery/waku/compat/option_valueor shim (Option[T] valueOr/withValue, dropped upstream)
* add std/options where a transitive re-export was removed
* add newStandardSwitch shim (libp2p removed it in 2.0.0); mounts yamux+mplex to match prod muxer
* PeerId.random(rng); common.rng()/crypto.newRng(); hoist shared rng (instantiation cleanup)
* update expectations for 2.0.0 defaults: DEFAULT_PROTOCOLS += /ipfs/id/push/1.0.0; agent "nim-libp2p"
* drop relay reboot/reconnect test (asserted a Switch restart capability that is simply not supported)
* fix up a few tests that were flaking on MacOS (libp2p upgrade may have exposed these)
2026-06-15 09:56:15 -03:00
Ivan FB
54c890856f
feat: unify libs into a single liblogosdelivery (#3949) 2026-06-15 13:03:44 +02:00
Ivan FB
3b03ca29b1
refactor: introduce proper logos_delivery layers folder structure (#3935)
Co-authored-by: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com>
2026-06-08 13:37:53 +02:00