Skip to content

Instantly share code, notes, and snippets.

@holgerd77
holgerd77 / EIP-7928_BAL_Size_Reduction_Optimization_suggestions.md
Created February 19, 2026 16:41
EIP-7928 BAL Size Reduction/Optimization Suggestions

User

Ok, seems this dramatic change might not be worth the savings, but thanks a lot for the try. Let's go back to the initial code: after all your experiments with re-implementing, size comparisons and the like? Do you have very simple/local/mininmal-change suggestions how we can safe on BAL size here? These can be very local things, small optimizations, small data format adjustments, .... Whatever you can imagine.


Cursor

Good question. Let me look at the actual old-format BAL structure and find concrete, local optimizations with real measured impact.

@holgerd77
holgerd77 / EIP-7928_BAL_Spec_Design_Improvement_Suggestions.md
Created February 16, 2026 11:16
EIP-7928 BAL Spec Design Improvement Suggestions (Opus 4.6)
@holgerd77
holgerd77 / EIP-7928_BAL_Spec_Improvement_Suggestions_Opus.md
Last active February 16, 2026 10:56
EIP-7928_BAL_Spec_Improvement_Suggestions_Opus

Spec: https://github.com/ethereum/EIPs/blob/fad1a1acab0a433970e47e0b73a4f8a28c220675/EIPS/eip-7928.md (2026-02-03)

"In Ethereum we strive for a lean and easy to implement protocol. With your experiences from implementing core BAL parts gained in this chat - when analyzing the EIP spec in @EIPs/EIPS/eip-7928.md would you see potential enhancements or changes to the spec itself, which would significantly reduce implementation effort on the one hand and have no or only litte downsides (if present, please name them) on the other side?"

2026-02-05, Cursor, Sonnet 4.5

EIP-7928 BAL Spec Improvement Suggestions - Wording/Coding Guidance

Table of Contents

@holgerd77
holgerd77 / bal_empty_block_no_coinbase.json
Created January 22, 2026 13:43
bal_empty_block_no_coinbase
{
"tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py::test_bal_empty_block_no_coinbase[fork_Amsterdam-blockchain_test]": {
"network": "Amsterdam",
"genesisBlockHeader": {
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x0000000000000000000000000000000000000000",
"stateRoot": "0x6f978e5ec827eef738381e1ca1e9332001ac548e31fdb82b90319b3ae94e22d7",
"transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
@holgerd77
holgerd77 / ethereumjs-evm-bundle.js
Created September 20, 2024 08:27
Unminifed JS bundle of the EthereumJS EVM with all dependencies
const FORMAT = 239;
const MAGIC = 0;
const VERSION = 1;
const MAX_HEADER_SIZE = 49152;
const KIND_TYPE = 1;
const KIND_CODE = 2;
const KIND_CONTAINER = 3;
const KIND_DATA = 4;
const TERMINATOR = 0;
const TYPE_MIN = 4;
@holgerd77
holgerd77 / esm_transition.txt
Last active June 14, 2023 09:44
ESM Transition - .js File Path Additions - RegEx Cheat Sheet
Add Fully Qualified ESM Imports
-------------------------------
*****************************
In test and src folder
*****************************
RUN TESTS OFTEN (AFTER EACH LARGE OP)!!
EVENTUALLY IN-BETWEEN COMMITS!!
NO REGEX/REGEX EXTREMELY IMPORTANT (OTHERWISE FALSE REPLACEMENTS)!!
@holgerd77
holgerd77 / tape_vitest_regex.txt
Last active June 14, 2023 09:43
JavaScript Tape -> Vitest Test Runner Transition - RegEx Cheat Sheet
Tape -> Vitest Regex Expressions
--------------------------------
import * as tape from 'tape' // No regex
import { assert, describe, it } from 'vitest'
import type * as tape from 'tape' // No regex
import { assert, describe, it } from 'vitest'
**********************************
@holgerd77
holgerd77 / shandong-6101-trace
Created October 28, 2022 10:21
Shandong Block 6101 VM Trace - 2022-10-28
➜ net-env-cli DEBUG=vm:* ts-node shandong-ethers-state-manager-trace.ts
vm:block ---------------------------------------------------------------------------------------------------- +0ms
vm:block Running block hash=382c720b54a97bcb9388f5d1e422205c5174fd6d0f0fe431005dd32cd3928093 number=6101 hardfork=merge +0ms
vm:state ---------------------------------------------------------------------------------------------------- +0ms
vm:state message checkpoint +0ms
vm:block block checkpoint +1ms
vm:block Validate block +0ms
vm:block Apply transactions +28ms
vm:state ---------------------------------------------------------------------------------------------------- +28ms
vm:state message checkpoint +0ms
@holgerd77
holgerd77 / test.ts
Created October 5, 2022 11:05
Ethers State Manager Consecutive Mainnet Block Test
import { Chain, Common, Hardfork } from '@ethereumjs/common'
import { Account, Address, bigIntToHex, bufferToBigInt, bufferToHex } from '@ethereumjs/util'
import { VM } from '@ethereumjs/vm'
import { JsonRpcProvider } from '@ethersproject/providers'
import { EthersStateManager } from '../src/ethersStateManager'
const run = async () => {
const infura = 'https://mainnet.infura.io/v3/[YOUR-INFURA-KEY]'
const provider = new JsonRpcProvider(infura)
@holgerd77
holgerd77 / ethereumjs-blockchain_test_getHead.js
Created May 23, 2018 11:16
ethereumjs-blockchain - test getHead() for a reopened block-containing leveldown DB instance
'use strict'
const test = require('tape')
const Blockchain = require('..')
const Block = require('ethereumjs-block')
const async = require('async')
const ethUtil = require('ethereumjs-util')
const levelup = require('levelup')
const leveldown = require('leveldown')
const memdown = require('memdown')