Skip to content

Introduce a gas-based Storage limit per tx#1142

Merged
boundless-forest merged 49 commits intopolkadot-evm:masterfrom
moonbeam-foundation:ahmad-add-storage-limit-per-tx
Dec 11, 2024
Merged

Introduce a gas-based Storage limit per tx#1142
boundless-forest merged 49 commits intopolkadot-evm:masterfrom
moonbeam-foundation:ahmad-add-storage-limit-per-tx

Conversation

@ahmadkaouk
Copy link
Copy Markdown
Contributor

@ahmadkaouk ahmadkaouk commented Aug 4, 2023

Introduction

This pull request tackles the challenge of unsustainable storage growth in our blockchain, a complex issue constrained by the Evm gasometer's ability to record only gas usage. Storage growth refers to the new storage added on-chain after an execution. Without control, this can lead to storage congestions.

Approach: Introduce a gas-based Storage limit

The proposed solution tackles the problem of unsustainable storage growth within blockchains by introducing a concept of mapping storage to gas. By translating bytes into gas units and setting a storage limit per transaction, it establishes a flexible and effective control mechanism. The proposed solution maintains the existing behaviour of the EVM gasometer. It introduces controls for storage growth without altering the core gas tracking system within the EVM.

The core of this approach revolves around the definition of a ratio that encapsulates the relationship between storage growth (in bytes) and gas. For example:

  • RATIO = BLOCK_GAS_LIMIT / BLOCK_STORAGE_LIMIT

Once this ratio is established, we can further define a transaction-wide storage growth limit:

  • TX_STORAGE_LIMIT = TX_GAS_LIMIT / RATIO

The storage growth is dynamically monitored throughout the execution of the transaction. Each time the EVM steps into an opcode, the corresponding storage growth is calculated and recorded. Should the recorded storage growth exceed the pre-established TX_STORAGE_LIMIT, the transaction will trigger an OutOfGas error.

Example

Given:

  • BLOCK_GAS_LIMIT = 15,000,000 (Maximum gas per block)
  • BLOCK_STORAGE_LIMIT = 40 * 1024 bytes (40 KB per block)

The ratio between gas and storage is:

  • RATIO = BLOCK_GAS_LIMIT / BLOCK_STORAGE_LIMIT = 15,000,000 / (40 * 1024) ≈ 366

For a transaction with TX_GAS_LIMIT = 1,000,000, the storage limit is:

  • TX_STORAGE_LIMIT = TX_GAS_LIMIT / RATIO = 1,000,000 / 366 ≈ 2,732 bytes

Changes Introduced

The following changes are introduced to address storage growth within the EVM:

  • Introducing GasLimitStorageGrowthRatio: A new configurable parameter in pallet-evm, defining the ratio of gas to storage. It serves to control the mapping of storage growth to gas. When set to 0, it disables recording the storage growth.
  • Introducing StorageMeter: An utility struct within SubstrateStackState to track and manage storage growth during execution.
  • Storage Recording Mechanism: targets specific EVM opcodes that modify storage: CREATE, CREATE2, and SSTORE:
    • For SSTORE, Storage growth is recorded during pre-execution in record_external_dynamic_opcode_cost, which is called from pre_validate in the executor (that is per each evm runtime step).
    • For CREATE and CREATE2, since the bytecode size to be stored is unknown before execution, recording occurs in record_external_operation during execution, specifically in cleanup_for_create before storing the contract bytecode.
  • Gas Computation: On Post-execution, storage growth is translated into gas, and the charge is applied based on the greater value between this computed gas and the legacy gas from the EVM gasometer.

ahmadkaouk and others added 2 commits November 21, 2023 11:28
Co-authored-by: Qinxuan Chen <koushiro.cqx@gmail.com>
@crystalin
Copy link
Copy Markdown
Collaborator

@sorpaas We would like to merge this PR as we are cherry-picking it every release.
We could resolve the conflicts but I want to make sure this could be merged soon and tht all comments have been addressed before

@boundless-forest
Copy link
Copy Markdown
Collaborator

Please merge the master, and I'll review and merge it later. @crystalin

@ahmadkaouk
Copy link
Copy Markdown
Contributor Author

@boundless-forest I merged to master. PR is ready to be reviewed and merged

Copy link
Copy Markdown
Collaborator

@boundless-forest boundless-forest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one comment, LGTM

@boundless-forest boundless-forest merged commit b9b1c62 into polkadot-evm:master Dec 11, 2024
l0r1s pushed a commit to opentensor/frontier that referenced this pull request May 19, 2025
* A new trait for recording foreign metrics

* Remove Metric trait

* rename BasicMetric to Metric

* add unit tests and a new MetricError enum

* Add ProofSizeMeter

* Add ProofSizeMeter to WeightInfo

* formatting

* Add RefTimeMeter to WeightInfo

* add storage meter to WeightInfo

* rename metric to resource

* code refactor

* remove unused functions

* make clippy happy

* minor improvements

* rename meter to resource

* compute new storage created by SSTORE

* revert changes

* compute storage growth for opcodes

* compute the storage quota per tx

* pin evm temporarily

* record storage growth for opcodes

* update GAS_LIMIT_STORAGE_GROWTH_RATIO for tests

* add support to record storage growth for precompiles

* fix tests

* fix formatting

* fix storage growth parameters for tests

* add rust integration tests

* fix typo

* fix recording storage growth of a special use case of SSTORE

* use saturating add

* minor improvements

* add license to meter.rs

* fix clippy warnings

* pin evm to master

* update evm to the latest commit

* check limit exceedance before updating the usage

* Use BtreeSet

* add support for storage growth in precompiles

* clippy warnings

* update to evm 0.41.0

* Update Cargo.toml

Co-authored-by: Qinxuan Chen <koushiro.cqx@gmail.com>

* update Cargo.lock

* format

* fix tests

* update license information in meter.rs to Apache-2.0

---------

Co-authored-by: Qinxuan Chen <koushiro.cqx@gmail.com>
dnjscksdn98 added a commit to bifrost-platform/bifrost-node that referenced this pull request Jul 29, 2025
alstjd0921 pushed a commit to bifrost-platform/bifrost-node that referenced this pull request Sep 10, 2025
alstjd0921 added a commit to bifrost-platform/bifrost-node that referenced this pull request Sep 10, 2025
* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
alstjd0921 added a commit to bifrost-platform/bifrost-node that referenced this pull request Sep 10, 2025
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* fix: correctly use mocha with tsx (#133)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
alstjd0921 added a commit to bifrost-platform/bifrost-node that referenced this pull request Sep 11, 2025
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* fix: correctly use mocha with tsx (#133)

* chore: version (#134)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
evm-dragonmm3 added a commit to evm-dragonmm3/bifrost-node that referenced this pull request Dec 10, 2025
* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
evm-dragonmm3 added a commit to evm-dragonmm3/bifrost-node that referenced this pull request Dec 10, 2025
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* fix: correctly use mocha with tsx (#133)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
evm-dragonmm3 added a commit to evm-dragonmm3/bifrost-node that referenced this pull request Dec 10, 2025
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* fix: correctly use mocha with tsx (#133)

* chore: version (#134)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
emersonrazor added a commit to emersonrazor/bifrost-node that referenced this pull request Mar 19, 2026
* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
emersonrazor added a commit to emersonrazor/bifrost-node that referenced this pull request Mar 19, 2026
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* fix: correctly use mocha with tsx (#133)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
emersonrazor added a commit to emersonrazor/bifrost-node that referenced this pull request Mar 19, 2026
* Node 161 pectra update (#126)

* NODE-161, deps: update to stable2503

* NODE-161, fix: node: Replace TxPool RPC with Frontier implementation #moonbeam-foundation/moonbeam#3218

* NODE-161, fix: runtime: Fix weight limits in evm tracing runtimes (moonbeam-foundation/moonbeam#3210)

* NODE-161, deps: update Cargo

* NODE-161, fix: Use DecodeWithMemTracking (paritytech/polkadot-sdk#7360)

* NODE-161, feat: runtime: upgrade to EIP-7702 new APIs

* NODE-161, Introduce a gas-based Storage limit per tx (polkadot-evm/frontier#1142), Support external account provider (polkadot-evm/frontier#1329)

* NODE-161, fix: remove sc_transaction_pool

* NODE-161, fix: add missing crates

* NODE-161, fix: resolve typo

* NODE-161, fix: remove Paramter

* NODE-161, feat: Allow whitleisting contract deployer (polkadot-evm/frontier#1629)

* NODE-161, feat: Update Treasury to Support Relay Chain Block Number Provider (paritytech/polkadot-sdk#3970)

* NODE-161, feat: [Identity] Decouple usernames from identities (paritytech/polkadot-sdk#5554)

* NODE-161, feat: Collective: dynamic deposit based on number of proposals (paritytech/polkadot-sdk#3151)

* NODE-161, fix: add missing DecodeWithMemTracking

* NODE-161, feat: Moves disabling logic into pallet-session (paritytech/polkadot-sdk#7581)

* NODE-161, feat: Update Scheduler to have a configurable block provider (paritytech/polkadot-sdk#7441)

* NODE-161, chore: add WeightInfo to pallet_transaction_payment

* NODE-161, fix: add missing authorization_list

* NODE-161, fix: replace to new_bare

* NODE-161, fix: add missing DecodeWithMemTracking derive

* NODE-161, fix: resolve type mismatch

* NODE-161, fix: use system_version (paritytech/polkadot-sdk#4257)

* NODE-161, fix: use Cow (paritytech/polkadot-sdk#5693)

* NODE-161, feat: Generic slashing side-effects (paritytech/polkadot-sdk#5623)

* NODE-161, feat: impl create_inherent (paritytech/polkadot-sdk#3685)

* NODE-161, fix: remove generic parameter from on_unbalanceds

* NODE-161, fix: update storage_at runtime api

* NODE-161, fix: node: Remove network starter that is no longer needed (paritytech/polkadot-sdk#6400)

* NODE-161, fix: node: update FullNetworkConfiguration params

* NODE-161, fix: node: update TransactionPool

* NODE-161, fix: node: substrate-offchain: upgrade hyper to v1 (paritytech/polkadot-sdk#5919)

* NODE-161, fix: node: update service, rpc

* NODE-161, chore: remove unused imports

* chore: add cargo feature "metadata-hash"

* NODE-161, fix: add cumulus primitives storage proof size HostFunctions

* NODE-161, chore: update dependencies branch

* NODE-161, chore: update to stable2506

* NODE-161, chore: remove `RuntimeEvent` from pallet::Config

* NODE-161, fix: update test code

* NODE-161, fix: make node-lts compatible

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, chore: update `test_btc_registration_pool.ts`

* NODE-161, fix: use node.kill()

* NODE-161, fix: resolve test codes

* NODE-161, fix: remove console.log

* NODE-161, chore: update tools package.json

* feat: init blaze

* fix: remove unused crate

* import precompile-blaze

* NODE-161, chore: add mbm migrator into runtimes

* NODE-161, chore: add pallet_session migration

* NODE-161, fix: new_full_parts -> new_full_parts_record_import

* fix: resolve issues

* NODE-161, deps: update runtime version (489)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* NODE-80 branch restructure (#127)

* NODE-179, feat: init pallet storages

* NODE-179, feat: init pallet extrinsics

* NODE-179, chore: add locktime

* NODE-179, feat: finalize fee rate

* NODE-179, feature: impl coin selections

* NODE-179, feat: check blaze activation state

* NODE-179, feature: impl `remove_outbound_messages` for legacy mode

* NODE-80: implement benchmarking (#121)

* NODE-80, feature: impl benchmarking.rs & mock.rs

* NODE-80, fix: benchmark

* NODE-80, fix: benchmark

* NODE-80, chore: update weights

* fix: zero out proof size in weights

* chore: resolve

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>

* fix: correctly use mocha with tsx (#133)

* chore: version (#134)

---------

Co-authored-by: dnjscksdn98 <dnjscksdn98@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants