celestiaorg / celestiaorg/celestia-node

feat(shrex): client side throttling

Open
#2,186 2 comments 2 reactions 0 assignees View on GitHub
area:p2p area:shares kind:feat
Dominant language
Go
Stars
996
Forks
1.1k
Avg merge
1d 6h
Merged PRs (30d)
34

Description

### Implementation ideas

Currently for historical sampling, shrex client uses peers found by the discovery module. The default amount of peers found by discovery is 5 and those peers are random peers from the network that advertise themselves as full nodes. Historical sampling is controlled by DASer that tries to utilize full bandwidth of the node by taking advantage of multiple parallel workers. Some of the found peers could be slow or lazy (_do not respond with data and just hang until timeout_). The higher the proportion of bad peers, the more load is put on good ones. This could lead to very high load from single client to good full node and hit the rate limiting on server side.

One of the things that could help with shrex stability is client side throttling, that would limit amount of parallel request sent to same peer. Such safety feature could be done inside peer-manager.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.