TLDR
Plan Next Week:
This week, I start to get myself totally into the IL-EVM pr. I got a good prgress on the c# and dotnet because Microsoft keeps a very good document. I can find almost everything I don't know in their documents.
However on the contrary, MSIL is a giant beast I need to fight with.
I read some basic doc from microsoft. The doc contains an example how to use IL-generator to define a type and the method of the type. The example seems easy to understand. I tried to tweak around the example. It worked fine.
Then I went back to the IL-EVM pr. Currently the most important thing I need to know is
Execute
is the main entrypoint of transaction execution. The processor would do a lot of sanity check(like Eip-1559 check, account check, balance check and etc).It looks like the VirtualMachine.cs made a lot of changes in the IL-EVM pr. But actually, most of the codes are just reformatting the codes.
The key codes are just two places.
true
.Well, I haven't got a very good answer for this. This is what I am going to do next. Currently, I read PC Opcode to IL-opcodes from the pr but I could not really understand why.
I am trying that using tools like ildasm against some simple codes with GUI ILSpy and try to understand IL-opcodes better.
I am also looking for articles like understand-evm-bytecode-part-1 could walk me through some easy IL-opcodes.
Next week, I would also try to write the benchmark codes for the pr to compare IL-Evm with pure Evm though the pr auther got some benchmark examples.
Time spent on this is relatively less. I reviewed @Vid documents about the Rust AA-Bundler. I gave some comments and questions. Vid gave good explaination.
Next week, I would try to take some part of the codes to make some pull requests.