Skip to content

feat(sds): adds logic to sweep incoming and outgoing buffers #2280

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 4, 2025

Conversation

adklempner
Copy link
Member

@adklempner adklempner commented Feb 22, 2025

Problem / Description

Per https://rfc.vac.dev/vac/raw/sds/#periodic-incoming-buffer-sweep :

Periodic Incoming Buffer Sweep
The participant MUST periodically check causal dependencies for each message in the incoming buffer. For each message in the incoming buffer:

the participant MAY attempt to retrieve missing dependencies from the Store node (high-availability cache) or other peers.
if all dependencies of a message are met, the participant MUST proceed to deliver the message.
If a message's causal dependencies have failed to be met after a predetermined amount of time, the participant MAY mark them as irretrievably lost.

Periodic Outgoing Buffer Sweep
The participant MUST rebroadcast unacknowledged outgoing messages after a set period. The participant SHOULD use distinct resend periods for unacknowledged and possibly acknowledged messages, prioritizing unacknowledged messages.

Solution

Notes


Checklist

  • Code changes are covered by unit tests.
  • Code changes are covered by e2e tests, if applicable.
  • Dogfooding has been performed, if feasible.
  • A test version has been published, if required.
  • All CI checks pass successfully.

@adklempner adklempner requested a review from a team as a code owner February 22, 2025 01:10
Copy link

github-actions bot commented Feb 22, 2025

size-limit report 📦

Path Size Loading time (3g) Running time (snapdragon) Total time
Waku node 85.21 KB (0%) 1.8 s (0%) 435 ms (+36.01% 🔺) 2.2 s
Waku Simple Light Node 136.22 KB (0%) 2.8 s (0%) 627 ms (+15.09% 🔺) 3.4 s
ECIES encryption 22.92 KB (0%) 459 ms (0%) 159 ms (-34.66% 🔽) 618 ms
Symmetric encryption 22.35 KB (0%) 447 ms (0%) 473 ms (+68.38% 🔺) 920 ms
DNS discovery 70.85 KB (0%) 1.5 s (0%) 351 ms (+31.37% 🔺) 1.8 s
Peer Exchange discovery 71.85 KB (0%) 1.5 s (0%) 342 ms (-11.24% 🔽) 1.8 s
Local Peer Cache Discovery 65.36 KB (0%) 1.4 s (0%) 321 ms (+44.43% 🔺) 1.7 s
Privacy preserving protocols 76.63 KB (0%) 1.6 s (0%) 477 ms (+33.41% 🔺) 2.1 s
Waku Filter 78.3 KB (0%) 1.6 s (0%) 306 ms (-22.64% 🔽) 1.9 s
Waku LightPush 75.75 KB (0%) 1.6 s (0%) 361 ms (-11.9% 🔽) 1.9 s
History retrieval protocols 75.87 KB (0%) 1.6 s (0%) 473 ms (+106.19% 🔺) 2 s
Deterministic Message Hashing 7.33 KB (0%) 147 ms (0%) 43 ms (-27.97% 🔽) 190 ms

@adklempner adklempner force-pushed the feat/sds-buffer-sweep branch from 9c20b6e to f7666a6 Compare March 4, 2025 06:09
@adklempner adklempner merged commit 5b3a256 into master Mar 4, 2025
10 of 11 checks passed
@adklempner adklempner deleted the feat/sds-buffer-sweep branch March 4, 2025 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

sds: Implement periodic maintenance tasks for incoming and outgoing buffers
3 participants