glamsterdam-compat-lab 0.3.3 → 0.3.6

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.
Files changed (212) hide show
  1. package/README.md +16 -8
  2. package/ROADMAP.md +6 -1
  3. package/data/client-compat/clients.example.json +329 -12
  4. package/data/eips/glamsterdam.json +504 -25
  5. package/datasets/public-seed/README.md +15 -1
  6. package/datasets/public-seed/comparisons/bytecode-ens-registry-mainnet-runtime--default-vs-research.json +3 -3
  7. package/datasets/public-seed/comparisons/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default-vs-research.json +3 -3
  8. package/datasets/public-seed/comparisons/bytecode-multicall3-mainnet-runtime--default-vs-research.json +3 -3
  9. package/datasets/public-seed/comparisons/bytecode-safe-proxy-factory-v130-mainnet-runtime--default-vs-research.json +3 -3
  10. package/datasets/public-seed/comparisons/bytecode-storage-heavy--default-vs-research.json +3 -3
  11. package/datasets/public-seed/comparisons/bytecode-uniswap-v2-factory-mainnet-runtime--default-vs-research.json +3 -3
  12. package/datasets/public-seed/comparisons/bytecode-usdc-proxy-mainnet-runtime--default-vs-research.json +3 -3
  13. package/datasets/public-seed/comparisons/bytecode-weth9-mainnet-runtime--default-vs-research.json +3 -3
  14. package/datasets/public-seed/comparisons/traces-besu-debug-structlogs--default-vs-research.json +3 -3
  15. package/datasets/public-seed/comparisons/traces-besu-mainnet-tracoor-debug-structlogs--default-vs-research.json +3 -3
  16. package/datasets/public-seed/comparisons/traces-call-tracer-tree--default-vs-research.json +3 -3
  17. package/datasets/public-seed/comparisons/traces-drpc-call-tracer-real--default-vs-research.json +3 -3
  18. package/datasets/public-seed/comparisons/traces-erigon-action-trace--default-vs-research.json +3 -3
  19. package/datasets/public-seed/comparisons/traces-foundry-json-trace--default-vs-research.json +3 -3
  20. package/datasets/public-seed/comparisons/traces-geth-json-rpc-structlogs--default-vs-research.json +3 -3
  21. package/datasets/public-seed/comparisons/traces-geth-mainnet-tracoor-debug-structlogs--default-vs-research.json +3 -3
  22. package/datasets/public-seed/comparisons/traces-hardhat-debug-trace--default-vs-research.json +3 -3
  23. package/datasets/public-seed/comparisons/traces-nethermind-debug-structlogs--default-vs-research.json +3 -3
  24. package/datasets/public-seed/comparisons/traces-nethermind-mainnet-tracoor-debug-structlogs--default-vs-research.json +3 -3
  25. package/datasets/public-seed/comparisons/traces-reth-mainnet-tracoor-debug-structlogs--default-vs-research.json +3 -3
  26. package/datasets/public-seed/comparisons/traces-storage-heavy-trace--default-vs-research.json +3 -3
  27. package/datasets/public-seed/manifest.json +9 -3
  28. package/datasets/public-seed/readiness-clients.csv +31 -0
  29. package/datasets/public-seed/readiness-devnets.csv +9 -0
  30. package/datasets/public-seed/readiness-eips.csv +66 -0
  31. package/datasets/public-seed/readiness-sources.csv +55 -0
  32. package/datasets/public-seed/readiness.json +2099 -0
  33. package/datasets/public-seed/reports/bytecode-ens-registry-mainnet-runtime--default.json +2 -2
  34. package/datasets/public-seed/reports/bytecode-ens-registry-mainnet-runtime--research.json +2 -2
  35. package/datasets/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default.json +2 -2
  36. package/datasets/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--research.json +2 -2
  37. package/datasets/public-seed/reports/bytecode-multicall3-mainnet-runtime--default.json +2 -2
  38. package/datasets/public-seed/reports/bytecode-multicall3-mainnet-runtime--research.json +2 -2
  39. package/datasets/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--default.json +2 -2
  40. package/datasets/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--research.json +2 -2
  41. package/datasets/public-seed/reports/bytecode-storage-heavy--default.json +2 -2
  42. package/datasets/public-seed/reports/bytecode-storage-heavy--research.json +2 -2
  43. package/datasets/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--default.json +2 -2
  44. package/datasets/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--research.json +2 -2
  45. package/datasets/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--default.json +2 -2
  46. package/datasets/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--research.json +2 -2
  47. package/datasets/public-seed/reports/bytecode-weth9-mainnet-runtime--default.json +2 -2
  48. package/datasets/public-seed/reports/bytecode-weth9-mainnet-runtime--research.json +2 -2
  49. package/datasets/public-seed/reports/indexers-balance-diff-indexer--default.json +2 -2
  50. package/datasets/public-seed/reports/indexers-explorer-replay-indexer--default.json +2 -2
  51. package/datasets/public-seed/reports/indexers-graph-network-subgraph-reduced--default.json +2 -2
  52. package/datasets/public-seed/reports/indexers-subgraph--default.json +2 -2
  53. package/datasets/public-seed/reports/traces-besu-debug-structlogs--default.json +2 -2
  54. package/datasets/public-seed/reports/traces-besu-debug-structlogs--research.json +2 -2
  55. package/datasets/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--default.json +2 -2
  56. package/datasets/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--research.json +2 -2
  57. package/datasets/public-seed/reports/traces-call-tracer-tree--default.json +2 -2
  58. package/datasets/public-seed/reports/traces-call-tracer-tree--research.json +2 -2
  59. package/datasets/public-seed/reports/traces-drpc-call-tracer-real--default.json +2 -2
  60. package/datasets/public-seed/reports/traces-drpc-call-tracer-real--research.json +2 -2
  61. package/datasets/public-seed/reports/traces-erigon-action-trace--default.json +2 -2
  62. package/datasets/public-seed/reports/traces-erigon-action-trace--research.json +2 -2
  63. package/datasets/public-seed/reports/traces-foundry-json-trace--default.json +2 -2
  64. package/datasets/public-seed/reports/traces-foundry-json-trace--research.json +2 -2
  65. package/datasets/public-seed/reports/traces-geth-json-rpc-structlogs--default.json +2 -2
  66. package/datasets/public-seed/reports/traces-geth-json-rpc-structlogs--research.json +2 -2
  67. package/datasets/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--default.json +2 -2
  68. package/datasets/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--research.json +2 -2
  69. package/datasets/public-seed/reports/traces-hardhat-debug-trace--default.json +2 -2
  70. package/datasets/public-seed/reports/traces-hardhat-debug-trace--research.json +2 -2
  71. package/datasets/public-seed/reports/traces-nethermind-debug-structlogs--default.json +2 -2
  72. package/datasets/public-seed/reports/traces-nethermind-debug-structlogs--research.json +2 -2
  73. package/datasets/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--default.json +2 -2
  74. package/datasets/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--research.json +2 -2
  75. package/datasets/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--default.json +2 -2
  76. package/datasets/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--research.json +2 -2
  77. package/datasets/public-seed/reports/traces-storage-heavy-trace--default.json +2 -2
  78. package/datasets/public-seed/reports/traces-storage-heavy-trace--research.json +2 -2
  79. package/datasets/public-seed/reports/validator-glamsterdam-devnet-operator-public--default.json +10 -10
  80. package/datasets/public-seed/reports/validator-operator-config--default.json +4 -4
  81. package/datasets/public-seed/reports/validator-operator-config-builder-gap--default.json +2 -2
  82. package/datasets/public-seed/reports/validator-operator-config-complete--default.json +2 -2
  83. package/datasets/public-seed/summary.json +1 -1
  84. package/dist/cli.js +6 -1
  85. package/dist/cli.js.map +1 -1
  86. package/dist/index.d.ts +6 -2
  87. package/dist/index.js +3 -1
  88. package/dist/index.js.map +1 -1
  89. package/dist/registry/clientMatrix.d.ts +352 -0
  90. package/dist/registry/clientMatrix.js +241 -0
  91. package/dist/registry/clientMatrix.js.map +1 -0
  92. package/dist/registry/schemas.d.ts +34 -1
  93. package/dist/registry/schemas.js +17 -1
  94. package/dist/registry/schemas.js.map +1 -1
  95. package/dist/registry/sourceFreshness.d.ts +42 -0
  96. package/dist/registry/sourceFreshness.js +146 -0
  97. package/dist/registry/sourceFreshness.js.map +1 -0
  98. package/dist/reports/reportTypes.d.ts +1 -1
  99. package/dist/reports/reportTypes.js +1 -1
  100. package/dist/scanners/validatorScanner.d.ts +1 -110
  101. package/dist/scanners/validatorScanner.js +2 -73
  102. package/dist/scanners/validatorScanner.js.map +1 -1
  103. package/docs/client-compat.md +63 -5
  104. package/docs/dataset.md +122 -2
  105. package/docs/release.md +6 -2
  106. package/docs/releases/v0.3.4.md +15 -0
  107. package/docs/releases/v0.3.6.md +15 -0
  108. package/examples/baseline-comparison.md +1 -1
  109. package/examples/public-seed-analysis.md +15 -13
  110. package/fixtures/provenance.json +1 -1
  111. package/fixtures/validator/glamsterdam-devnet-operator-public.yaml +2 -2
  112. package/package.json +7 -1
  113. package/site/public-seed/comparisons/bytecode-ens-registry-mainnet-runtime--default-vs-research.html +496 -0
  114. package/site/public-seed/comparisons/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default-vs-research.html +510 -0
  115. package/site/public-seed/comparisons/bytecode-multicall3-mainnet-runtime--default-vs-research.html +510 -0
  116. package/site/public-seed/comparisons/bytecode-safe-proxy-factory-v130-mainnet-runtime--default-vs-research.html +524 -0
  117. package/site/public-seed/comparisons/bytecode-storage-heavy--default-vs-research.html +510 -0
  118. package/site/public-seed/comparisons/bytecode-uniswap-v2-factory-mainnet-runtime--default-vs-research.html +510 -0
  119. package/site/public-seed/comparisons/bytecode-usdc-proxy-mainnet-runtime--default-vs-research.html +517 -0
  120. package/site/public-seed/comparisons/bytecode-weth9-mainnet-runtime--default-vs-research.html +496 -0
  121. package/site/public-seed/comparisons/traces-besu-debug-structlogs--default-vs-research.html +475 -0
  122. package/site/public-seed/comparisons/traces-besu-mainnet-tracoor-debug-structlogs--default-vs-research.html +496 -0
  123. package/site/public-seed/comparisons/traces-call-tracer-tree--default-vs-research.html +489 -0
  124. package/site/public-seed/comparisons/traces-drpc-call-tracer-real--default-vs-research.html +489 -0
  125. package/site/public-seed/comparisons/traces-erigon-action-trace--default-vs-research.html +489 -0
  126. package/site/public-seed/comparisons/traces-foundry-json-trace--default-vs-research.html +503 -0
  127. package/site/public-seed/comparisons/traces-geth-json-rpc-structlogs--default-vs-research.html +482 -0
  128. package/site/public-seed/comparisons/traces-geth-mainnet-tracoor-debug-structlogs--default-vs-research.html +510 -0
  129. package/site/public-seed/comparisons/traces-hardhat-debug-trace--default-vs-research.html +482 -0
  130. package/site/public-seed/comparisons/traces-nethermind-debug-structlogs--default-vs-research.html +501 -0
  131. package/site/public-seed/comparisons/traces-nethermind-mainnet-tracoor-debug-structlogs--default-vs-research.html +496 -0
  132. package/site/public-seed/comparisons/traces-reth-mainnet-tracoor-debug-structlogs--default-vs-research.html +510 -0
  133. package/site/public-seed/comparisons/traces-storage-heavy-trace--default-vs-research.html +503 -0
  134. package/site/public-seed/findings/bytecode.calldata-copy-exposure.html +683 -0
  135. package/site/public-seed/findings/bytecode.contract-creation-opcodes.html +551 -0
  136. package/site/public-seed/findings/bytecode.contract-size-near-current-limit.html +463 -0
  137. package/site/public-seed/findings/bytecode.log-opcodes-present.html +771 -0
  138. package/site/public-seed/findings/bytecode.manual-review-required.html +771 -0
  139. package/site/public-seed/findings/bytecode.state-account-opcode-exposure.html +727 -0
  140. package/site/public-seed/findings/bytecode.state-account-opcode-presence.html +441 -0
  141. package/site/public-seed/findings/bytecode.storage-heavy-pattern.html +683 -0
  142. package/site/public-seed/findings/indexer.balance-diff-native-transfer-assumption.html +463 -0
  143. package/site/public-seed/findings/indexer.event-only-assumption.html +463 -0
  144. package/site/public-seed/findings/indexer.missing-bal-readiness-metadata.html +485 -0
  145. package/site/public-seed/findings/indexer.missing-fork-compatibility-metadata.html +463 -0
  146. package/site/public-seed/findings/indexer.missing-replay-plan.html +463 -0
  147. package/site/public-seed/findings/indexer.native-eth-transfer-review-missing.html +463 -0
  148. package/site/public-seed/findings/trace.calldata-heavy-execution.html +815 -0
  149. package/site/public-seed/findings/trace.contract-creation-executed.html +639 -0
  150. package/site/public-seed/findings/trace.logs-calls-visible.html +991 -0
  151. package/site/public-seed/findings/trace.partial-evidence.html +771 -0
  152. package/site/public-seed/findings/trace.state-heavy-execution-medium.html +617 -0
  153. package/site/public-seed/findings/validator.builder-enabled-without-endpoint.html +463 -0
  154. package/site/public-seed/findings/validator.consensus-client-status-partial.html +441 -0
  155. package/site/public-seed/findings/validator.execution-client-status-partial.html +441 -0
  156. package/site/public-seed/findings/validator.missing-monitoring-endpoints.html +463 -0
  157. package/site/public-seed/findings/validator.missing-testnet-participation.html +463 -0
  158. package/site/public-seed/findings/validator.missing-validator-client-version.html +441 -0
  159. package/site/public-seed/findings/validator.unknown-consensus-client-compatibility.html +441 -0
  160. package/site/public-seed/findings/validator.unknown-execution-client-compatibility.html +441 -0
  161. package/site/public-seed/index.html +2560 -0
  162. package/site/public-seed/readiness.html +2238 -0
  163. package/site/public-seed/reports/bytecode-ens-registry-mainnet-runtime--default.html +548 -0
  164. package/site/public-seed/reports/bytecode-ens-registry-mainnet-runtime--research.html +548 -0
  165. package/site/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default.html +595 -0
  166. package/site/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--research.html +595 -0
  167. package/site/public-seed/reports/bytecode-multicall3-mainnet-runtime--default.html +517 -0
  168. package/site/public-seed/reports/bytecode-multicall3-mainnet-runtime--research.html +544 -0
  169. package/site/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--default.html +570 -0
  170. package/site/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--research.html +595 -0
  171. package/site/public-seed/reports/bytecode-storage-heavy--default.html +595 -0
  172. package/site/public-seed/reports/bytecode-storage-heavy--research.html +595 -0
  173. package/site/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--default.html +596 -0
  174. package/site/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--research.html +596 -0
  175. package/site/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--default.html +547 -0
  176. package/site/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--research.html +572 -0
  177. package/site/public-seed/reports/bytecode-weth9-mainnet-runtime--default.html +549 -0
  178. package/site/public-seed/reports/bytecode-weth9-mainnet-runtime--research.html +549 -0
  179. package/site/public-seed/reports/indexers-balance-diff-indexer--default.html +481 -0
  180. package/site/public-seed/reports/indexers-explorer-replay-indexer--default.html +460 -0
  181. package/site/public-seed/reports/indexers-graph-network-subgraph-reduced--default.html +549 -0
  182. package/site/public-seed/reports/indexers-subgraph--default.html +548 -0
  183. package/site/public-seed/reports/traces-besu-debug-structlogs--default.html +469 -0
  184. package/site/public-seed/reports/traces-besu-debug-structlogs--research.html +469 -0
  185. package/site/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--default.html +549 -0
  186. package/site/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--research.html +549 -0
  187. package/site/public-seed/reports/traces-call-tracer-tree--default.html +518 -0
  188. package/site/public-seed/reports/traces-call-tracer-tree--research.html +518 -0
  189. package/site/public-seed/reports/traces-drpc-call-tracer-real--default.html +520 -0
  190. package/site/public-seed/reports/traces-drpc-call-tracer-real--research.html +520 -0
  191. package/site/public-seed/reports/traces-erigon-action-trace--default.html +518 -0
  192. package/site/public-seed/reports/traces-erigon-action-trace--research.html +518 -0
  193. package/site/public-seed/reports/traces-foundry-json-trace--default.html +493 -0
  194. package/site/public-seed/reports/traces-foundry-json-trace--research.html +521 -0
  195. package/site/public-seed/reports/traces-geth-json-rpc-structlogs--default.html +493 -0
  196. package/site/public-seed/reports/traces-geth-json-rpc-structlogs--research.html +493 -0
  197. package/site/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--default.html +521 -0
  198. package/site/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--research.html +549 -0
  199. package/site/public-seed/reports/traces-hardhat-debug-trace--default.html +493 -0
  200. package/site/public-seed/reports/traces-hardhat-debug-trace--research.html +493 -0
  201. package/site/public-seed/reports/traces-nethermind-debug-structlogs--default.html +517 -0
  202. package/site/public-seed/reports/traces-nethermind-debug-structlogs--research.html +517 -0
  203. package/site/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--default.html +549 -0
  204. package/site/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--research.html +549 -0
  205. package/site/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--default.html +521 -0
  206. package/site/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--research.html +549 -0
  207. package/site/public-seed/reports/traces-storage-heavy-trace--default.html +570 -0
  208. package/site/public-seed/reports/traces-storage-heavy-trace--research.html +570 -0
  209. package/site/public-seed/reports/validator-glamsterdam-devnet-operator-public--default.html +513 -0
  210. package/site/public-seed/reports/validator-operator-config--default.html +584 -0
  211. package/site/public-seed/reports/validator-operator-config-builder-gap--default.html +509 -0
  212. package/site/public-seed/reports/validator-operator-config-complete--default.html +441 -0
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 and ePBS, plus considered work around gas repricing, native ETH transfer logs, contract-size changes, state creation costs, calldata costs, and related areas.
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.3
39
+ npm install -g glamsterdam-compat-lab@0.3.6
40
40
  glamsterdam eips
