besu
besu copied to clipboard
Configurable Allow/Reject List in Besu Transaction Pool
Description
As a user, I would like to have an allowlist/reject list for certain types of transactions. Besu should have an aware reject-list where when transactions from certain (configurable) addresses enter my mem pool, I can eject them without much fuss. Or specify a certain allowlist where only transactions from this list are accepted. This can be useful for certain private networks and public networks use pertaining to regulations or ethical concerns.
Acceptance Criteria
Reject List
- User defines a list of addresses that they want to reject from executing.
- Besu's mem-pool receives a transaction from an address on this list.
- Besu's mem-pool ejects the transaction and logs in the console what it has done.
- User does not execute reject list address tx.
Allow List
- User defines a list of addresses from where they are interested in executing transactions.
- Besu's mem-pool receives a transaction from an address on this list.
- Besu's mem-pool executes the transaction.
- User executes accept list address tx.
2a. Besu's mem-pool receives a transaction from an address not on the list. 3a. Besu's mem-pool ejects the transaction outright. 4a. User does not execute transactions not on the allow-list.
@fab-10 does any of the recent tx pool work make this simpler to implement?
not really, and I think it is better to delegate this feature to a plugin, the plugin interface could allow for generic added validation/checks of the tx on top of the standard validation /checks done by default-
@Brindrajsinh-Chauhan are you still working on implementing this as a plugin? We're also actively collecting feedback with the aim to improve docs and devx of the plugin API!
Any interim work/notes/designs might be useful for EIP-7547 so users could write their own censorship detection heuristics.
@Brindrajsinh-Chauhan are you still working on implementing this as a plugin? We're also actively collecting feedback with the aim to improve docs and devx of the plugin API!