besu icon indicating copy to clipboard operation
besu copied to clipboard

Configurable Allow/Reject List in Besu Transaction Pool

Open non-fungible-nelson opened this issue 1 year ago • 7 comments

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

  1. User defines a list of addresses that they want to reject from executing.
  2. Besu's mem-pool receives a transaction from an address on this list.
  3. Besu's mem-pool ejects the transaction and logs in the console what it has done.
  4. User does not execute reject list address tx.

Allow List

  1. User defines a list of addresses from where they are interested in executing transactions.
  2. Besu's mem-pool receives a transaction from an address on this list.
  3. Besu's mem-pool executes the transaction.
  4. 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.

non-fungible-nelson avatar Mar 20 '23 15:03 non-fungible-nelson

@fab-10 does any of the recent tx pool work make this simpler to implement?

non-fungible-nelson avatar May 19 '23 16:05 non-fungible-nelson

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-

fab-10 avatar May 23 '23 09:05 fab-10

@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!

macfarla avatar Mar 20 '24 00:03 macfarla

Any interim work/notes/designs might be useful for EIP-7547 so users could write their own censorship detection heuristics.

jflo avatar Mar 20 '24 14:03 jflo

@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!

macfarla avatar Apr 24 '24 01:04 macfarla