41
41
  ```
42
42
 
43
- The v0.3.3 GitHub release tarball remains available as a reproducible release artifact:
43
+ The v0.3.6 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.3/glamsterdam-compat-lab-0.3.3.tgz
46
+ npm install -g https://github.com/CruzMolina/glamsterdam-compat-lab/releases/download/v0.3.6/glamsterdam-compat-lab-0.3.6.tgz
47
47
  ```
48
48
 
49
49
  See [docs/release.md](docs/release.md) for maintainer release checks and npm publishing notes.
@@ -72,16 +72,24 @@ 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 CSV exports (`reports.csv`, `findings.csv`, `summary.csv`) for spreadsheet and warehouse import.
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
+
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.
76
78
 
77
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.
78
80
 
79
- Regenerate it with:
81
+ Regenerate and verify it with:
80
82
 
81
83
  ```sh
82
84
  pnpm dataset:generate
85
+ pnpm dataset:check
86
+ pnpm readiness:freshness
87
+ pnpm site:generate
88
+ pnpm site:check
83
89
  ```
84
90
 
91
+ `readiness.json`, `readiness-sources.csv`, and `site/public-seed/readiness.html` include source freshness bands and source-type counts. Generated age fields are pinned to the readiness dataset date for deterministic artifacts; `pnpm readiness:freshness` performs the live current-date audit and warns when sources move from `fresh` to `watch` or `stale`.
92
+
85
93
  ## What the scanners can detect
86
94
 
87
95
  `scan-bytecode` normalizes EVM bytecode, disassembles opcodes while skipping PUSH data, counts relevant opcodes, and reports conservative risks around contract size, storage/account access, CREATE/CREATE2 usage, calldata copying, logs, and manual-review limits.
@@ -133,7 +141,7 @@ Each scanner returns a `CompatibilityReport`:
133
141
 
134
142
  ```json
135
143
  {
136
- "toolVersion": "0.3.3",
144
+ "toolVersion": "0.3.6",
137
145
  "fork": "glamsterdam",
138
146
  "target": {
139
147
  "kind": "bytecode",
@@ -221,7 +229,7 @@ Release publishing notes live in [docs/release.md](docs/release.md).
221
229
 
222
230
  ## Roadmap
223
231
 
224
- 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.
232
+ 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; `v0.3.5` adds readiness source freshness and drift guardrails; `v0.3.6` adds public client release-note intake and stricter conservative matrix rules.
225
233
 
226
234
  ## Disclaimer
227
235
 
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`; additional public Geth and Reth trace fixtures added in `v0.3.3`.
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,16 @@ 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; `v0.3.5` adds deterministic source freshness policy, live audit guardrails, and refreshed source-review notes; `v0.3.6` adds public client release-note intake, source-type readiness counts, and stricter conservative matrix rules.
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
77
+ - Guard source drift with stable generated freshness bands, current-date freshness audits, and explicit stale-source warnings that do not imply incompatibility
78
+ - Distinguish devnet image provenance, client release-note provenance, and operator-maintained compatibility claims in public readiness exports
74
79
 
