Add local blocklist for malfunctioning fee-currencies to miner-worker#202
Merged
Add local blocklist for malfunctioning fee-currencies to miner-worker#202
Conversation
15a7872 to
3019d53
Compare
6d992af to
c51bf0a
Compare
fd752b7 to
b9db7b9
Compare
25314bc to
d57d806
Compare
d57d806 to
c6047db
Compare
Merged
5e1efd7 to
2ab741c
Compare
carterqw2
reviewed
Sep 18, 2024
2bc309d to
407e3d6
Compare
Kourin1996
pushed a commit
that referenced
this pull request
Jul 20, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Jul 21, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Jul 26, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Jul 28, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Jul 30, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Jul 30, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Jul 31, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Jul 31, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Aug 1, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Aug 3, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Aug 4, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Aug 4, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Aug 4, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Aug 5, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests
Kourin1996
pushed a commit
that referenced
this pull request
Aug 5, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
Kourin1996
pushed a commit
that referenced
this pull request
Aug 5, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
Kourin1996
pushed a commit
that referenced
this pull request
Aug 6, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
Kourin1996
pushed a commit
that referenced
this pull request
Aug 7, 2025
…#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
Kourin1996
pushed a commit
that referenced
this pull request
Aug 7, 2025
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
Kourin1996
pushed a commit
that referenced
this pull request
Aug 7, 2025
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
Kourin1996
pushed a commit
that referenced
this pull request
Aug 8, 2025
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
Kourin1996
pushed a commit
that referenced
this pull request
Aug 11, 2025
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
Kourin1996
pushed a commit
that referenced
this pull request
Aug 11, 2025
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
karlb
pushed a commit
that referenced
this pull request
Nov 5, 2025
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
karlb
pushed a commit
that referenced
this pull request
Dec 5, 2025
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
karlb
pushed a commit
that referenced
this pull request
Jan 6, 2026
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
piersy
added a commit
that referenced
this pull request
Jan 17, 2026
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
piersy
added a commit
that referenced
this pull request
Jan 17, 2026
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
piersy
added a commit
that referenced
this pull request
Jan 21, 2026
…iner-worker (#202) * Add FeeCurrencyEVMCall error for credit/debit calls This introduces an internal error that is raised as a consensus error when a fee-currency contract call (DebitFees() or CreditFees()) fails during EVM execution. Note that this does not cause an EVM-execution error within the STF, but an consensus-relevant error. This means that the fee-currency transaction will be computed once, but the state will be reverted and the transaction invalidated, and thus not included in a block. * Refactor allowlist type from list to set * Add address-blocklist struct * Blocklist malfunctioning fee-currencies in miner Fixes #177 This adds a fee-currency temporary blocklist to the Miner. A fee-currency is added to the blocklist, when any fee-currency transaction raises a FeeCurrencyEVMCall error during it's execution. This will exclude the fee-currency from the allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion, even before executing it in the STF. The fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract is not fixed onchain until then, the process above will repeat and the fee-currency will be blocked once again. This limits the amount of free compute that can be induced during the time a malfunctioning fee-currency is active. * Add address-blocklist unit tests Add comment about out-of-gas in sub-calls Not realizing this has cost us a lot of time when investigating a problem right after the L2 migration. So let's leave a comment to remind us of this when if happens again. Closes #346 fee_currencies: Reduce logging (#406) Log in `Trace` severity for fee curries exceeding the intrinsic gas by up to factor two.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #177
This adds a fee-currency temporary blocklist to the miner's worker. A fee-currency is added to the blocklist, when any fee-currency transaction raises a specific
ErrFeeCurrencyEVMCallerror during it's execution.This will exclude the fee-currency from the local allowlist of following blocks, and any transaction using the same fee-currency will not be considered for inclusion before executing it in the STF and thus avoiding to hit the fee-currency EVM call error again.
The
ErrFeeCurrencyEVMCallerror is raised as a consensus error when a fee-currency contract call (DebitFees( )orCreditFees( )) fails during EVM execution. This could be from an out-of-gas due to an unexpected mismatch between the intrinsic gas cost and the actual gas-cost (see #177) or any other EVM error.Note that this error is not raised as a valid EVM-execution error within the STF, but as an consensus-relevant error. This means that the fee-currency transaction's state changes will be computed once, but the state will be reverted and the
transaction invalidated. The transaction will thus not be included in a block and will remain in the txpool.
When the execution error is first detected, the fee-currency will remain blocked for 2 hours. If the fee-currency smart-contract bug is not fixed on-chain until then, the process above will repeat and the fee-currency will be blocked once again.
This limits the amount of free compute that can be induced without paying for gas during the time a malfunctioning fee-currency is active.
The e2e tests for fee-currencies are temporarily skipped for this PR. This is to keep the diff smaller - a follow up PR that adapts and re-enables the tests is lined up #212