Add fee cap for transactions submitted via RPC. #1137
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR description
This PR adds a new CLI option that enables the user to define the maximum fees (gas price) accepted for transactions submitted via RPC(
eth_sendRawTransaction
).Changes summary
--rpc-tx-feecap
command line flag.TransactionPool.addLocalTransaction
method: performs an additional check to verify if transaction fees don't exceed user defined fee cap (if cap is set to 0 then it is ignored and means no cap).Testing
Unit tests
Command line
BesuCommandTest.transactionPoolTxFeeCap
: Assert that specified CLI flag value is used (different from default).BesuCommandTest.invalidTansactionPoolTxFeeCapShouldFail
: Assert that invalid value causes an error with proper message.Transaction pool
TransactionPoolTest.shouldIgnoreFeeCapIfSetZero
: Assert that no fee cap is applied if set to 0.TransactionPoolTest.shouldRejectLocalTransactionIfFeeCapExceeded
: Assert that local transaction is rejected ifgasPrice
is higher than defined fee cap.Manual tests
Steps
Besu
with--rpc-tx-feecap=2000000000000000005
nonce
set to1
andgasPrice
set to2000000000000000005
nonce
set to2
andgasPrice
set to2000000000000000006
Results
First transaction is accepted.
Seconds transaction is rejected with response:
Signed-off-by: Abdelhamid Bakhta abdelhamid.bakhta@consensys.net