75
80
  ## Phase 4: Dashboard
76
81
 
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "fork": "glamsterdam",
3
- "lastUpdated": "2026-05-12",
3
+ "lastUpdated": "2026-05-13",
4
4
  "sources": [
5
5
  {
6
6
  "type": "public-interop-recap",
7
7
  "url": "https://blog.ethereum.org/2026/05/02/soldogn-interop-recap",
8
8
  "sourceDate": "2026-05-02",
9
- "retrievedAt": "2026-05-12",
9
+ "retrievedAt": "2026-05-13",
10
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
11
  "notes": "This source supports devnet/interoperability context, not production release compatibility."
12
12
  },
13
13
  {
14
14
  "type": "public-devnet-spec",
15
15
  "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
16
- "retrievedAt": "2026-05-12",
16
+ "retrievedAt": "2026-05-13",
17
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
18
  "notes": "This source supports devnet participant examples. It does not claim mainnet-ready client releases."
19
19
  },
@@ -21,7 +21,7 @@
21
21
  "type": "public-spec-release",
22
22
  "url": "https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-alpha.7",
23
23
  "sourceDate": "2026-04-29",
24
- "retrievedAt": "2026-05-12",
24
+ "retrievedAt": "2026-05-13",
25
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
26
  "notes": "Spec release metadata is useful provenance for devnet test entries, but is not a client release."
27
27
  },
