hiero-ledger / hiero-ledger/hiero-consensus-node
Maintain per-node throttles on each individual node
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
Each individual node maintains its own throttle. On Ingest, this is the only throttle that is used (each node throttles its own intake of new transactions). Each node also uses a throttle during `handle` and if the aggregate of all transactions from all nodes exceeds some percent of this throttle, then congestion pricing kicks in.
What we should also do, is have each node keep track of the throttles in a deterministic way *in state* based on transactions per consensus time, such that each node knows what the throttle count is for each other node. In this way, if any one node is exceeding its throttle limits (with a grace period / burst period 2x of the normal burst period settings), then the transaction is rejected and the node pays, since it failed in due-diligence.
Contributor guide
Research direction
Start by tracing the existing throttle handling for Ingest and handle, then inspect how consensus state records transactions per consensus time. Define how deterministic per-node throttle counts and the 2x grace or burst period should be represented and enforced. Done means every node can identify another node exceeding its limit and reject the transaction with the specified payer behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100