Skip to content

Rate limiting on client sync state #1805

@TomasArrachea

Description

@TomasArrachea

While benchmarking the web client's sync state against a local node with a seeded store, the rate limiting default values cause the sync to fail:

Caused by:
    0: grpc request failed for get_notes_by_id: request was rate-limited or the node's resources are exhausted; retry after a delay
    1: code: 'Some resource has been exhausted', message: "Too Many Requests! Wait for 0s"

Setting the node with more relaxed rate limiting allows the sync to complete successfully.

This might differ on testnet due to the network latency on each request. Anyway, we might want to check these values considering the normal client behaviour, or perhaps we should introduce a backoff on the client side to avoid being rate limited, thus making the sync slower.


To reproduce it:

On the node side (use branch tomasarrachea-seed-store-consume-notes):

  1. Start the seeded node:
cargo run --release --bin miden-node-stress-test -- seed-collector --data-directory ./data --num-blocks 200

cargo run --release --bin miden-node -- bundled start --data-directory ./data --rpc.url http://localhost:57291
  1. Check the seeded account id:
cat data/accounts.txt

On the client side (branch tomasarrachea-sync-benchmark):

  1. Run the client benchmark against that account:
cargo run --release -p miden-client-bench -- sync --account-id <ACCOUNT_ID>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions