## EPF - Week 15 We now have a way of running the tracer with our transpiler on real transactions. Instead of targeting the lower level APIs for reading from the database itself, we wrapped around the rpc client to achieve this. ## Generating proofs for on-chain transactions We merged our branch which we worked on for allowing [state database interactions](https://github.com/2xic/erigon-risc-v-executable-proof-sourcing/pull/7). Instead of targeting the low level read primitives that turned out to be problematic for the last two weeks. We instead created a [small wrapper](https://github.com/2xic/erigon-risc-v-executable-proof-sourcing/blob/4130c216c5d63b2f76944b0e110d93aa6f395cb4/cmd/tx-prove/main.go) around the [rpcdaemon](https://github.com/erigontech/erigon/tree/main/cmd/rpcdaemon) from Erigon. --- This allows us do a example for proving simple [ERC20 transfer](https://etherscan.io/tx/0x04d3d48f42983eb155be1ff4b66d5c5af8ed1cedecac055083a00f6e863603d2) ```bash make bins # transpiles and then creates the proof into results.json ./bins/tx-prove --output "results.json" --tx-hash "0x04d3d48f42983eb155be1ff4b66d5c5af8ed1cedecac055083a00f6e863603d2" --datadir=/root/erigon-datadir --http.api=eth,debug,trace # Verify the generated proof ./bins/proof-verify --results "results.json" ``` ## Status of milestone two There are two weeks left of [milestone two](https://github.com/eth-protocol-fellows/cohort-six/blob/master/projects/erigon_riscv_proof_sourcing.md#stabilizing-the-transpilation-module-weeks-11-17). We are now able to prove simple transactions (in an almost production setting as we are running against a real state database), but not yet Uniswap V2 as we are still missing [some opcodes](https://github.com/eth-protocol-fellows/cohort-six/blob/master/projects/erigon_riscv_proof_sourcing.md#stabilizing-the-transpilation-module-weeks-11-17). I believe this should be possible to fix next week. ## Next week In short - Start wrapping up milestone two, get a trace of UniswapV2 working. Do the `.data` [section workaround for now](https://hackmd.io/@2xic/SyEAghTile#Uniswap-opcodes), revisit later if time allows it. - Extended goal: try to be able to prove all transactions in a full block, `.data` section workaround is allowed to unblock. We want to be able to prove full blocks as that allows us to better compare against existing approaches. We should also start thinking about milestone three. Most existing clients do zk proving in a very different way from our approach. It will likely take some time to be able to set up those nodes for testing, so we should try to map out some of that work upfront.