Skip to content
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

Implement Configurable Chunk Rate Limiting #1777

Open
aaronbuchwald opened this issue Nov 13, 2024 · 1 comment
Open

Implement Configurable Chunk Rate Limiting #1777

aaronbuchwald opened this issue Nov 13, 2024 · 1 comment
Assignees
Labels

Comments

@aaronbuchwald
Copy link
Collaborator

aaronbuchwald commented Nov 13, 2024

Overview

Nodes produce chunks with a specified amount of claimed resources. When a block is built from a set of chunks, the aggregate must fit below the required block limits.

Chunks should include the fees.Dimensions consumed by the transactions they have included.

When nodes sign chunks received from a chunk builder, they should apply configurable rate limiting that limits the number of chunks/s, bandwidth consumed by the full chunk, and the fees.Dimensions claimed to be included by the transactions within the chunk.

Details

in ChunkSignatureRequestVerifier[T]::Verify, we want to make sure the following takes place:

  1. Valid signature
  2. The chunk came from the expected person ( todo : what's person ? )
  3. Check that the expiry is valid for the node to sign right now. Don't sign a chunk too far into the future, or in the past )
  4. Does the producer had the right to produce this chunk ?
    a. Are they the a valid chunk producer in this epoch ?
    b. Do I need to rate limit their chunk production at this time ?
  5. What information is needed to perform this verification ?
    a. who sent the chunk.
    b. in order to verify a signature, the verifier must have access to the wrap verification context.
@tsachiherman
Copy link
Contributor

workflow:

  • Chunk builder build a chunk according to a known chunk rate limits
  • When a node sign a chunks, it would validate the rate limits individually
  • When a node assembles a block, it would do so in realization with the block rate limit
  • When a node verifies a block, it would validate the block rate limit

In total, we would have 2 multi dimensional limits : one for the chunk and one for the block.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants