Skip to content

Update Fast Sync configuration in Nethermind repository - #3396

Merged
LukaszRozmej merged 1 commit into
masterfrom
configs-update-19dbcfb
Sep 10, 2021
Merged

Update Fast Sync configuration in Nethermind repository#3396
LukaszRozmej merged 1 commit into
masterfrom
configs-update-19dbcfb

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Config files included:

  • mainnet.cfg
  • goerli.cfg
  • rinkeby.cfg
  • ropsten.cfg

Properties refreshed:

@LukaszRozmej
LukaszRozmej merged commit 4259c7d into master Sep 10, 2021
@LukaszRozmej
LukaszRozmej deleted the configs-update-19dbcfb branch September 10, 2021 10:12
AnkushinDaniil added a commit that referenced this pull request Aug 20, 2026
…d fees wire

Three tests still encoded the pre-catch-up shape and failed on CI:

- FrameTxDecoderTests hand-built payloads carried the three fee scalars
  flat; the decoder now reads fees as a nested list, so a padded payload
  hit the fee sequence-prefix check before the trailing-signature guard.
- The two max-gas gating tests (TxPool picker and block-production picker)
  fixed their boundary case to the old 15,000 intrinsic; with the
  spec-correct 12,000 intrinsic the 115,000 frame now fits the 130,000
  block, so the reject/skip case needed a higher limit.

No production change; the wire and intrinsic are already covered by the
#3396 fixtures (200/200).
AnkushinDaniil added a commit that referenced this pull request Aug 21, 2026
EIP-8141 now owns its spec-canonical introspection indices; the sibling
extensions move off the collisions so a pure-8141 fork matches the spec.

- TXPARAM 0x0C = STATE_GAS_LEFT (8141), was 0x11
- opcode 0xb5 = SIGDATACOPY (8141) as a distinct opcode; SIGPARAM (0xb4)
  is read-only again (no copy overload)
- EIP-8250 legacy nonce TXPARAM 0x0C -> 0x11 (gated on 8250)
- EIP-8272 RECENTROOTREFLOAD opcode 0xb5 -> 0xb6
- wire: fees is a nested [max_priority_fee, max_fee, max_fee_per_blob_gas]
  list; intrinsic FRAME_TX_INTRINSIC_COST 15000 -> 12000

Verified against execution-spec fixtures (EELS #3396) at fork Bogota:
201/201 pass. Unit suites green (Evm/Core/TxPool/Blockchain frame tests).

The matching EIP-8250 / EIP-8272 index moves ship as separate spec PRs.
AnkushinDaniil added a commit that referenced this pull request Aug 22, 2026
* feat(frames): two-dimensional gas limits per EIP-8141 (devnet7)

Split each frame's single gas_limit into limits = [execution, state] end to
end, and the frame receipt's gas_used into [execution, state], per EIP-8141
(ethereum/EIPs#12062), which adopts the EIP-8037 two-dimensional gas model.

Core:
- TxFrame carries ExecutionGasLimit and StateGasLimit; the combined GasLimit is
  their sum. TxFrameReceipt carries ExecutionGasUsed and StateGasUsed.
- Per-frame independent gas pools: a state charge exceeding limits.state halts
  the frame and is never paid from execution gas.
- State-gas attribution and cross-frame refills are journaled at call, frame
  and atomic-batch boundaries; a refill reduces the owning frame's receipt.
- Static validity: per-dimension overflow, expiry frame limits.state == 0,
  value_transfer_cost (EIP-2780 TX_VALUE_COST) folded into the intrinsic, and
  the EIP-7825 cap enforced on intrinsic + sum(limits.execution).
- The Bogota devnet fork now derives from Amsterdam so EIP-8037 is active under
  frame transactions.

Wire and settlement:
- RLP: frame limits = [execution, state]; receipt gas_used = [execution, state].
- Settlement binds the calldata floor to the execution dimension only; state
  gas is charged on top. Block inclusion, mempool admission and block
  production check the execution and state dimensions separately.

Introspection:
- FRAMEPARAM exposes limits.state and per-dimension gas_used. TXPARAM
  state_gas_left is assigned 0x11 to avoid the EIP-8250 legacy-nonce 0x0C
  collision (a spec update will follow separately).

Payment approval that must create an absent sender charges NEW_ACCOUNT from the
approving frame's state budget, atomically before the nonce increment; a frame
that cannot afford it halts with no approval effects.

* feat(frames): give EIP-8141 its canonical TXPARAM/opcode indices

EIP-8141 now owns its spec-canonical introspection indices; the sibling
extensions move off the collisions so a pure-8141 fork matches the spec.

- TXPARAM 0x0C = STATE_GAS_LEFT (8141), was 0x11
- opcode 0xb5 = SIGDATACOPY (8141) as a distinct opcode; SIGPARAM (0xb4)
  is read-only again (no copy overload)
- EIP-8250 legacy nonce TXPARAM 0x0C -> 0x11 (gated on 8250)
- EIP-8272 RECENTROOTREFLOAD opcode 0xb5 -> 0xb6
- wire: fees is a nested [max_priority_fee, max_fee, max_fee_per_blob_gas]
  list; intrinsic FRAME_TX_INTRINSIC_COST 15000 -> 12000

Verified against execution-spec fixtures (EELS #3396) at fork Bogota:
201/201 pass. Unit suites green (Evm/Core/TxPool/Blockchain frame tests).

The matching EIP-8250 / EIP-8272 index moves ship as separate spec PRs.

* Address review: 2D producer headroom, cast clamps, EIP-2780 gate, warm/cold cite; track post-refund block gas pending EIP-8141 spec fix

* Address review round 2: Low findings + wurdum + Marchhill nits

Reviewer findings addressed in this commit:

claude-bot (Low):
- Separate MAX_VERIFY_STATE_GAS rejection (AcceptTxResult, error message, metric)
  so a state-bound mempool reject is distinguishable from an execution-bound one.
- TxParam 0x11 activation guard already present (gated on TEip8250).

wurdum:
- TxValidator: split overflow (FrameGasOverflow) from over-cap
  (FrameExecutionGasExceedsCap now carries the reservation and cap), add the
  IsEip8037Enabled gate mirroring IntrinsicGasTxValidator.
- EvmInstructions.Storage: gate RecordStateChargeOwner on TEip8037.IsActive,
  matching the refill side; otherwise the ownership map/journal grow on a spec
  with 8141 but not 8037.
- FrameTxContext: single dictionary probe on the SSTORE path
  (GetValueRefOrAddDefault / Remove(key, out)); early-exit + AsSpan + ref read
  in RestoreStateGasJournal.
- Remove the now-unused TotalStateGasCorrection; accumulate the per-frame
  correction total in the existing settlement loop instead of a second pass.

Marchhill (nits): trim member docs to summary + one-line cite per repo style.

Deliberately kept (explained in review threads): the three-decoder gas_used
wire framing and the receipt-format decoder are consensus-wire shapes, not
mechanically deduped under pressure; the three block-gas tests are not
identical (success+nonzero vs two halt+zero paths); the hardcoded operands
at EvmInstructions.FrameTx 221/279 are pre-existing.

* Strip added inline // comments (rationale lives in the PR/threads)

* Extract block-production gas reservation helper (review: Marchhill)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants