eth-protocol-fellows / cohort-zero

116 stars 72 forks source link

Analyze how changes to the gas cost schedule in state expiry will effect existing contracts #64

Open pipermerriam opened 3 years ago

pipermerriam commented 3 years ago

State expiry is going to modify the gas schedule such that some things become more expensive and some things become cheaper.

https://notes.ethereum.org/@vbuterin/witness_gas_cost_2

It would be good to analyze how this will effect popular contracts. (see state expiry call recording). The exact methodology for how to do this analysis would need to be figured out, but it would likely involve running modified client code to export this data. It might be possible to use the transaction tracing APIs to get the necessary data from block execution to do this without client modifications.

sevkibaba commented 2 years ago

Please see my notes https://github.com/ethereum-cdap/cohort-one/blob/master/notes/sevki/State-Expiry-Cost-Research.md

pipermerriam commented 2 years ago

Worth linking to this call where a team already did some level of prior work on this: https://www.youtube.com/watch?v=HipI3vCd8_Q

alexchenzl commented 2 years ago

@sevkibaba if you want to use tracing api to export internal transactions, these links should be helpful : https://github.com/blockchain-etl/ethereum-etl, https://evgemedvedev.medium.com/ and https://cloud.google.com/blog/products/data-analytics/ethereum-bigquery-how-we-built-dataset.

You can find the Google public Bigquery dataset bigquery-public-data:crypto_ethereum they published. It contains almost all data exported from Geth including tracing data. Maybe you can use it to do some analysis directly.

sevkibaba commented 2 years ago

Thanks, @alexchenzl, these are great resources.

I heard about the public dataset and checked it out, they have updated it to bigquery-public-data:crypto_ethereum.<contracts>.

Definitely, we can do analysis in BigQuery for the existing data, but we need a methodology for state expiry analysis as @pipermerriam mentioned. As I understand from the previous study and from my readings, there is a part that reduces the price, and it is already deployed. And the remaining development will only increase the prices with the specs linked above, also please see my notes again. Is there anybody to confirm that or disprove with some resources?

I will look at how to decode the bytecode and dive through the ethereum-etl repo in the meantime.