From da7f7fe119f8c9827807f9e1c1c068b1833c91b5 Mon Sep 17 00:00:00 2001 From: Arpit Temani Date: Mon, 11 Nov 2024 13:39:55 +0530 Subject: [PATCH] review comments --- .../workflows/cron_jerigon_zero_testing.yml | 22 +- scripts/jerigon_zero_benchmark.sh | 43 ++- ...on-data.tar.gz => erigon-test-data.tar.gz} | Bin witness_1.json | 312 ++++++++++++++++++ 4 files changed, 343 insertions(+), 34 deletions(-) rename test_data/{erigon-data.tar.gz => erigon-test-data.tar.gz} (100%) create mode 100644 witness_1.json diff --git a/.github/workflows/cron_jerigon_zero_testing.yml b/.github/workflows/cron_jerigon_zero_testing.yml index cba6604c3..cfdbbf377 100644 --- a/.github/workflows/cron_jerigon_zero_testing.yml +++ b/.github/workflows/cron_jerigon_zero_testing.yml @@ -1,7 +1,8 @@ name: Jerigon Zero Testing on: - # Uncomment when ready to run on a schedule + # TODO - Change this before merge + # # Uncomment when ready to run on a schedule # schedule: # # Run every Sunday at 12:00 AM (UTC) # - cron: "0 0 * * 0" @@ -21,7 +22,10 @@ env: jobs: jerigon_zero_testing: name: Jerigon Zero Testing - Integration and Benchmarking - runs-on: zero-ci + runs-on: zero-reg + concurrency: + group: jerigon_zero_testing + cancel-in-progress: true steps: - name: Checkout zk_evm code uses: actions/checkout@v4 @@ -52,8 +56,9 @@ jobs: - name: Run Erigon Network run: | cd .. - tar xf "$(pwd)/zk_evm/test_data/erigon-data.tar.gz" || { - echo "Failed to extract erigon-data.tar.gz"; exit 1; + # TODO - Download from IPFS + tar xf "$(pwd)/zk_evm/test_data/erigon-test-data.tar.gz" || { + echo "Failed to extract erigon-test-data.tar.gz"; exit 1; } docker pull ghcr.io/0xpolygonzero/erigon:feat-zero docker run -d --name erigon \ @@ -73,11 +78,8 @@ jobs: run: | export ETH_RPC_URL="http://localhost:8545" rm -rf proofs/* circuits/* ./proofs.json test.out verify.out leader.out - random_numbers=($(shuf -i 1-500 -n 5)) - for number in "${random_numbers[@]}"; do - hex_number="0x$(echo "obase=16; $number" | bc)" - OUTPUT_TO_TERMINAL=true RUN_VERIFICATION=true ./scripts/prove_rpc.sh $hex_number $hex_number $ETH_RPC_URL jerigon true 3000 100 - done + # TODO - Change block number and checkpoint before merge + OUTPUT_TO_TERMINAL=true ./scripts/prove_rpc.sh 1 10 $ETH_RPC_URL jerigon 0 3000 100 test_only - name: Download Previous Results uses: dawidd6/action-download-artifact@v6 @@ -97,6 +99,6 @@ jobs: uses: actions/upload-artifact@v4 with: name: jerigon_zero_benchmark - path: ./jerigon_zero_output.log + path: ./jerigon_zero_output.log ./jerigon_zero_error.log retention-days: 90 overwrite: true diff --git a/scripts/jerigon_zero_benchmark.sh b/scripts/jerigon_zero_benchmark.sh index b92964480..51b25b899 100755 --- a/scripts/jerigon_zero_benchmark.sh +++ b/scripts/jerigon_zero_benchmark.sh @@ -2,9 +2,6 @@ # ------------------------------------------------------------------------------ set -exo pipefail -# Args: -# 1 --> Output file (Not used in the current script) - # Get the number of processors for parallelism if [[ "$OSTYPE" == "darwin"* ]]; then num_procs=$(sysctl -n hw.physicalcpu) @@ -20,6 +17,7 @@ BLOCK_BATCH_SIZE="${BLOCK_BATCH_SIZE:-8}" # Logging setup OUTPUT_LOG="jerigon_zero_output.log" BLOCK_OUTPUT_LOG="jerigon_zero_block_output.log" +ERROR_LOG="jerigon_zero_error.log" PROOFS_FILE_LIST="${PROOF_OUTPUT_DIR}/proof_files.json" # Ensure necessary directories exist @@ -33,55 +31,52 @@ export RUST_BACKTRACE=full export RUST_LOG=info # Log the current date and time -echo "$(date +"%Y-%m-%d %H:%M:%S")" &>> "$OUTPUT_LOG" - -# Define the blocks to process -blocks=(100 200 300 400 500) +date +"%Y-%m-%d %H:%M:%S" &>> "$OUTPUT_LOG" # Function to process each block process_block() { - local block=$1 - - echo "Processing block: $block" &>> "$OUTPUT_LOG" + local block start_time end_time duration_sec PERF_TIME PERF_USER_TIME PERF_SYS_TIME + block=$1 # Fetch block data - if ! ./target/release/rpc --rpc-url "$ETH_RPC_URL" fetch --start-block "$block" --end-block "$block" > "output_${block}.json"; then - echo "Failed to fetch block data for block: $block" &>> "$OUTPUT_LOG" + if ! ./target/release/rpc --rpc-url "$ETH_RPC_URL" fetch --start-block "$block" --end-block "$block" > "witness_${block}.json"; then + echo "Failed to fetch block data for block: $block" &>> "$ERROR_LOG" exit 1 fi - local start_time=$(date +%s%N) + start_time=$(date +%s%N) # Run performance stats - if ! perf stat -e cycles ./target/release/leader --runtime in-memory --load-strategy monolithic --block-batch-size "$BLOCK_BATCH_SIZE" --proof-output-dir "$PROOF_OUTPUT_DIR" stdio < "output_${block}.json" &> "$BLOCK_OUTPUT_LOG"; then + if ! perf stat -e cycles ./target/release/leader --runtime in-memory --load-strategy on-demand --block-batch-size "$BLOCK_BATCH_SIZE" --proof-output-dir "$PROOF_OUTPUT_DIR" stdio < "witness_${block}.json" &> "$BLOCK_OUTPUT_LOG"; then echo "Performance command failed for block: $block" &>> "$OUTPUT_LOG" - cat "$BLOCK_OUTPUT_LOG" &>> "$OUTPUT_LOG" + cat "$BLOCK_OUTPUT_LOG" &>> "$ERROR_LOG" exit 1 fi - local end_time=$(date +%s%N) + end_time=$(date +%s%N) set +o pipefail - if ! cat "$BLOCK_OUTPUT_LOG" | grep "Successfully wrote to disk proof file " | awk '{print $NF}' | tee "$PROOFS_FILE_LIST"; then + if ! "$BLOCK_OUTPUT_LOG" | grep "Successfully wrote to disk proof file " | awk '{print $NF}' | tee "$PROOFS_FILE_LIST"; then echo "Proof list not generated for block: $block. Check the log for details." &>> "$OUTPUT_LOG" - cat "$BLOCK_OUTPUT_LOG" &>> "$OUTPUT_LOG" + cat "$BLOCK_OUTPUT_LOG" &>> "$ERROR_LOG" exit 1 fi - local duration_sec=$(echo "scale=3; ($end_time - $start_time) / 1000000000" | bc -l) + duration_sec=$(echo "scale=3; ($end_time - $start_time) / 1000000000" | bc -l) # Extract performance timings - local PERF_TIME=$(grep "seconds time elapsed" "$BLOCK_OUTPUT_LOG" | tail -1 | awk '{ print ($1)}') - local PERF_USER_TIME=$(grep "seconds user" "$BLOCK_OUTPUT_LOG" | tail -1 | awk '{ print ($1)}') - local PERF_SYS_TIME=$(grep "seconds sys" "$BLOCK_OUTPUT_LOG" | tail -1 | awk '{ print ($1)}') + PERF_TIME=$(grep "seconds time elapsed" "$BLOCK_OUTPUT_LOG" | tail -1 | awk '{ print ($1)}') + PERF_USER_TIME=$(grep "seconds user" "$BLOCK_OUTPUT_LOG" | tail -1 | awk '{ print ($1)}') + PERF_SYS_TIME=$(grep "seconds sys" "$BLOCK_OUTPUT_LOG" | tail -1 | awk '{ print ($1)}') echo "Success for block: $block!" echo "Proving duration for block $block: $duration_sec seconds, performance time: $PERF_TIME, performance user time: $PERF_USER_TIME, performance system time: $PERF_SYS_TIME" &>> "$OUTPUT_LOG" } # Process each block -for block in "${blocks[@]}"; do - process_block "$block" +# TODO - Change block numbers before merge +for i in $(seq 1 10); do + process_block "$i" done # Finalize logging diff --git a/test_data/erigon-data.tar.gz b/test_data/erigon-test-data.tar.gz similarity index 100% rename from test_data/erigon-data.tar.gz rename to test_data/erigon-test-data.tar.gz diff --git a/witness_1.json b/witness_1.json new file mode 100644 index 000000000..4dd65ad2b --- /dev/null +++ b/witness_1.json @@ -0,0 +1,312 @@ +[ + { + "block_trace": { + "trie_pre_images": { + "combined": { + "compact": "0x000397e4ae58e8d997dd2b19ed09ad9a66d1c0fd304d074e4a7bfb3f1fcc512a3e630306d47616df479b46b302f2a8b7ed03cb537f6cf7c551c15421c65db4e00fa97f0338e34f9e0e4830343ba24f5fcf0eba28d79cb86397adfb16a0169ee7f01800360327db720cbe694541a361e08b5450894ddce39b11113fe952080ad5f54ada6f4a03d2e57f615a47508c6e60935353428b9fc1cc75677a3eb8f5f73d61dd0aaff5f5055820021d99c6bec3aecbec962be74b25448511983b013c0876f6f4e6029773dfad61084101034d78166b48044fdc28ed22d2fd39c8df6f8aaa04cb71d3a17286856f6893ff830361d0d822132d4f46ea985e243ddfec94d3d12badf05efc100c2acaab3232979a05582002b3096c912adc7674ca92b68ddb3b0494e9b988fbef1bed7938e8fac4c2df7a0841010458613373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff0155000605582002d65eaa92c6bc4c13a5ec45527f0c18ea8932588728769ec7aecfe6d9f32e420701186105582002401b4e97e67c4a6d8095979b4c1ecb9eaf5726fc8a12798975a7653e98087208410105582002c8bb92227ba91a2657f29c5498f5c5b07ae36369c8d9283444f477930c79be0841010391d9c76bfbc066e84f0b415c737ab8c477498701d920526db41690050cfade9905582002a5ac70a18399817ccbe8bd4d9c78115136cc61699d51af87608af520226c32084101055820029bd268aedc8dbb36db0a4664e17b83abcfd87e404901eee7bd5704a95064ee08410105582002a06a67e7fee9c938155c50e6cec9da70b66679e777da6f02149c6674cd910508410103d9240a9d2d5851d05a97ff3305334dfdb0101e1e321fc279d2bb3cad6afa8fc802197ffd03b20de96d0e24978b7aed7e55836eb2d8bee7e59ac1f461181391940f8751797003eea64374052ac460957bbc34a071cb8b25dcdf44d96785a55b34242914c83f9f03cf7159e09fc6bf2cfdc89b2e534fb8ac079137d9f5f55b823f8d574cc1c7f0ca0383c6979e463c02818ffeadaeeb8abc9f2f51e767fb9151a7fc89989eb40b57ac03cbcdc1d226a540c50cb1e615e7af99f171d4365b45734940e22d47ec4aa23a1403be88e4724326382a8b56e2328eeef0ad51f18d5bae0e84296afe14c4028c4af90318e0f191e57d4186717e0f3c9379d2438cec0babd12d3903a4ad560f017331bf031796617427e67ed10cdf8a72b02689a700ba71eb93186a1b120c9ad0b0e56eae03ad0bb86b47186c04223e85a9c33dd1c87dd6e5c17f753f4fd0a56772d8a7839903899f71abb18c6c956118bf567fac629b75f7e9526873e429d3d8abb6dbb580210390358d83779973801b7a3f4468c4f9475905a3eb4a5e1d54aa00d46599596d2905582002e23690e890cdec6eb19b06f5d31d422b5c17bd4c435afb2a2532180011453f0841010314389ec4a809554bd6c0ed11ecbc90f9fc419990a636e3533ecdee11a8b6f51e055820026c0f154a365e086c687050cee74bddde9997a1dedeb0e55217368c0ab6baa4084101036e0b867beddead84f7d0eba31ad24fe77ad7ae1e56928aa84c7793788209caf2055820025b734df35ab6d576607e01c42f21d275cd9c0f86fbb3100241a14ba0c7672f08410103cf8063193541030762db90dd2f67697c531e949dabe33f8d608c3a6bb352b0eb055820038320edc6a9c30d249d75af74a19ade7f69c56e5e0d3a9adb17fee1b0a4bef008410105582003f18b96a1c12507c9a95b7f48c3e012651793a196ce2b81aaa6cb185dc03b60084101021910100303c5801bf244c28c5c430853d6797ee54f7e1a7c384f51d8c9a1dc4cd96cb74f03a5acd0ecfd7dcecd1f7360af116e7dd25617a0205b5f8b369be3ffc784c4f5a903bf90e746ea86172da995d366c29e417cc158c6689eab8f65860b5734a438719e05582002a6cdd9768090f90960cf9bad47705ca3b19a54c8ec8186e2987ffdd3a8435b08410103823a38527672ae42d480369a80b0b9c2ede964cb93668c0487e1341607c5d5ee02195dff035740575999fde2ddd421a9f5907dfc4be5fc3f5f96d65240ae3b3b596d38465f05582002b693085beb21b0878c7e5fab7519ce0d6105354cf6744dbfb73e3745e929e4084101055820027f470df15c88b9beaf3fad72890a64f8851d01ece546b0c9fb3bdf92041a35084101055820029cb4b751333c144710961e20611eb00c783b77e8cb532c64307202fb109699084c033b2e3c9fd0803ce8000000035f4ca08c32e4a3997d0e94d8946e3d361ec5d0225d9cd85c6de8d572bb0a99c903faecf459527318d12fee2db8d85c54fc244d0207ba336a01e397593b801ae61f055820039bbcf08818ec3329e5769dff3fbdad66e6312a961acb32c1b203edf70aeba0084101031c13664b9096979e0a6a58919940b248687992af952308581eff9d0e8c14119a0219400805582002facf5483fdda2fc98d08bcce1a68d5d308d3ad88ee21b50004fd694ba6f805084101055820026a58207750197f48cb90864096850259845c2c8e90c74433325c0b144bf8bb08410105582002fa0eae268038cfa984647a1d0635beb86eda9fb7b500688f3189520cfa9ee50841010219fb610219ffff" + } + }, + "code_db": [], + "txn_info": [] + }, + "other_data": { + "b_data": { + "b_meta": { + "block_beneficiary": "0x8943545177806ed17b9f23f0a21ee5948ecaa776", + "block_timestamp": "0x66fc61f6", + "block_number": "0x1", + "block_difficulty": "0x0", + "block_random": "0xa27eaf823b5a5afa043b17c99bfb3437d55b556c211497fff228254e3f6aad50", + "block_gaslimit": "0x1c9c380", + "block_chain_id": "0x301824", + "block_base_fee": "0x342770c0", + "block_gas_used": "0x0", + "block_blob_gas_used": "0x0", + "block_excess_blob_gas": "0x0", + "parent_beacon_block_root": "0xd0bfd1399d27e7851736ac6ab81a75f181e654b4b72e982d447f2d3810522665", + "block_bloom": [ + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ] + }, + "b_hashes": { + "prev_hashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xa27eaf823b5a5afa043b17c99bfb3437d55b556c211497fff228254e3f6aad50" + ], + "cur_hash": "0x8272f0e3e95874f97e09b6d097d612478e17bb1904067b60e286500d10da9212" + }, + "withdrawals": [] + }, + "checkpoint_state_trie_root": "0xe493c13c142ecb9bb9b60f538cab31fe57d8c59b086d5fffea69bea113bc79dc", + "checkpoint_consolidated_hash": [ + 2866095088697205036, + 13098355391546578461, + 8255686181531669236, + 2116998263068302771 + ], + "burn_addr": null, + "ger_data": null + } + } +] \ No newline at end of file