A public good network, for testing and implementing the most cutting-edge upgrades and features of the base Execution Layer of Ethereum. This project was conceived at EthPrague, and was named after Nadraží Holešovice, the closest train terminus to Paralelni Polis and La Fabrika, the hackathon's venues. The project aims to build on existing work by the go-ethereum and devOps teams from the Ethereum Foundation. It will seek to tackle some implementation challenges around the implementation of Verkle Trees, a key requirement for enabling trustless light-clients, and making Ethereum more accessible to all.
What it does
https://blog.ethereum.org/2021/12/02/verkle-tree-structure/ Merkle Tire are a Data Structure that helps us to prove that a Transaction is in a Block at a specific place without checking all the Transactions. We can Proof that the Data is at this Leaf only by getting the Hashes of the siblings of the Data Path , which is much less than passing on the whole Dataset which are all the leafs. But we can do even better and introduce verkle Proofs, which use commitments and reduce the proof size dramatically.
We dont need all the siblings anymore but only the Path. So we can in turn make the trie much wider and less deep. This in turn reduces the Proof size by a factor of 20 from 3.5MB to 150K for 1k leafs
We have a local Testnet which runs on verkle Data.
How we built it
Challenges we ran into
Starting the genisis block with POS without doing a merge over POW. We dont know yet how to embed the depositst of validators into the genesis file.
Rebasing old verkle implemenation from geth to newest version of geth without having in depth knowledge of geth and golang.
Rebasing 100+ MB Code Base that is roughly 3500 commits behind.
Accomplishments that we're proud of
We were able to run multiple versions/clients .
The Rebase is finished. (With the help of the Geth Team and a lot of sweat)
We have a local verkle Trie implemation that that runs on verkle data and transactions can be send.
What we learned
We learned about the advantages of verkle tries. -> smaller Proof size
We learned how to run a POW Testnet . We know how to switch from POW to POS: the process is something like this:
- prepare eth1 genesis with deposit contract and deposits, by modyfing https://github.com/eth-clients/merge-testnets/tree/main/kiln
- start it as pow, wait for deposits to process (24 hours)
- spin up eth2 validators with derivated genesis by using https://github.com/protolambda/eth2-testnet-genesis, let them create blocks
- reach TTD on testnet for merge to happen
also we should let others to validate as well so the faucet, launchpad, explorers, configs, public rpc should be deployed like here basically https://kiln.themerge.dev
What's next for Holešovice Testnet
-Write a Testnet starts off with a Genesis block that is POS from the start.
-Merge the newest verkle POW geth with new POS geth from above.
-Awesome User Experience -And the most important part is to create the best faucet out there, which always has ETH and no friction to get your 32 ETH to try out beeing a validator . -get people to notice and use u
Log in or sign up for Devpost to join the conversation.