@@ -29,9 +29,97 @@
29
29
  "type": "public-spec-release",
30
30
  "url": "https://github.com/ethereum/execution-spec-tests/releases/tag/bal%40v5.6.1",
31
31
  "sourceDate": "2026-04-02",
32
- "retrievedAt": "2026-05-12",
32
+ "retrievedAt": "2026-05-13",
33
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
34
  "notes": "Spec-test release metadata is useful provenance for devnet test entries, but is not a client release."
35
+ },
36
+ {
37
+ "type": "public-client-release",
38
+ "url": "https://github.com/ethereum/go-ethereum/releases/tag/v1.17.3",
39
+ "sourceDate": "2026-05-11",
40
+ "retrievedAt": "2026-05-13",
41
+ "claim": "Geth v1.17.3 release notes describe continued progress on the Amsterdam fork implementation, including prerequisites for EIP-7928, EIP-8037, EIP-7976, EIP-7981, EIP-7610, and updated state tests.",
42
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
43
+ },
44
+ {
45
+ "type": "public-client-release",
46
+ "url": "https://github.com/NethermindEth/nethermind/releases/tag/1.37.2",
47
+ "sourceDate": "2026-05-05",
48
+ "retrievedAt": "2026-05-13",
49
+ "claim": "Nethermind v1.37.2 release notes describe healthcheck and archive invalid-block fixes for v1.37.1 and do not state Glamsterdam or Amsterdam readiness.",
50
+ "notes": "Latest release reviewed. No explicit Glamsterdam/Amsterdam readiness signal found in this release note."
51
+ },
52
+ {
53
+ "type": "public-client-release",
54
+ "url": "https://github.com/besu-eth/besu/releases/tag/26.5.0",
55
+ "sourceDate": "2026-05-12",
56
+ "retrievedAt": "2026-05-13",
57
+ "claim": "Besu 26.5.0 release notes include Block Access List pipeline work, EIP-7928 Block Access List budget enforcement, Block Access List index encoding changes, and adding EIP-7981 to Amsterdam.",
58
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
59
+ },
60
+ {
61
+ "type": "public-client-release",
62
+ "url": "https://github.com/paradigmxyz/reth/releases/tag/v2.2.0",
63
+ "sourceDate": "2026-04-30",
64
+ "retrievedAt": "2026-05-13",
65
+ "claim": "Reth v2.2.0 release notes say the release lays groundwork for Amsterdam EIP-7928 Block Access Lists, with BAL store, P2P wire support, payload-builder integration, and parallel/batched BAL execution paths.",
66
+ "notes": "Client release-note provenance only. The notes call this groundwork and mention gated paths, not complete Glamsterdam production compatibility."
67
+ },
68
+ {
69
+ "type": "public-client-release",
70
+ "url": "https://github.com/sigp/lighthouse/releases/tag/v8.1.3",
71
+ "sourceDate": "2026-03-26",
72
+ "retrievedAt": "2026-05-13",
73
+ "claim": "Lighthouse v8.1.3 release notes describe maintenance fixes and do not state Glamsterdam, Amsterdam, or Gloas readiness.",
74
+ "notes": "Latest release reviewed. Use the v8.1.0 row for the explicit Gloas release-note signal."
75
+ },
76
+ {
77
+ "type": "public-client-release",
78
+ "url": "https://github.com/sigp/lighthouse/releases/tag/v8.1.0",
79
+ "sourceDate": "2026-02-05",
80
+ "retrievedAt": "2026-05-13",
81
+ "claim": "Lighthouse v8.1.0 release notes include Gloas gossip boilerplate, Gloas data column support, consensus types updated for Gloas v1.7.0-alpha.1, Gloas off-protocol payment fields, and EIP-7732 Gloas containers/constants.",
82
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
83
+ },
84
+ {
85
+ "type": "public-client-release",
86
+ "url": "https://github.com/ChainSafe/lodestar/releases/tag/v1.42.0",
87
+ "sourceDate": "2026-04-13",
88
+ "retrievedAt": "2026-05-13",
89
+ "claim": "Lodestar v1.42.0 release notes say the release makes great strides toward the Gloas hard fork and list Gloas network processor, data-column sidecar, payload-envelope pipeline, voluntary-exit, and ePBS state-cache work.",
90
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
91
+ },
92
+ {
93
+ "type": "public-client-release",
94
+ "url": "https://github.com/OffchainLabs/prysm/releases/tag/v7.1.3",
95
+ "sourceDate": "2026-03-18",
96
+ "retrievedAt": "2026-05-13",
97
+ "claim": "Prysm v7.1.3 release notes describe extensive Gloas groundwork and list Gloas builder support, latest execution bid processing, proposer slashing, beacon API block returns, payload attestation processing, and Gloas timing intervals.",
98
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
99
+ },
100
+ {
101
+ "type": "public-client-release",
102
+ "url": "https://github.com/Consensys/teku/releases/tag/26.4.0",
103
+ "sourceDate": "2026-03-31",
104
+ "retrievedAt": "2026-05-13",
105
+ "claim": "Teku 26.4.0 release notes include the PostPtcDuties REST API endpoint for the Gloas API.",
106
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
107
+ },
108
+ {
109
+ "type": "public-client-release",
110
+ "url": "https://github.com/status-im/nimbus-eth2/releases/tag/v26.3.1",
111
+ "sourceDate": "2026-03-28",
112
+ "retrievedAt": "2026-05-13",
113
+ "claim": "Nimbus v26.3.1 release notes describe Ethereum column-handling performance, validator robustness, Gnosis Fulu scheduling, and fast-confirmation work, but do not state Glamsterdam, Amsterdam, or Gloas readiness.",
114
+ "notes": "Latest release reviewed. No explicit Glamsterdam/Amsterdam/Gloas readiness signal found in this release note."
115
+ },
116
+ {
117
+ "type": "public-client-release",
118
+ "url": "https://github.com/grandinetech/grandine/releases/tag/2.0.4",
119
+ "sourceDate": "2026-03-31",
120
+ "retrievedAt": "2026-05-13",
121
+ "claim": "Grandine 2.0.4 release notes include post-Gloas beacon block API publishing, execution payload bid endpoints, payload attestation ticks, and consensus spec tests v1.7.0-alpha.3.",
122
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
35
123
  }
36
124
  ],
37
125
  "clients": [
@@ -195,10 +283,80 @@
195
283
  "source": {
196
284
  "type": "public-devnet-spec",
197
285
  "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
198
- "retrievedAt": "2026-05-12",
286
+ "retrievedAt": "2026-05-13",
199
287
  "claim": "The glamsterdam-devnet-2 Kurtosis example lists geth with image ethpandaops/geth:bal-devnet-6 as the execution-layer participant."
200
288
  },
201
289
  "notes": "Devnet image only. This is not a production Geth release compatibility claim."
290
+ },
291
+ {
292
+ "version": "v1.17.3",
293
+ "status": "partial",
294
+ "source": {
295
+ "type": "public-client-release",
296
+ "url": "https://github.com/ethereum/go-ethereum/releases/tag/v1.17.3",
297
+ "sourceDate": "2026-05-11",
298
+ "retrievedAt": "2026-05-13",
299
+ "claim": "Geth v1.17.3 release notes describe continued progress on the Amsterdam fork implementation, including prerequisites for EIP-7928, EIP-8037, EIP-7976, EIP-7981, EIP-7610, and updated state tests.",
300
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
301
+ },
302
+ "notes": "Public release notes show Amsterdam-related implementation work, but not a complete Glamsterdam mainnet readiness statement."
303
+ }
304
+ ]
305
+ },
306
+ {
307
+ "name": "nethermind",
308
+ "role": "execution",
309
+ "versions": [
310
+ {
311
+ "version": "1.37.2",
312
+ "status": "unknown",
313
+ "source": {
314
+ "type": "public-client-release",
315
+ "url": "https://github.com/NethermindEth/nethermind/releases/tag/1.37.2",
316
+ "sourceDate": "2026-05-05",
317
+ "retrievedAt": "2026-05-13",
318
+ "claim": "Nethermind v1.37.2 release notes describe healthcheck and archive invalid-block fixes for v1.37.1 and do not state Glamsterdam or Amsterdam readiness.",
319
+ "notes": "Latest release reviewed. No explicit Glamsterdam/Amsterdam readiness signal found in this release note."
320
+ },
321
+ "notes": "Latest public release note reviewed; status remains unknown until a client release or operator-maintained source explicitly states readiness."
322
+ }
323
+ ]
324
+ },
325
+ {
326
+ "name": "besu",
327
+ "role": "execution",
328
+ "versions": [
329
+ {
330
+ "version": "26.5.0",
331
+ "status": "partial",
332
+ "source": {
333
+ "type": "public-client-release",
334
+ "url": "https://github.com/besu-eth/besu/releases/tag/26.5.0",
335
+ "sourceDate": "2026-05-12",
336
+ "retrievedAt": "2026-05-13",
337
+ "claim": "Besu 26.5.0 release notes include Block Access List pipeline work, EIP-7928 Block Access List budget enforcement, Block Access List index encoding changes, and adding EIP-7981 to Amsterdam.",
338
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
339
+ },
340
+ "notes": "Public release notes show Amsterdam and Block Access List implementation work, but not a complete Glamsterdam mainnet readiness statement."
341
+ }
342
+ ]
343
+ },
344
+ {
345
+ "name": "reth",
346
+ "role": "execution",
347
+ "versions": [
348
+ {
349
+ "version": "v2.2.0",
350
+ "status": "partial",
351
+ "source": {
352
+ "type": "public-client-release",
353
+ "url": "https://github.com/paradigmxyz/reth/releases/tag/v2.2.0",
354
+ "sourceDate": "2026-04-30",
355
+ "retrievedAt": "2026-05-13",
356
+ "claim": "Reth v2.2.0 release notes say the release lays groundwork for Amsterdam EIP-7928 Block Access Lists, with BAL store, P2P wire support, payload-builder integration, and parallel/batched BAL execution paths.",
357
+ "notes": "Client release-note provenance only. The notes call this groundwork and mention gated paths, not complete Glamsterdam production compatibility."
358
+ },
359
+ "notes": "Public release notes show Amsterdam/BAL implementation groundwork, but not a complete Glamsterdam mainnet readiness statement."
202
360
  }
203
361
  ]
204
362
  },
