[Feat] Use 9 blobs for Pectra (#944)

* use 9 blobs for Pectra

* add linting to script

* turn prague on by default

* remove non-prague configuration

* testing not-yet-prague is the reason for failure

* using pectra from genesis

* reset to 9 for testing

* lowering blobs per tick

* add missing 9s and update blobscan

* spotless

* expect 9 blobs in one tx

* Update coordinator/app/src/main/kotlin/net/consensys/zkevm/coordinator/app/config/CoordinatorConfig.kt

Co-authored-by: Julien Marchand <julien-marchand@users.noreply.github.com>
Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com>

* refactor testdata folders and use 9 blob agg

* refactor function for ease of reading

* move arguments up

* rename function

* format parameters

* validate at least 1 blob exists

* more spotless

* simplify blob hash computation

---------

Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com>
Co-authored-by: Julien Marchand <julien-marchand@users.noreply.github.com>
This commit is contained in:
The Dark Jester
2025-05-09 09:47:54 +01:00
committed by GitHub
parent ae596cef80
commit 1b2040fe1e
411 changed files with 255 additions and 140 deletions

View File

@@ -0,0 +1,32 @@
{
"finalShnarf": "0x5f17bcce5a7e23830dbf86c356f622b6ffde01d50f728db9eb40d3b32325ffde",
"parentAggregationFinalShnarf": "0x47452a1b9ebadfe02bdd02f580fa1eba17680d57eec968a591644d05d78ee84f",
"aggregatedProof": "0x1ba03d39156ece0995ab00e06b16a16d57e4e7049536c6dfb91d5c0bf376eade1460f57b6c8299c18551bcda7ab0bb12d19b1d7223c2019d81b4c2d78172d3c50890c473cd74077a497e4164a446cabebccfcc47d777d9818eeda28a62c3e3850f695c70ea1d0038cc092fa4001641b45452598d62cbc9250633dfa5874fc0760340657ecfca18b86a0a17b2bc15e5941ea31caa9c246877d3fea1542f6cb42914b03df43dee074cf38baa41562481e5e02704a23c4d589c484b2e86d1a88b9e20b65ddf138c12e582690a92113e3d60029764d18c23fbb217a1e188c1a4cccd1f41001459e6478beb820c149b756d93795c675387a9b5fa72a36bdc10ca2c640eca0c328fa01707c3ca2916d60d7284984a5fbf2b37a1a33980ecbd3506956221d7c142f6bb8a3500ab2eacdb1498238f2904ba7953230c383cef6eebec8fc52aca3254cc6e7f2823db826f8ee4cddfbf221314425fde1145ef8758478649030585c775c0d111802a8831a0fc8e4d9049cb7e25e9a23aa011b8c89696da6bc2169d5d9d9b472f6a3b346dc986596ac4a82ae42b131458ed1b53b85a3b4c8cf9231c254f75331e6a094637e8ec8b19f6e12b47449425edd6cc69aec5dea5f6f40c5d23b0cd3585515fbf302988e3fc12d9cac72f4c2f386ab539a159866dc9bd001ec3f6267651dedfe45c957451bce4cfd9298c9cadf01fa6b16d157c2fbd0c151aec5c90a4e3e371ec5fbbdb75534e1cd3825160f66ab616393f61ba78be7c02d384233334889ed09477c86d95f6746591f9e54ab1b350567d17fd86416abb01afaf366bf4d8cb2d19aebcab2f1967d838bbff11c9078a5c96858125b1a27f2d5cfba72394e6c8658aede64be87f0fd76aef76af089bae59500f01e742e4031e7038abb999631e1b76319d027a35f3efaddb69fbd86f79c907fd26da37c37a2c620604843f6652947371e1390010c65d4f6d06df35103f193d0cb05f061d25030dd854888d680d7f4ec4fc78c33ed43275ab7a536bca37bb74a5d9634de6970ed9993a99e91b0afd756d464bdb1e6663141ee87ed708f0c890b2d54aa0368419c4f0ffceb164149b8d3cf4d4f85bd0c7afbb93c0920d1301b2bbee5bae1f410f62419ced3ff43cfc74f1e8bfaaf4c05eac927380fdd711bc1c708ef5c56ab02607bb7a2e81f60f175cbb3ed724416caef5673a1de17d60164d157c2fd52540",
"aggregatedProverVersion": "test",
"aggregatedVerifierIndex": 1,
"aggregatedProofPublicInput": "0x14e5920b78e2c6da56ca4548b76c09a4ffb2c0f0370f56108fb92182d3dda7a1",
"dataHashes": [
"0x01f5853fa56ab910be0933f2ee811bbc437500dba4e38acbae17eab00eec9f95",
"0x01a142b35ad91719145a4e3bf1d5402e6a73818db67312ade7a73ad5130ac618",
"0x017b1d49c6c7947f83855cc16063ef19d02369540b97867855427b56cdaea487",
"0x012cab32c78df416fe59f8f123e2ded2466a64e201bacddc8396231f335d2088",
"0x0159ba31314753be910d2abb9b7aeeafbefd58cc4163e8d3cc6695315960c7c1",
"0x017207990658280f269f538918209b2ab0f4e70c4b222aa8067ed327caf3c762",
"0x013db45f6109677bcfc639839f355aed42463b60308d9943dced221e507a7dcd",
"0x01d6ddee37041b22e6ec368d3d4fea4e3981458d89c25d2ab75451ee5c285a80",
"0x016266845b1093dbd27ead5c9cfdf11ba843e75a19be037b87eb1f9bc0cab90d"
],
"dataParentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentStateRootHash": "0x072ead6777750dc20232d1cee8dc9a395c2d350df4bbaa5096c6f59b214dcecd",
"parentAggregationLastBlockTimestamp": 1683325137,
"lastFinalizedBlockNumber": 0,
"finalTimestamp": 1683335137,
"finalBlockNumber": 305,
"l1RollingHash": "0xdc8e70637c1048e1e0406c4ed6fab51a7489ccb52f37ddd2c135cb1aa18ec697",
"l1RollingHashMessageNumber": 1,
"l2MerkleRoots": [
"0x80af4a9e60333c66f5f0c50356bb1166d234f87c221e0ca3d87f1676b8044821"
],
"l2MerkleTreesDepth": 5,
"l2MessagingBlocksOffsets": "0x00000000000000000000000fffff"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -7,7 +7,10 @@ import submissionDataJson3 from "./blocks-82-114.json";
import submissionDataJson4 from "./blocks-115-155.json";
import submissionDataJson5 from "./blocks-156-175.json";
import submissionDataJson6 from "./blocks-176-206.json";
import aggregateProof1to206 from "./aggregatedProof-1-206.json";
import submissionDataJson7 from "./blocks-207-228.json";
import submissionDataJson8 from "./blocks-229-265.json";
import submissionDataJson9 from "./blocks-266-305.json";
import aggregateProof1to305 from "./aggregatedProof-1-305.json";
import { DataHexString } from "ethers/lib.commonjs/utils/data";
const dataItems = [
@@ -17,6 +20,9 @@ const dataItems = [
submissionDataJson4,
submissionDataJson5,
submissionDataJson6,
submissionDataJson7,
submissionDataJson8,
submissionDataJson9,
];
export function generateKeccak256(types: string[], values: unknown[], packed?: boolean) {
@@ -203,7 +209,7 @@ async function main() {
await sendMessage();
await sendProof(aggregateProof1to206, parentSubmissionData1, finalSubmissionData);
await sendProof(aggregateProof1to305, parentSubmissionData1, finalSubmissionData);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any

View File

@@ -1,29 +0,0 @@
{
"finalShnarf": "0x96ed18f2706ace8f30f5535d286087d34d1cc04a1e03b4100e24c209de5dcd6f",
"parentAggregationFinalShnarf": "0x47452a1b9ebadfe02bdd02f580fa1eba17680d57eec968a591644d05d78ee84f",
"aggregatedProof": "0x051bed77f58484470b119a8b017de47539026b71e9d5093b207264daa840556c0f2eb7584efe5084afa69e275af231e73354d204138d4dd05982a2edd42352aa2bd18d16c2dcb695ef4173fbcf52949a940f859b571740f1b3a569c8f4d28f9b0cd796d579aa427a4e606aa4c8251c335beb0ee3211c406d4661a0e2bfc5981c1ba391882dca92b4804cb8077e2e960758760ab0d51c0b350eea3f968ddc71fe22c1d477aa22ff16cead741b7717237b37e3d635226c331a9f28ff1def6ed5692a8556af2536b8be72ec1524d252527639b3f572bf55e1032247ca4ba45fc47201f12306560cbd848fa7c53d017268241483bd13488ce122c9b62d9577245e401ac5aa15d193ff32e07684314f9077df50be46d724639289d362c84e0a330bd0286f2eace37392c4472ba884eebc909c9227bdf7e3779c7198a1bef376a21d42023ef79eb682b7e235949451bef1a08073407ab40c83a9a9509a15b44e6ca0de096de86c2eb9d4af577ca0c33b7c1380df9a69ff910841d6069ef7ffbf77b0f515afe5c15ad24ed86a5bdae413038979cf9568aa73925b03369ac03ba6522f5f2d7d6ff97710e76cf174fbaaaf078142f157d6db3223ac61ecb429073050b5f316d182360128f596809533576ee686595968eff44165e9d7925095db5c91b61f1ff1ca8f5f1c58244d03873dbe8e42e66924d26b1cd9a3d121dd1f1d7f30df8c0e96cc051ccf6b5beb32894d4a6ade8658b26a25fe1c4ecf28149818ff92a9d70c3a34125dc3b177b9e3a16d9294bc4596ff26a28dfc838c5f85955a468c704026508167c976af9d0cc153733b3e068525abcef8aaf2fc9fc043766e122aec6c070a6bef078a1150755de8544b69d8c1b47bf67023dcc0b9cf0d9e51ae85773d1ab5ff6ffd5c36c0589ea1aa5916977c0fc3620921e440919c7523e4e8fe042e2a2a8389fad3f6a6d0f56e3861d3c6a6944c3f6450fa641307c71d89854d773721c9bb944424e819aff3502826ea9959b9d1bcb4447f0bd5ebddf517eb60a2c72055b32988d292cae0dcceb228a7b6148fcf3a172d9fb5a9ac6400f7c51138682b00069832b273928d0d171a0cf165a01565a12cb03039dfc65eb5b330402a212d2c86751d05ad8ca23ff22659f417d62bb2a5eac28d677b36b8d7197fe51d691e8e8febe9243b14274cf645a2ae19c77d141adb91acb63cc1b4761b3016a3be",
"aggregatedProverVersion": "test",
"aggregatedVerifierIndex": 1,
"aggregatedProofPublicInput": "0x1d2b9051238709f6f992a6bce6b5102a7182a6b9db4100ce46a9fe26f92dde78",
"dataHashes": [
"0x01f5853fa56ab910be0933f2ee811bbc437500dba4e38acbae17eab00eec9f95",
"0x01a142b35ad91719145a4e3bf1d5402e6a73818db67312ade7a73ad5130ac618",
"0x017b1d49c6c7947f83855cc16063ef19d02369540b97867855427b56cdaea487",
"0x012cab32c78df416fe59f8f123e2ded2466a64e201bacddc8396231f335d2088",
"0x0159ba31314753be910d2abb9b7aeeafbefd58cc4163e8d3cc6695315960c7c1",
"0x017207990658280f269f538918209b2ab0f4e70c4b222aa8067ed327caf3c762"
],
"dataParentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentStateRootHash": "0x072ead6777750dc20232d1cee8dc9a395c2d350df4bbaa5096c6f59b214dcecd",
"parentAggregationLastBlockTimestamp": 1683325137,
"lastFinalizedBlockNumber": 0,
"finalTimestamp": 1683335137,
"finalBlockNumber": 206,
"l1RollingHash": "0xdc8e70637c1048e1e0406c4ed6fab51a7489ccb52f37ddd2c135cb1aa18ec697",
"l1RollingHashMessageNumber": 1,
"l2MerkleRoots": [
"0xff0e2ae07c9c972f7ac6ab579a49376381d56f8101b37142cc52a4abef5cfb86"
],
"l2MerkleTreesDepth": 5,
"l2MessagingBlocksOffsets": "0x00000000000000000000000fffff"
}