Skip to content
This repository has been archived by the owner on Sep 13, 2024. It is now read-only.

The API parsers and analysis notebooks used for Metrika's submission to the Ethereum Merge Data Challenge

Notifications You must be signed in to change notification settings

Metrika-Inc/eth-merge-data-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sources of information

We run a geth/prysm on mainnet and extracted all information by querying the nodes. The method used were:

EL client:

  • eth_getBlockByHash
  • eth_getTransactionReceipt

CL client:

  • /eth/v2/beacon/blocks/{block_id}
  • /eth/v1/beacon/states/{state_id}/validators/{validator_id}

Relay nodes APIs were also queried via the method /relay/v1/data/bidtraces/proposer_payload_delivered

Data

From the EL we extracted Block, Transaction and Transaction Receipts for blocks between 15,313,393 to 15,761,393. For the CL we got the execution payload for the slots between 4,700,013 and 4,924,031. Relay nodes were queried for the same slots as the CL.

We calculated:

  • For each block of the EL:
    • base_reward based on EIP-1234 and EIP-649 and zero after The Merge.
    • transaction_count as the length of the array containing the transaction
    • burnt_fees as gasUsed * baseFeePerGas
    • transaction_fees as the sum of transaction_fee in the transaction receipts
    • block_reward as base_reward + transaction_fees - burnt_fees
  • For each transaction in the EL:
    • transaction_last as a boolean that identifies if the transaction is the last transaction in the block
  • For each transaction receipt in the EL:
    • transaction_fees as gasUsed * effectiveGasPrice
    • transaction_last as a boolean that identifies if the transaction is the last transaction in the block
  • For each block in the CL:
    • proposer_address by querying the validators method /eth/v1/beacon/states/head/validators/{validator_id} with validator_id equal to the porposer_index
    • epoch calculated from the slot and the SLOTS_PER_EPOCH from the specs
    • transaction_count as the length of the array of transactions

This information became the basis of our analysis. Each section describes how the data was used and further transformed.

About

The API parsers and analysis notebooks used for Metrika's submission to the Ethereum Merge Data Challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published