@@ -212,10 +370,96 @@
212
370
  "source": {
213
371
  "type": "public-devnet-spec",
214
372
  "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
215
- "retrievedAt": "2026-05-12",
373
+ "retrievedAt": "2026-05-13",
216
374
  "claim": "The glamsterdam-devnet-2 Kurtosis example lists lighthouse with image ethpandaops/lighthouse:glamsterdam-devnet-3 as a consensus-layer participant."
217
375
  },
218
376
  "notes": "Devnet image only. This is not a production Lighthouse release compatibility claim."
377
+ },
378
+ {
379
+ "version": "v8.1.3",
380
+ "status": "unknown",
381
+ "source": {
382
+ "type": "public-client-release",
383
+ "url": "https://github.com/sigp/lighthouse/releases/tag/v8.1.3",
384
+ "sourceDate": "2026-03-26",
385
+ "retrievedAt": "2026-05-13",
386
+ "claim": "Lighthouse v8.1.3 release notes describe maintenance fixes and do not state Glamsterdam, Amsterdam, or Gloas readiness.",
387
+ "notes": "Latest release reviewed. Use the v8.1.0 row for the explicit Gloas release-note signal."
388
+ },
389
+ "notes": "Latest public release note reviewed; status remains unknown because this release note does not itself claim Glamsterdam/Amsterdam/Gloas readiness."
390
+ },
391
+ {
392
+ "version": "v8.1.0",
393
+ "status": "partial",
394
+ "source": {
395
+ "type": "public-client-release",
396
+ "url": "https://github.com/sigp/lighthouse/releases/tag/v8.1.0",
397
+ "sourceDate": "2026-02-05",
398
+ "retrievedAt": "2026-05-13",
399
+ "claim": "Lighthouse v8.1.0 release notes include Gloas gossip boilerplate, Gloas data column support, consensus types updated for Gloas v1.7.0-alpha.1, Gloas off-protocol payment fields, and EIP-7732 Gloas containers/constants.",
400
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
401
+ },
402
+ "notes": "Public release notes show Gloas implementation work, but not a complete Glamsterdam mainnet readiness statement."
403
+ }
404
+ ]
405
+ },
406
+ {
407
+ "name": "lodestar",
408
+ "role": "consensus",
409
+ "versions": [
410
+ {
411
+ "version": "ethpandaops/lodestar:glamsterdam-devnet-2",
412
+ "status": "partial",
413
+ "source": {
414
+ "type": "public-devnet-spec",
415
+ "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
416
+ "retrievedAt": "2026-05-13",
417
+ "claim": "The glamsterdam-devnet-2 Kurtosis example lists lodestar with image ethpandaops/lodestar:glamsterdam-devnet-2 as a consensus-layer participant."
418
+ },
419
+ "notes": "Devnet image only. This is not a production Lodestar release compatibility claim."
420
+ },
421
+ {
422
+ "version": "v1.42.0",
423
+ "status": "partial",
424
+ "source": {
425
+ "type": "public-client-release",
426
+ "url": "https://github.com/ChainSafe/lodestar/releases/tag/v1.42.0",
427
+ "sourceDate": "2026-04-13",
428
+ "retrievedAt": "2026-05-13",
429
+ "claim": "Lodestar v1.42.0 release notes say the release makes great strides toward the Gloas hard fork and list Gloas network processor, data-column sidecar, payload-envelope pipeline, voluntary-exit, and ePBS state-cache work.",
430
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
431
+ },
432
+ "notes": "Public release notes show Gloas implementation work, but not a complete Glamsterdam mainnet readiness statement."
433
+ }
434
+ ]
435
+ },
436
+ {
437
+ "name": "prysm",
438
+ "role": "consensus",
439
+ "versions": [
440
+ {
441
+ "version": "ethpandaops/prysm-beacon-chain:glamsterdam-devnet-3-minimal",
442
+ "status": "partial",
443
+ "source": {
444
+ "type": "public-devnet-spec",
445
+ "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
446
+ "retrievedAt": "2026-05-13",
447
+ "claim": "The glamsterdam-devnet-2 Kurtosis example lists prysm with image ethpandaops/prysm-beacon-chain:glamsterdam-devnet-3-minimal as a consensus-layer participant."
448
+ },
449
+ "notes": "Devnet image only. This is not a production Prysm release compatibility claim."
450
+ },
451
+ {
452
+ "version": "v7.1.3",
453
+ "status": "partial",
454
+ "source": {
455
+ "type": "public-client-release",
456
+ "url": "https://github.com/OffchainLabs/prysm/releases/tag/v7.1.3",
457
+ "sourceDate": "2026-03-18",
458
+ "retrievedAt": "2026-05-13",
459
+ "claim": "Prysm v7.1.3 release notes describe extensive Gloas groundwork and list Gloas builder support, latest execution bid processing, proposer slashing, beacon API block returns, payload attestation processing, and Gloas timing intervals.",
460
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
461
+ },
462
+ "notes": "Public release notes show Gloas groundwork and implementation work, but not a complete Glamsterdam mainnet readiness statement."
219
463
  }
220
464
  ]
221
465
  },
@@ -229,10 +473,83 @@
229
473
  "source": {
230
474
  "type": "public-devnet-spec",
231
475
  "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
232
- "retrievedAt": "2026-05-12",
476
+ "retrievedAt": "2026-05-13",
233
477
  "claim": "The glamsterdam-devnet-2 Kurtosis example lists teku with image ethpandaops/teku:glamsterdam-devnet-2 as a consensus-layer participant."
234
478
  },
