nuts-foundation / nuts-foundation/nuts-node

DAG synchronization fails when pages are too large

Open
#1,299 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
28
Forks
23
Avg merge
1d 10h
Merged PRs (30d)
76

Description

connection.go#registerStream(...) sets the maximum outbox size per gRPC stream/connection to 20. This is problematic in transaction range requests when a single page of the DAG needs to be chunked in more than 20 messages.

The peer will drop everything after the fist 20 messages. The node's range request will start at the same LC and only receive the same 20 messages over and over.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at connection.go#registerStream(...) and trace the transaction range request path. Reproduce with a DAG page that requires more than 20 gRPC messages; done means the peer delivers the complete page and the request advances rather than repeating the same 20 messages.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems, networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.