glamsterdam-compat-lab 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +2 -2
- package/README.md +16 -9
- package/ROADMAP.md +4 -1
- package/data/client-compat/clients.example.json +355 -2
- package/data/eips/glamsterdam.json +504 -25
- package/datasets/public-seed/README.md +8 -0
- package/datasets/public-seed/comparisons/bytecode-ens-registry-mainnet-runtime--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default-vs-research.json +167 -0
- package/datasets/public-seed/comparisons/bytecode-multicall3-mainnet-runtime--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/bytecode-safe-proxy-factory-v130-mainnet-runtime--default-vs-research.json +169 -0
- package/datasets/public-seed/comparisons/bytecode-storage-heavy--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/bytecode-uniswap-v2-factory-mainnet-runtime--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/bytecode-usdc-proxy-mainnet-runtime--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/bytecode-weth9-mainnet-runtime--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-besu-debug-structlogs--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-besu-mainnet-tracoor-debug-structlogs--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-call-tracer-tree--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-drpc-call-tracer-real--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-erigon-action-trace--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-foundry-json-trace--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-geth-json-rpc-structlogs--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-geth-mainnet-tracoor-debug-structlogs--default-vs-research.json +141 -0
- package/datasets/public-seed/comparisons/traces-hardhat-debug-trace--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-nethermind-debug-structlogs--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-nethermind-mainnet-tracoor-debug-structlogs--default-vs-research.json +3 -3
- package/datasets/public-seed/comparisons/traces-reth-mainnet-tracoor-debug-structlogs--default-vs-research.json +141 -0
- package/datasets/public-seed/comparisons/traces-storage-heavy-trace--default-vs-research.json +3 -3
- package/datasets/public-seed/findings.csv +44 -0
- package/datasets/public-seed/manifest.json +198 -4
- package/datasets/public-seed/readiness-clients.csv +20 -0
- package/datasets/public-seed/readiness-devnets.csv +9 -0
- package/datasets/public-seed/readiness-eips.csv +66 -0
- package/datasets/public-seed/readiness-sources.csv +33 -0
- package/datasets/public-seed/readiness.json +1437 -0
- package/datasets/public-seed/reports/bytecode-ens-registry-mainnet-runtime--default.json +2 -2
- package/datasets/public-seed/reports/bytecode-ens-registry-mainnet-runtime--research.json +2 -2
- package/datasets/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default.json +170 -0
- package/datasets/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--research.json +170 -0
- package/datasets/public-seed/reports/bytecode-multicall3-mainnet-runtime--default.json +2 -2
- package/datasets/public-seed/reports/bytecode-multicall3-mainnet-runtime--research.json +2 -2
- package/datasets/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--default.json +148 -0
- package/datasets/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--research.json +171 -0
- package/datasets/public-seed/reports/bytecode-storage-heavy--default.json +2 -2
- package/datasets/public-seed/reports/bytecode-storage-heavy--research.json +2 -2
- package/datasets/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--default.json +2 -2
- package/datasets/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--research.json +2 -2
- package/datasets/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--default.json +2 -2
- package/datasets/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--research.json +2 -2
- package/datasets/public-seed/reports/bytecode-weth9-mainnet-runtime--default.json +2 -2
- package/datasets/public-seed/reports/bytecode-weth9-mainnet-runtime--research.json +2 -2
- package/datasets/public-seed/reports/indexers-balance-diff-indexer--default.json +2 -2
- package/datasets/public-seed/reports/indexers-explorer-replay-indexer--default.json +2 -2
- package/datasets/public-seed/reports/indexers-graph-network-subgraph-reduced--default.json +123 -0
- package/datasets/public-seed/reports/indexers-subgraph--default.json +2 -2
- package/datasets/public-seed/reports/traces-besu-debug-structlogs--default.json +2 -2
- package/datasets/public-seed/reports/traces-besu-debug-structlogs--research.json +2 -2
- package/datasets/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--default.json +2 -2
- package/datasets/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--research.json +2 -2
- package/datasets/public-seed/reports/traces-call-tracer-tree--default.json +2 -2
- package/datasets/public-seed/reports/traces-call-tracer-tree--research.json +2 -2
- package/datasets/public-seed/reports/traces-drpc-call-tracer-real--default.json +2 -2
- package/datasets/public-seed/reports/traces-drpc-call-tracer-real--research.json +2 -2
- package/datasets/public-seed/reports/traces-erigon-action-trace--default.json +2 -2
- package/datasets/public-seed/reports/traces-erigon-action-trace--research.json +2 -2
- package/datasets/public-seed/reports/traces-foundry-json-trace--default.json +2 -2
- package/datasets/public-seed/reports/traces-foundry-json-trace--research.json +2 -2
- package/datasets/public-seed/reports/traces-geth-json-rpc-structlogs--default.json +2 -2
- package/datasets/public-seed/reports/traces-geth-json-rpc-structlogs--research.json +2 -2
- package/datasets/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--default.json +103 -0
- package/datasets/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--research.json +131 -0
- package/datasets/public-seed/reports/traces-hardhat-debug-trace--default.json +2 -2
- package/datasets/public-seed/reports/traces-hardhat-debug-trace--research.json +2 -2
- package/datasets/public-seed/reports/traces-nethermind-debug-structlogs--default.json +2 -2
- package/datasets/public-seed/reports/traces-nethermind-debug-structlogs--research.json +2 -2
- package/datasets/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--default.json +2 -2
- package/datasets/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--research.json +2 -2
- package/datasets/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--default.json +103 -0
- package/datasets/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--research.json +131 -0
- package/datasets/public-seed/reports/traces-storage-heavy-trace--default.json +2 -2
- package/datasets/public-seed/reports/traces-storage-heavy-trace--research.json +2 -2
- package/datasets/public-seed/reports/validator-glamsterdam-devnet-operator-public--default.json +92 -0
- package/datasets/public-seed/reports/validator-operator-config--default.json +4 -4
- package/datasets/public-seed/reports/validator-operator-config-builder-gap--default.json +2 -2
- package/datasets/public-seed/reports/validator-operator-config-complete--default.json +2 -2
- package/datasets/public-seed/reports.csv +10 -0
- package/datasets/public-seed/summary.csv +37 -31
- package/datasets/public-seed/summary.json +57 -33
- package/dist/cli.js +6 -1
- package/dist/cli.js.map +1 -1
- package/dist/fixtures/provenance.d.ts +3 -0
- package/dist/fixtures/provenance.js +1 -0
- package/dist/fixtures/provenance.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/registry/clientMatrix.d.ts +334 -0
- package/dist/registry/clientMatrix.js +218 -0
- package/dist/registry/clientMatrix.js.map +1 -0
- package/dist/registry/schemas.d.ts +34 -1
- package/dist/registry/schemas.js +17 -1
- package/dist/registry/schemas.js.map +1 -1
- package/dist/reports/reportTypes.d.ts +1 -1
- package/dist/reports/reportTypes.js +1 -1
- package/dist/scanners/validatorScanner.d.ts +1 -28
- package/dist/scanners/validatorScanner.js +2 -37
- package/dist/scanners/validatorScanner.js.map +1 -1
- package/docs/client-compat.md +123 -0
- package/docs/dataset.md +205 -0
- package/docs/fixtures.md +10 -4
- package/docs/release.md +11 -29
- package/docs/releases/v0.3.4.md +15 -0
- package/examples/baseline-comparison.md +1 -1
- package/examples/public-seed-analysis.md +192 -0
- package/fixtures/bytecode/erc4337-entrypoint-v06-mainnet-runtime.hex +1 -0
- package/fixtures/bytecode/safe-proxy-factory-v130-mainnet-runtime.hex +1 -0
- package/fixtures/indexers/graph-network-subgraph-reduced.yaml +66 -0
- package/fixtures/provenance.json +267 -1
- package/fixtures/traces/geth-mainnet-tracoor-debug-structlogs.json +2285 -0
- package/fixtures/traces/reth-mainnet-tracoor-debug-structlogs.json +2285 -0
- package/fixtures/validator/glamsterdam-devnet-operator-public.yaml +30 -0
- package/package.json +6 -1
- package/site/public-seed/comparisons/bytecode-ens-registry-mainnet-runtime--default-vs-research.html +496 -0
- package/site/public-seed/comparisons/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default-vs-research.html +510 -0
- package/site/public-seed/comparisons/bytecode-multicall3-mainnet-runtime--default-vs-research.html +510 -0
- package/site/public-seed/comparisons/bytecode-safe-proxy-factory-v130-mainnet-runtime--default-vs-research.html +524 -0
- package/site/public-seed/comparisons/bytecode-storage-heavy--default-vs-research.html +510 -0
- package/site/public-seed/comparisons/bytecode-uniswap-v2-factory-mainnet-runtime--default-vs-research.html +510 -0
- package/site/public-seed/comparisons/bytecode-usdc-proxy-mainnet-runtime--default-vs-research.html +517 -0
- package/site/public-seed/comparisons/bytecode-weth9-mainnet-runtime--default-vs-research.html +496 -0
- package/site/public-seed/comparisons/traces-besu-debug-structlogs--default-vs-research.html +475 -0
- package/site/public-seed/comparisons/traces-besu-mainnet-tracoor-debug-structlogs--default-vs-research.html +496 -0
- package/site/public-seed/comparisons/traces-call-tracer-tree--default-vs-research.html +489 -0
- package/site/public-seed/comparisons/traces-drpc-call-tracer-real--default-vs-research.html +489 -0
- package/site/public-seed/comparisons/traces-erigon-action-trace--default-vs-research.html +489 -0
- package/site/public-seed/comparisons/traces-foundry-json-trace--default-vs-research.html +503 -0
- package/site/public-seed/comparisons/traces-geth-json-rpc-structlogs--default-vs-research.html +482 -0
- package/site/public-seed/comparisons/traces-geth-mainnet-tracoor-debug-structlogs--default-vs-research.html +510 -0
- package/site/public-seed/comparisons/traces-hardhat-debug-trace--default-vs-research.html +482 -0
- package/site/public-seed/comparisons/traces-nethermind-debug-structlogs--default-vs-research.html +501 -0
- package/site/public-seed/comparisons/traces-nethermind-mainnet-tracoor-debug-structlogs--default-vs-research.html +496 -0
- package/site/public-seed/comparisons/traces-reth-mainnet-tracoor-debug-structlogs--default-vs-research.html +510 -0
- package/site/public-seed/comparisons/traces-storage-heavy-trace--default-vs-research.html +503 -0
- package/site/public-seed/findings/bytecode.calldata-copy-exposure.html +683 -0
- package/site/public-seed/findings/bytecode.contract-creation-opcodes.html +551 -0
- package/site/public-seed/findings/bytecode.contract-size-near-current-limit.html +463 -0
- package/site/public-seed/findings/bytecode.log-opcodes-present.html +771 -0
- package/site/public-seed/findings/bytecode.manual-review-required.html +771 -0
- package/site/public-seed/findings/bytecode.state-account-opcode-exposure.html +727 -0
- package/site/public-seed/findings/bytecode.state-account-opcode-presence.html +441 -0
- package/site/public-seed/findings/bytecode.storage-heavy-pattern.html +683 -0
- package/site/public-seed/findings/indexer.balance-diff-native-transfer-assumption.html +463 -0
- package/site/public-seed/findings/indexer.event-only-assumption.html +463 -0
- package/site/public-seed/findings/indexer.missing-bal-readiness-metadata.html +485 -0
- package/site/public-seed/findings/indexer.missing-fork-compatibility-metadata.html +463 -0
- package/site/public-seed/findings/indexer.missing-replay-plan.html +463 -0
- package/site/public-seed/findings/indexer.native-eth-transfer-review-missing.html +463 -0
- package/site/public-seed/findings/trace.calldata-heavy-execution.html +815 -0
- package/site/public-seed/findings/trace.contract-creation-executed.html +639 -0
- package/site/public-seed/findings/trace.logs-calls-visible.html +991 -0
- package/site/public-seed/findings/trace.partial-evidence.html +771 -0
- package/site/public-seed/findings/trace.state-heavy-execution-medium.html +617 -0
- package/site/public-seed/findings/validator.builder-enabled-without-endpoint.html +463 -0
- package/site/public-seed/findings/validator.consensus-client-status-partial.html +441 -0
- package/site/public-seed/findings/validator.execution-client-status-partial.html +441 -0
- package/site/public-seed/findings/validator.missing-monitoring-endpoints.html +463 -0
- package/site/public-seed/findings/validator.missing-testnet-participation.html +463 -0
- package/site/public-seed/findings/validator.missing-validator-client-version.html +441 -0
- package/site/public-seed/findings/validator.unknown-consensus-client-compatibility.html +441 -0
- package/site/public-seed/findings/validator.unknown-execution-client-compatibility.html +441 -0
- package/site/public-seed/index.html +2560 -0
- package/site/public-seed/readiness.html +1591 -0
- package/site/public-seed/reports/bytecode-ens-registry-mainnet-runtime--default.html +548 -0
- package/site/public-seed/reports/bytecode-ens-registry-mainnet-runtime--research.html +548 -0
- package/site/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default.html +595 -0
- package/site/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--research.html +595 -0
- package/site/public-seed/reports/bytecode-multicall3-mainnet-runtime--default.html +517 -0
- package/site/public-seed/reports/bytecode-multicall3-mainnet-runtime--research.html +544 -0
- package/site/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--default.html +570 -0
- package/site/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--research.html +595 -0
- package/site/public-seed/reports/bytecode-storage-heavy--default.html +595 -0
- package/site/public-seed/reports/bytecode-storage-heavy--research.html +595 -0
- package/site/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--default.html +596 -0
- package/site/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--research.html +596 -0
- package/site/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--default.html +547 -0
- package/site/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--research.html +572 -0
- package/site/public-seed/reports/bytecode-weth9-mainnet-runtime--default.html +549 -0
- package/site/public-seed/reports/bytecode-weth9-mainnet-runtime--research.html +549 -0
- package/site/public-seed/reports/indexers-balance-diff-indexer--default.html +481 -0
- package/site/public-seed/reports/indexers-explorer-replay-indexer--default.html +460 -0
- package/site/public-seed/reports/indexers-graph-network-subgraph-reduced--default.html +549 -0
- package/site/public-seed/reports/indexers-subgraph--default.html +548 -0
- package/site/public-seed/reports/traces-besu-debug-structlogs--default.html +469 -0
- package/site/public-seed/reports/traces-besu-debug-structlogs--research.html +469 -0
- package/site/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--default.html +549 -0
- package/site/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--research.html +549 -0
- package/site/public-seed/reports/traces-call-tracer-tree--default.html +518 -0
- package/site/public-seed/reports/traces-call-tracer-tree--research.html +518 -0
- package/site/public-seed/reports/traces-drpc-call-tracer-real--default.html +520 -0
- package/site/public-seed/reports/traces-drpc-call-tracer-real--research.html +520 -0
- package/site/public-seed/reports/traces-erigon-action-trace--default.html +518 -0
- package/site/public-seed/reports/traces-erigon-action-trace--research.html +518 -0
- package/site/public-seed/reports/traces-foundry-json-trace--default.html +493 -0
- package/site/public-seed/reports/traces-foundry-json-trace--research.html +521 -0
- package/site/public-seed/reports/traces-geth-json-rpc-structlogs--default.html +493 -0
- package/site/public-seed/reports/traces-geth-json-rpc-structlogs--research.html +493 -0
- package/site/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--default.html +521 -0
- package/site/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--research.html +549 -0
- package/site/public-seed/reports/traces-hardhat-debug-trace--default.html +493 -0
- package/site/public-seed/reports/traces-hardhat-debug-trace--research.html +493 -0
- package/site/public-seed/reports/traces-nethermind-debug-structlogs--default.html +517 -0
- package/site/public-seed/reports/traces-nethermind-debug-structlogs--research.html +517 -0
- package/site/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--default.html +549 -0
- package/site/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--research.html +549 -0
- package/site/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--default.html +521 -0
- package/site/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--research.html +549 -0
- package/site/public-seed/reports/traces-storage-heavy-trace--default.html +570 -0
- package/site/public-seed/reports/traces-storage-heavy-trace--research.html +570 -0
- package/site/public-seed/reports/validator-glamsterdam-devnet-operator-public--default.html +513 -0
- package/site/public-seed/reports/validator-operator-config--default.html +584 -0
- package/site/public-seed/reports/validator-operator-config-builder-gap--default.html +509 -0
- package/site/public-seed/reports/validator-operator-config-complete--default.html +441 -0
package/CONTRIBUTING.md
CHANGED
|
@@ -22,9 +22,9 @@ pnpm test:update
|
|
|
22
22
|
|
|
23
23
|
Releases are published from semver tags. After CI is green on `main`, create the GitHub release tag, then run the manual `Publish npm` workflow from `main` with the release tag as `release_tag`.
|
|
24
24
|
|
|
25
|
-
Start with `dry_run=true` for a new, unpublished release version. Real publishes use npm Trusted Publishing for `glamsterdam-compat-lab` with repository `CruzMolina/glamsterdam-compat-lab`, workflow file `npm-publish.yml`, and environment `npm-publish`. Do not configure `NPM_TOKEN
|
|
25
|
+
Start with `dry_run=true` for a new, unpublished release version. Real publishes use npm Trusted Publishing for `glamsterdam-compat-lab` with repository `CruzMolina/glamsterdam-compat-lab`, workflow file `npm-publish.yml`, and environment `npm-publish`. Do not configure `NPM_TOKEN`; the release workflow is intentionally tokenless and grants OIDC only to the isolated publish job.
|
|
26
26
|
|
|
27
|
-
The workflow checks out the requested semver tag, verifies that `package.json` matches the tag, installs dependencies, runs tests, builds, and
|
|
27
|
+
The workflow checks out the requested semver tag in a read-only preflight job, verifies that `package.json` matches the tag, installs dependencies, runs tests, builds, packs the npm tarball, and uploads that tarball for the publish job. The publish job downloads the tarball and runs `npm publish --provenance` without dependency install, tests, or build steps.
|
|
28
28
|
|
|
29
29
|
See `docs/release.md` for the full release checklist and npm troubleshooting notes.
|
|
30
30
|
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ This is community open-source tooling. It is not official Ethereum Foundation to
|
|
|
8
8
|
|
|
9
9
|
## Why this exists
|
|
10
10
|
|
|
11
|
-
The Ethereum Foundation Ecosystem Support Program has a Glamsterdam-focused wishlist that calls out developer tooling, impact analysis, explorer/indexer support, validator tooling, monitoring tooling, and data-driven research. Glamsterdam planning currently includes scheduled work around Block-Level Access Lists
|
|
11
|
+
The Ethereum Foundation Ecosystem Support Program has a Glamsterdam-focused wishlist that calls out developer tooling, impact analysis, explorer/indexer support, validator tooling, monitoring tooling, and data-driven research. Glamsterdam planning currently includes scheduled work around Block-Level Access Lists, ePBS, native ETH transfer logs, contract-size changes, calldata floor costs, access-list costs, state-creation gas, and related EVM changes, plus considered and proposed work tracked through the local EIP registry.
|
|
12
12
|
|
|
13
13
|
The final Glamsterdam scope and exact parameters may change. This project keeps assumptions in a versioned EIP registry so detector behavior can be updated without rewriting every scanner.
|
|
14
14
|
|
|
@@ -36,14 +36,14 @@ pnpm glamsterdam scan-bytecode fixtures/bytecode/storage-heavy.hex
|
|
|
36
36
|
Install the published CLI from npm:
|
|
37
37
|
|
|
38
38
|
```sh
|
|
39
|
-
npm install -g glamsterdam-compat-lab@0.3.
|
|
39
|
+
npm install -g glamsterdam-compat-lab@0.3.4
|
|
40
40
|
glamsterdam eips
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
The v0.3.
|
|
43
|
+
The v0.3.4 GitHub release tarball remains available as a reproducible release artifact:
|
|
44
44
|
|
|
45
45
|
```sh
|
|
46
|
-
npm install -g https://github.com/CruzMolina/glamsterdam-compat-lab/releases/download/v0.3.
|
|
46
|
+
npm install -g https://github.com/CruzMolina/glamsterdam-compat-lab/releases/download/v0.3.4/glamsterdam-compat-lab-0.3.4.tgz
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
See [docs/release.md](docs/release.md) for maintainer release checks and npm publishing notes.
|
|
@@ -72,12 +72,19 @@ Each scanner accepts `--registry <path>` and `--thresholds <path>` so EIP metada
|
|
|
72
72
|
|
|
73
73
|
## Public dataset seed
|
|
74
74
|
|
|
75
|
-
Fixture provenance lives in [fixtures/provenance.json](fixtures/provenance.json). The first deterministic dataset seed lives in [datasets/public-seed](datasets/public-seed) and includes generated JSON reports, default-vs-research threshold comparisons for bytecode and trace fixtures, a `summary.json` file with aggregate counts, and
|
|
75
|
+
Fixture provenance lives in [fixtures/provenance.json](fixtures/provenance.json). The first deterministic dataset seed lives in [datasets/public-seed](datasets/public-seed) and includes generated JSON reports, default-vs-research threshold comparisons for bytecode and trace fixtures, a `summary.json` file with aggregate counts, `readiness.json` sourced from the EIP registry and client matrix, and CSV exports for spreadsheet and warehouse import.
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
The static dataset browser lives at [site/public-seed/index.html](site/public-seed/index.html). It is generated entirely from committed dataset files and can be opened directly in a browser for summary charts, report filters, text search, per-report, per-comparison, per-finding, and readiness source detail pages, raw JSON links, and fixture/provenance links. Index filters are reflected in the URL so filtered views can be shared.
|
|
78
|
+
|
|
79
|
+
See [docs/dataset.md](docs/dataset.md) for the dataset file contract and [examples/public-seed-analysis.md](examples/public-seed-analysis.md) for lightweight analysis snippets.
|
|
80
|
+
|
|
81
|
+
Regenerate and verify it with:
|
|
78
82
|
|
|
79
83
|
```sh
|
|
80
84
|
pnpm dataset:generate
|
|
85
|
+
pnpm dataset:check
|
|
86
|
+
pnpm site:generate
|
|
87
|
+
pnpm site:check
|
|
81
88
|
```
|
|
82
89
|
|
|
83
90
|
## What the scanners can detect
|
|
@@ -121,7 +128,7 @@ Use `--trace-out <path>` to save the fetched JSON-RPC trace response while also
|
|
|
121
128
|
|
|
122
129
|
`scan-indexer` parses JSON and YAML, including `subgraph.yaml`-style configs. It flags event-only indexing assumptions, missing fork/EIP compatibility metadata, missing replay or testnet plans, missing BAL review metadata, and native ETH transfer log readiness as heuristic findings.
|
|
123
130
|
|
|
124
|
-
`scan-validator` parses JSON and YAML operator configs. It checks for execution, consensus, validator, builder/API, monitoring, and testnet/devnet metadata. It compares client names and versions against `data/client-compat/clients.example.json` or a user-provided matrix, but it does not guess compatibility.
|
|
131
|
+
`scan-validator` parses JSON and YAML operator configs. It checks for execution, consensus, validator, builder/API, monitoring, and testnet/devnet metadata. It compares client names and versions against `data/client-compat/clients.example.json` or a user-provided matrix, but it does not guess compatibility. See [docs/client-compat.md](docs/client-compat.md) for the sourced matrix format.
|
|
125
132
|
|
|
126
133
|
`compare-reports` accepts two saved JSON compatibility reports and emits deterministic JSON or Markdown deltas. It compares findings by stable finding ID, reports findings added, removed, changed, and unchanged, and highlights severity and confidence changes. It does not invent exact gas deltas; those must come from explicit input data or future client outputs.
|
|
127
134
|
|
|
@@ -131,7 +138,7 @@ Each scanner returns a `CompatibilityReport`:
|
|
|
131
138
|
|
|
132
139
|
```json
|
|
133
140
|
{
|
|
134
|
-
"toolVersion": "0.3.
|
|
141
|
+
"toolVersion": "0.3.4",
|
|
135
142
|
"fork": "glamsterdam",
|
|
136
143
|
"target": {
|
|
137
144
|
"kind": "bytecode",
|
|
@@ -219,7 +226,7 @@ Release publishing notes live in [docs/release.md](docs/release.md).
|
|
|
219
226
|
|
|
220
227
|
## Roadmap
|
|
221
228
|
|
|
222
|
-
See [ROADMAP.md](ROADMAP.md) for planned phases. Phase 0 is released as `v0.1.0`; `v0.2.0` starts Phase 1 with RPC transaction trace ingestion and broader trace fixture coverage; `v0.3.0` adds baseline comparison reports; `v0.3.1` expands public-safe fixture and dataset coverage; `v0.3.2` adds packaged CSV dataset exports.
|
|
229
|
+
See [ROADMAP.md](ROADMAP.md) for planned phases. Phase 0 is released as `v0.1.0`; `v0.2.0` starts Phase 1 with RPC transaction trace ingestion and broader trace fixture coverage; `v0.3.0` adds baseline comparison reports; `v0.3.1` expands public-safe fixture and dataset coverage; `v0.3.2` adds packaged CSV dataset exports; `v0.3.3` adds additional public Geth and Reth trace fixture coverage; `v0.3.4` adds the static public-seed browser, detail/finding pages, and sourced readiness visibility exports.
|
|
223
230
|
|
|
224
231
|
## Disclaimer
|
|
225
232
|
|
package/ROADMAP.md
CHANGED
|
@@ -52,7 +52,7 @@ Goal: compare compatibility reports across profiles and, later, across current-c
|
|
|
52
52
|
|
|
53
53
|
## Phase 2: Public Dataset
|
|
54
54
|
|
|
55
|
-
Status: seeded after `v0.3.0`; expanded with public-safe trace, indexer, and validator fixture coverage in `v0.3.1`; packaged CSV exports added in `v0.3.2`.
|
|
55
|
+
Status: seeded after `v0.3.0`; expanded with public-safe trace, indexer, and validator fixture coverage in `v0.3.1`; packaged CSV exports added in `v0.3.2`; additional public Geth and Reth trace fixture coverage added in `v0.3.3`; the static public-seed browser, detail/finding pages, and readiness exports are released in `v0.3.4`.
|
|
56
56
|
|
|
57
57
|
Goal: publish reproducible compatibility research.
|
|
58
58
|
|
|
@@ -66,11 +66,14 @@ Goal: publish reproducible compatibility research.
|
|
|
66
66
|
|
|
67
67
|
## Phase 3: Devnet Integration
|
|
68
68
|
|
|
69
|
+
Status: started in `v0.3.4` with sourced readiness exports and static readiness pages.
|
|
70
|
+
|
|
69
71
|
Goal: track moving client and spec readiness without hardcoding guesses.
|
|
70
72
|
|
|
71
73
|
- Ingest public devnet and client compatibility metadata
|
|
72
74
|
- Track spec/client changes against registry entries
|
|
73
75
|
- Expand validator/operator compatibility matrix workflows
|
|
76
|
+
- Export source freshness, EIP status groupings, devnet participants, and matrix rows through the public dataset and static site
|
|
74
77
|
|
|
75
78
|
## Phase 4: Dashboard
|
|
76
79
|
|
|
@@ -1,8 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"fork": "glamsterdam",
|
|
3
|
-
"lastUpdated": "2026-05-
|
|
3
|
+
"lastUpdated": "2026-05-13",
|
|
4
4
|
"sources": [
|
|
5
|
-
|
|
5
|
+
{
|
|
6
|
+
"type": "public-interop-recap",
|
|
7
|
+
"url": "https://blog.ethereum.org/2026/05/02/soldogn-interop-recap",
|
|
8
|
+
"sourceDate": "2026-05-02",
|
|
9
|
+
"retrievedAt": "2026-05-12",
|
|
10
|
+
"claim": "The Ethereum Foundation Soldogn recap says the week ended with a stable multi-client Glamsterdam devnet running the latest ePBS, repricing, and block access list specs, and that nearly all clients were running together on glamsterdam-devnet-2 with the external builders pipeline tested end-to-end.",
|
|
11
|
+
"notes": "This source supports devnet/interoperability context, not production release compatibility."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "public-devnet-spec",
|
|
15
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
16
|
+
"retrievedAt": "2026-05-12",
|
|
17
|
+
"claim": "The EthPandaOps glamsterdam-devnet-2 spec lists a Kurtosis participants matrix with geth as the execution client image and prysm, lodestar, lighthouse, teku, nimbus, and grandine as consensus client images.",
|
|
18
|
+
"notes": "This source supports devnet participant examples. It does not claim mainnet-ready client releases."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "public-spec-release",
|
|
22
|
+
"url": "https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-alpha.7",
|
|
23
|
+
"sourceDate": "2026-04-29",
|
|
24
|
+
"retrievedAt": "2026-05-12",
|
|
25
|
+
"claim": "The consensus-specs v1.7.0-alpha.7 release is a pre-release containing Gloas changes used by the glamsterdam-devnet-2 spec.",
|
|
26
|
+
"notes": "Spec release metadata is useful provenance for devnet test entries, but is not a client release."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "public-spec-release",
|
|
30
|
+
"url": "https://github.com/ethereum/execution-spec-tests/releases/tag/bal%40v5.6.1",
|
|
31
|
+
"sourceDate": "2026-04-02",
|
|
32
|
+
"retrievedAt": "2026-05-12",
|
|
33
|
+
"claim": "The execution-spec-tests bal@v5.6.1 pre-release is labeled for bal-devnet-3 v7 and includes BAL/state-gas test updates referenced by the glamsterdam-devnet-2 spec.",
|
|
34
|
+
"notes": "Spec-test release metadata is useful provenance for devnet test entries, but is not a client release."
|
|
35
|
+
}
|
|
6
36
|
],
|
|
7
37
|
"clients": [
|
|
8
38
|
{
|
|
@@ -12,12 +42,46 @@
|
|
|
12
42
|
{
|
|
13
43
|
"version": "0.0.0-example",
|
|
14
44
|
"status": "unknown",
|
|
45
|
+
"source": {
|
|
46
|
+
"type": "synthetic-example",
|
|
47
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
48
|
+
"retrievedAt": "2026-05-12",
|
|
49
|
+
"claim": "Synthetic unknown status used to exercise matrix behavior when no sourced compatibility statement exists."
|
|
50
|
+
},
|
|
15
51
|
"notes": "Placeholder only. Replace with a sourced compatibility statement before relying on this matrix."
|
|
16
52
|
},
|
|
17
53
|
{
|
|
18
54
|
"version": "1.0.0-compatible",
|
|
19
55
|
"status": "compatible",
|
|
56
|
+
"source": {
|
|
57
|
+
"type": "synthetic-example",
|
|
58
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
59
|
+
"retrievedAt": "2026-05-12",
|
|
60
|
+
"claim": "Synthetic compatible status used by safe fixture variants to exercise clean scanner paths."
|
|
61
|
+
},
|
|
20
62
|
"notes": "Synthetic compatible status used by safe fixture variants; do not treat as a real client release."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"version": "1.1.0-partial",
|
|
66
|
+
"status": "partial",
|
|
67
|
+
"source": {
|
|
68
|
+
"type": "synthetic-example",
|
|
69
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
70
|
+
"retrievedAt": "2026-05-12",
|
|
71
|
+
"claim": "Synthetic partial status used to exercise scanner behavior for incomplete readiness."
|
|
72
|
+
},
|
|
73
|
+
"notes": "Synthetic partial status for tests and examples only."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"version": "2.0.0-incompatible",
|
|
77
|
+
"status": "incompatible",
|
|
78
|
+
"source": {
|
|
79
|
+
"type": "synthetic-example",
|
|
80
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
81
|
+
"retrievedAt": "2026-05-12",
|
|
82
|
+
"claim": "Synthetic incompatible status used to exercise scanner behavior for blocking readiness findings."
|
|
83
|
+
},
|
|
84
|
+
"notes": "Synthetic incompatible status for tests and examples only."
|
|
21
85
|
}
|
|
22
86
|
]
|
|
23
87
|
},
|
|
@@ -28,12 +92,46 @@
|
|
|
28
92
|
{
|
|
29
93
|
"version": "0.0.0-example",
|
|
30
94
|
"status": "unknown",
|
|
95
|
+
"source": {
|
|
96
|
+
"type": "synthetic-example",
|
|
97
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
98
|
+
"retrievedAt": "2026-05-12",
|
|
99
|
+
"claim": "Synthetic unknown status used to exercise matrix behavior when no sourced compatibility statement exists."
|
|
100
|
+
},
|
|
31
101
|
"notes": "Placeholder only. Replace with a sourced compatibility statement before relying on this matrix."
|
|
32
102
|
},
|
|
33
103
|
{
|
|
34
104
|
"version": "1.0.0-compatible",
|
|
35
105
|
"status": "compatible",
|
|
106
|
+
"source": {
|
|
107
|
+
"type": "synthetic-example",
|
|
108
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
109
|
+
"retrievedAt": "2026-05-12",
|
|
110
|
+
"claim": "Synthetic compatible status used by safe fixture variants to exercise clean scanner paths."
|
|
111
|
+
},
|
|
36
112
|
"notes": "Synthetic compatible status used by safe fixture variants; do not treat as a real client release."
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"version": "1.1.0-partial",
|
|
116
|
+
"status": "partial",
|
|
117
|
+
"source": {
|
|
118
|
+
"type": "synthetic-example",
|
|
119
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
120
|
+
"retrievedAt": "2026-05-12",
|
|
121
|
+
"claim": "Synthetic partial status used to exercise scanner behavior for incomplete readiness."
|
|
122
|
+
},
|
|
123
|
+
"notes": "Synthetic partial status for tests and examples only."
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"version": "2.0.0-incompatible",
|
|
127
|
+
"status": "incompatible",
|
|
128
|
+
"source": {
|
|
129
|
+
"type": "synthetic-example",
|
|
130
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
131
|
+
"retrievedAt": "2026-05-12",
|
|
132
|
+
"claim": "Synthetic incompatible status used to exercise scanner behavior for blocking readiness findings."
|
|
133
|
+
},
|
|
134
|
+
"notes": "Synthetic incompatible status for tests and examples only."
|
|
37
135
|
}
|
|
38
136
|
]
|
|
39
137
|
},
|
|
@@ -44,14 +142,269 @@
|
|
|
44
142
|
{
|
|
45
143
|
"version": "0.0.0-example",
|
|
46
144
|
"status": "unknown",
|
|
145
|
+
"source": {
|
|
146
|
+
"type": "synthetic-example",
|
|
147
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
148
|
+
"retrievedAt": "2026-05-12",
|
|
149
|
+
"claim": "Synthetic unknown status used to exercise matrix behavior when no sourced compatibility statement exists."
|
|
150
|
+
},
|
|
47
151
|
"notes": "Placeholder only. Replace with a sourced compatibility statement before relying on this matrix."
|
|
48
152
|
},
|
|
49
153
|
{
|
|
50
154
|
"version": "1.0.0-compatible",
|
|
51
155
|
"status": "compatible",
|
|
156
|
+
"source": {
|
|
157
|
+
"type": "synthetic-example",
|
|
158
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
159
|
+
"retrievedAt": "2026-05-12",
|
|
160
|
+
"claim": "Synthetic compatible status used by safe fixture variants to exercise clean scanner paths."
|
|
161
|
+
},
|
|
52
162
|
"notes": "Synthetic compatible status used by safe fixture variants; do not treat as a real client release."
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"version": "1.1.0-partial",
|
|
166
|
+
"status": "partial",
|
|
167
|
+
"source": {
|
|
168
|
+
"type": "synthetic-example",
|
|
169
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
170
|
+
"retrievedAt": "2026-05-12",
|
|
171
|
+
"claim": "Synthetic partial status used to exercise scanner behavior for incomplete readiness."
|
|
172
|
+
},
|
|
173
|
+
"notes": "Synthetic partial status for tests and examples only."
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"version": "2.0.0-incompatible",
|
|
177
|
+
"status": "incompatible",
|
|
178
|
+
"source": {
|
|
179
|
+
"type": "synthetic-example",
|
|
180
|
+
"url": "https://github.com/CruzMolina/glamsterdam-compat-lab/blob/main/data/client-compat/clients.example.json",
|
|
181
|
+
"retrievedAt": "2026-05-12",
|
|
182
|
+
"claim": "Synthetic incompatible status used to exercise scanner behavior for blocking readiness findings."
|
|
183
|
+
},
|
|
184
|
+
"notes": "Synthetic incompatible status for tests and examples only."
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "geth",
|
|
190
|
+
"role": "execution",
|
|
191
|
+
"versions": [
|
|
192
|
+
{
|
|
193
|
+
"version": "ethpandaops/geth:bal-devnet-6",
|
|
194
|
+
"status": "partial",
|
|
195
|
+
"source": {
|
|
196
|
+
"type": "public-devnet-spec",
|
|
197
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
198
|
+
"retrievedAt": "2026-05-12",
|
|
199
|
+
"claim": "The glamsterdam-devnet-2 Kurtosis example lists geth with image ethpandaops/geth:bal-devnet-6 as the execution-layer participant."
|
|
200
|
+
},
|
|
201
|
+
"notes": "Devnet image only. This is not a production Geth release compatibility claim."
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"name": "lighthouse",
|
|
207
|
+
"role": "consensus",
|
|
208
|
+
"versions": [
|
|
209
|
+
{
|
|
210
|
+
"version": "ethpandaops/lighthouse:glamsterdam-devnet-3",
|
|
211
|
+
"status": "partial",
|
|
212
|
+
"source": {
|
|
213
|
+
"type": "public-devnet-spec",
|
|
214
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
215
|
+
"retrievedAt": "2026-05-12",
|
|
216
|
+
"claim": "The glamsterdam-devnet-2 Kurtosis example lists lighthouse with image ethpandaops/lighthouse:glamsterdam-devnet-3 as a consensus-layer participant."
|
|
217
|
+
},
|
|
218
|
+
"notes": "Devnet image only. This is not a production Lighthouse release compatibility claim."
|
|
219
|
+
}
|
|
220
|
+
]
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "lodestar",
|
|
224
|
+
"role": "consensus",
|
|
225
|
+
"versions": [
|
|
226
|
+
{
|
|
227
|
+
"version": "ethpandaops/lodestar:glamsterdam-devnet-2",
|
|
228
|
+
"status": "partial",
|
|
229
|
+
"source": {
|
|
230
|
+
"type": "public-devnet-spec",
|
|
231
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
232
|
+
"retrievedAt": "2026-05-13",
|
|
233
|
+
"claim": "The glamsterdam-devnet-2 Kurtosis example lists lodestar with image ethpandaops/lodestar:glamsterdam-devnet-2 as a consensus-layer participant."
|
|
234
|
+
},
|
|
235
|
+
"notes": "Devnet image only. This is not a production Lodestar release compatibility claim."
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"name": "prysm",
|
|
241
|
+
"role": "consensus",
|
|
242
|
+
"versions": [
|
|
243
|
+
{
|
|
244
|
+
"version": "ethpandaops/prysm-beacon-chain:glamsterdam-devnet-3-minimal",
|
|
245
|
+
"status": "partial",
|
|
246
|
+
"source": {
|
|
247
|
+
"type": "public-devnet-spec",
|
|
248
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
249
|
+
"retrievedAt": "2026-05-13",
|
|
250
|
+
"claim": "The glamsterdam-devnet-2 Kurtosis example lists prysm with image ethpandaops/prysm-beacon-chain:glamsterdam-devnet-3-minimal as a consensus-layer participant."
|
|
251
|
+
},
|
|
252
|
+
"notes": "Devnet image only. This is not a production Prysm release compatibility claim."
|
|
253
|
+
}
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"name": "teku",
|
|
258
|
+
"role": "consensus",
|
|
259
|
+
"versions": [
|
|
260
|
+
{
|
|
261
|
+
"version": "ethpandaops/teku:glamsterdam-devnet-2",
|
|
262
|
+
"status": "partial",
|
|
263
|
+
"source": {
|
|
264
|
+
"type": "public-devnet-spec",
|
|
265
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
266
|
+
"retrievedAt": "2026-05-12",
|
|
267
|
+
"claim": "The glamsterdam-devnet-2 Kurtosis example lists teku with image ethpandaops/teku:glamsterdam-devnet-2 as a consensus-layer participant."
|
|
268
|
+
},
|
|
269
|
+
"notes": "Devnet image only. This is not a production Teku release compatibility claim."
|
|
270
|
+
}
|
|
271
|
+
]
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "nimbus",
|
|
275
|
+
"role": "consensus",
|
|
276
|
+
"versions": [
|
|
277
|
+
{
|
|
278
|
+
"version": "ethpandaops/nimbus-eth2:glamsterdam-devnet-2-minimal",
|
|
279
|
+
"status": "partial",
|
|
280
|
+
"source": {
|
|
281
|
+
"type": "public-devnet-spec",
|
|
282
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
283
|
+
"retrievedAt": "2026-05-13",
|
|
284
|
+
"claim": "The glamsterdam-devnet-2 Kurtosis example lists nimbus with image ethpandaops/nimbus-eth2:glamsterdam-devnet-2-minimal as a consensus-layer participant."
|
|
285
|
+
},
|
|
286
|
+
"notes": "Devnet image only. This is not a production Nimbus release compatibility claim."
|
|
287
|
+
}
|
|
288
|
+
]
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"name": "grandine",
|
|
292
|
+
"role": "consensus",
|
|
293
|
+
"versions": [
|
|
294
|
+
{
|
|
295
|
+
"version": "ethpandaops/grandine:glamsterdam-devnet-2-minimal",
|
|
296
|
+
"status": "partial",
|
|
297
|
+
"source": {
|
|
298
|
+
"type": "public-devnet-spec",
|
|
299
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
300
|
+
"retrievedAt": "2026-05-13",
|
|
301
|
+
"claim": "The glamsterdam-devnet-2 Kurtosis example lists grandine with image ethpandaops/grandine:glamsterdam-devnet-2-minimal as a consensus-layer participant."
|
|
302
|
+
},
|
|
303
|
+
"notes": "Devnet image only. This is not a production Grandine release compatibility claim."
|
|
53
304
|
}
|
|
54
305
|
]
|
|
55
306
|
}
|
|
307
|
+
],
|
|
308
|
+
"devnets": [
|
|
309
|
+
{
|
|
310
|
+
"name": "glamsterdam-devnet-2",
|
|
311
|
+
"status": "partial",
|
|
312
|
+
"source": {
|
|
313
|
+
"type": "public-devnet-spec",
|
|
314
|
+
"url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
|
|
315
|
+
"retrievedAt": "2026-05-12",
|
|
316
|
+
"claim": "The glamsterdam-devnet-2 spec targets launch on 2026-04-30 and includes a Kurtosis participants matrix with specific EL and CL devnet images."
|
|
317
|
+
},
|
|
318
|
+
"participants": [
|
|
319
|
+
{
|
|
320
|
+
"role": "execution",
|
|
321
|
+
"name": "geth",
|
|
322
|
+
"image": "ethpandaops/geth:bal-devnet-6",
|
|
323
|
+
"status": "partial",
|
|
324
|
+
"notes": "Listed as the execution-layer participant image in the public devnet spec."
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"role": "consensus",
|
|
328
|
+
"name": "prysm",
|
|
329
|
+
"image": "ethpandaops/prysm-beacon-chain:glamsterdam-devnet-3-minimal",
|
|
330
|
+
"status": "partial",
|
|
331
|
+
"notes": "Listed as a consensus-layer participant image in the public devnet spec."
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"role": "consensus",
|
|
335
|
+
"name": "lodestar",
|
|
336
|
+
"image": "ethpandaops/lodestar:glamsterdam-devnet-2",
|
|
337
|
+
"status": "partial",
|
|
338
|
+
"notes": "Listed as a consensus-layer participant image in the public devnet spec."
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"role": "consensus",
|
|
342
|
+
"name": "lighthouse",
|
|
343
|
+
"image": "ethpandaops/lighthouse:glamsterdam-devnet-3",
|
|
344
|
+
"status": "partial",
|
|
345
|
+
"notes": "Listed as a consensus-layer participant image in the public devnet spec."
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"role": "consensus",
|
|
349
|
+
"name": "teku",
|
|
350
|
+
"image": "ethpandaops/teku:glamsterdam-devnet-2",
|
|
351
|
+
"status": "partial",
|
|
352
|
+
"notes": "Listed as a consensus-layer participant image in the public devnet spec."
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"role": "consensus",
|
|
356
|
+
"name": "nimbus",
|
|
357
|
+
"image": "ethpandaops/nimbus-eth2:glamsterdam-devnet-2-minimal",
|
|
358
|
+
"status": "partial",
|
|
359
|
+
"notes": "Listed as a consensus-layer participant image in the public devnet spec."
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"role": "consensus",
|
|
363
|
+
"name": "grandine",
|
|
364
|
+
"image": "ethpandaops/grandine:glamsterdam-devnet-2-minimal",
|
|
365
|
+
"status": "partial",
|
|
366
|
+
"notes": "Listed as a consensus-layer participant image in the public devnet spec."
|
|
367
|
+
}
|
|
368
|
+
],
|
|
369
|
+
"specVersions": [
|
|
370
|
+
{
|
|
371
|
+
"name": "consensus-specs",
|
|
372
|
+
"version": "v1.7.0-alpha.7",
|
|
373
|
+
"source": {
|
|
374
|
+
"type": "public-spec-release",
|
|
375
|
+
"url": "https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-alpha.7",
|
|
376
|
+
"sourceDate": "2026-04-29",
|
|
377
|
+
"retrievedAt": "2026-05-12",
|
|
378
|
+
"claim": "The consensus-specs v1.7.0-alpha.7 release is a pre-release containing Gloas changes used by the glamsterdam-devnet-2 spec."
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"name": "execution-spec-tests",
|
|
383
|
+
"version": "bal@v5.6.1",
|
|
384
|
+
"source": {
|
|
385
|
+
"type": "public-spec-release",
|
|
386
|
+
"url": "https://github.com/ethereum/execution-spec-tests/releases/tag/bal%40v5.6.1",
|
|
387
|
+
"sourceDate": "2026-04-02",
|
|
388
|
+
"retrievedAt": "2026-05-12",
|
|
389
|
+
"claim": "The execution-spec-tests bal@v5.6.1 pre-release is labeled for bal-devnet-3 v7 and includes BAL/state-gas test updates referenced by the glamsterdam-devnet-2 spec."
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
],
|
|
393
|
+
"notes": "Devnet participation is tracked as partial readiness. Production release compatibility must come from client release notes or other explicit public statements."
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"name": "soldogn-interop",
|
|
397
|
+
"status": "stable-multi-client-devnet-reported",
|
|
398
|
+
"source": {
|
|
399
|
+
"type": "public-interop-recap",
|
|
400
|
+
"url": "https://blog.ethereum.org/2026/05/02/soldogn-interop-recap",
|
|
401
|
+
"sourceDate": "2026-05-02",
|
|
402
|
+
"retrievedAt": "2026-05-12",
|
|
403
|
+
"claim": "The Ethereum Foundation Soldogn recap reports a stable multi-client Glamsterdam devnet running the latest ePBS, repricing, and block access list specs, with nearly all clients running together on glamsterdam-devnet-2 by Friday."
|
|
404
|
+
},
|
|
405
|
+
"participants": [],
|
|
406
|
+
"specVersions": [],
|
|
407
|
+
"notes": "Interop recap is useful context for the matrix, but this entry intentionally avoids per-client production compatibility claims."
|
|
408
|
+
}
|
|
56
409
|
]
|
|
57
410
|
}
|