235
479
  "notes": "Devnet image only. This is not a production Teku release compatibility claim."
480
+ },
481
+ {
482
+ "version": "26.4.0",
483
+ "status": "partial",
484
+ "source": {
485
+ "type": "public-client-release",
486
+ "url": "https://github.com/Consensys/teku/releases/tag/26.4.0",
487
+ "sourceDate": "2026-03-31",
488
+ "retrievedAt": "2026-05-13",
489
+ "claim": "Teku 26.4.0 release notes include the PostPtcDuties REST API endpoint for the Gloas API.",
490
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
491
+ },
492
+ "notes": "Public release notes show a Gloas API implementation item, but not a complete Glamsterdam mainnet readiness statement."
493
+ }
494
+ ]
495
+ },
496
+ {
497
+ "name": "nimbus",
498
+ "role": "consensus",
499
+ "versions": [
500
+ {
501
+ "version": "ethpandaops/nimbus-eth2:glamsterdam-devnet-2-minimal",
502
+ "status": "partial",
503
+ "source": {
504
+ "type": "public-devnet-spec",
505
+ "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
506
+ "retrievedAt": "2026-05-13",
507
+ "claim": "The glamsterdam-devnet-2 Kurtosis example lists nimbus with image ethpandaops/nimbus-eth2:glamsterdam-devnet-2-minimal as a consensus-layer participant."
508
+ },
509
+ "notes": "Devnet image only. This is not a production Nimbus release compatibility claim."
510
+ },
511
+ {
512
+ "version": "v26.3.1",
513
+ "status": "unknown",
514
+ "source": {
515
+ "type": "public-client-release",
516
+ "url": "https://github.com/status-im/nimbus-eth2/releases/tag/v26.3.1",
517
+ "sourceDate": "2026-03-28",
518
+ "retrievedAt": "2026-05-13",
519
+ "claim": "Nimbus v26.3.1 release notes describe Ethereum column-handling performance, validator robustness, Gnosis Fulu scheduling, and fast-confirmation work, but do not state Glamsterdam, Amsterdam, or Gloas readiness.",
520
+ "notes": "Latest release reviewed. No explicit Glamsterdam/Amsterdam/Gloas readiness signal found in this release note."
521
+ },
522
+ "notes": "Latest public release note reviewed; status remains unknown until a client release or operator-maintained source explicitly states readiness."
523
+ }
524
+ ]
525
+ },
526
+ {
527
+ "name": "grandine",
528
+ "role": "consensus",
529
+ "versions": [
530
+ {
531
+ "version": "ethpandaops/grandine:glamsterdam-devnet-2-minimal",
532
+ "status": "partial",
533
+ "source": {
534
+ "type": "public-devnet-spec",
535
+ "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
536
+ "retrievedAt": "2026-05-13",
537
+ "claim": "The glamsterdam-devnet-2 Kurtosis example lists grandine with image ethpandaops/grandine:glamsterdam-devnet-2-minimal as a consensus-layer participant."
538
+ },
539
+ "notes": "Devnet image only. This is not a production Grandine release compatibility claim."
540
+ },
541
+ {
542
+ "version": "2.0.4",
543
+ "status": "partial",
544
+ "source": {
545
+ "type": "public-client-release",
546
+ "url": "https://github.com/grandinetech/grandine/releases/tag/2.0.4",
547
+ "sourceDate": "2026-03-31",
548
+ "retrievedAt": "2026-05-13",
549
+ "claim": "Grandine 2.0.4 release notes include post-Gloas beacon block API publishing, execution payload bid endpoints, payload attestation ticks, and consensus spec tests v1.7.0-alpha.3.",
550
+ "notes": "Client release-note provenance only. This does not assert complete Glamsterdam production compatibility."
551
+ },
552
+ "notes": "Public release notes show post-Gloas API and testing work, but not a complete Glamsterdam mainnet readiness statement."
236
553
  }
237
554
  ]
238
555
  }
@@ -244,7 +561,7 @@
244
561
  "source": {
245
562
  "type": "public-devnet-spec",
246
563
  "url": "https://notes.ethereum.org/@ethpandaops/glamsterdam-devnet-2",
247
- "retrievedAt": "2026-05-12",
564
+ "retrievedAt": "2026-05-13",
248
565
  "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."
249
566
  },
250
567
  "participants": [
@@ -306,7 +623,7 @@
306
623
  "type": "public-spec-release",
307
624
  "url": "https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-alpha.7",
308
625
  "sourceDate": "2026-04-29",
309
- "retrievedAt": "2026-05-12",
626
+ "retrievedAt": "2026-05-13",
310
627
  "claim": "The consensus-specs v1.7.0-alpha.7 release is a pre-release containing Gloas changes used by the glamsterdam-devnet-2 spec."
311
628
  }
312
629
  },
@@ -317,7 +634,7 @@
317
634
  "type": "public-spec-release",
318
635
  "url": "https://github.com/ethereum/execution-spec-tests/releases/tag/bal%40v5.6.1",
319
636
  "sourceDate": "2026-04-02",
320
- "retrievedAt": "2026-05-12",
637
+ "retrievedAt": "2026-05-13",
321
638
  "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."
322
639
  }
323
640
  }
@@ -331,7 +648,7 @@
331
648
  "type": "public-interop-recap",
332
649
  "url": "https://blog.ethereum.org/2026/05/02/soldogn-interop-recap",
333
650
  "sourceDate": "2026-05-02",
334
- "retrievedAt": "2026-05-12",
651
+ "retrievedAt": "2026-05-13",
335
652
  "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."
336
653
  },
337
654
  "participants": [],