J1 SAY 10 Paweł Bylica Releasing the Hera with EVM C
Ethereum Paris·Tue, Oct 9, 2018, 12:00 AM
Speaker
Transcript
so this this talk is going to be quite short it's that two parts of it first I will introduce Evie MC and and the second part will go back to you Adam and software running queue Azzam itself so this talk is like partly the one or modified one I gave on DEFCON three so if you'd like to have more information about if evm see you can you can find the talk somewhere in youtube and to extend your information about that and so we have two quick quick back to EVM the magic box that every attitude on client has inside and that is actually able to execute currently deploy smart contracts and so yeah this is this like as I said magic virtual virtual machine that it's not closely matched with existing hardware but we have many implementations of that and clients ship with with with VM implementations and it can also happen that that client implementation can have multiple actually implementations of VM inside I think Jeff has some kind of modified interpreter though you can you can experimentally enable and in C++ client there is still option to choose VM called EVM trees that tries to use LLVM to accelerate smart controls contract execution besides C++ client having traditional interpreter and what is actually interested from from this point of view it's this small liar that actually enable defines how the the rest of the client communicates with execution engine itself so you would like to define this API for for achieving virtual machines and make it fully specified to be to be reusable in in different environments so so this I can come up with it's called EVM C the C comes from the C language and the main motivation of make it happen was actually to to shape the EVM didn't mention before it was back in 20 2014 to to be available for other for other existing clients back then C language with choose mostly because it happens that that's this very old language actually is the one that it's quite easy to integrate too many programming languages so this is some kind of a ancient language that new programming languages still can understand and do exist tools you can you can import C libraries that's the easiest part and exits tools that allows you to export C functions from from other languages but having the compatibility with C ABI so the whole specification and design of this evm see is just single file that still exists somewhere in the EVM did project and yeah and how actually what we have at the moment and what we like to have in the near future about that so there is C++ client suppose client ships with with two to VM implementations one of them is quite performant classic interpreter and the second one is the experiment from long from three years ago called EVM jet it never was widely used in production but I keep it updated and less at the point it's it's compatible with the recent hard Forks and the first implementation of EVM is actually the US and back-end called Hira and so it's turned out we can use the same API because API is mostly about accessing a team like features accessing state from from inside the VM and other data it's not about the specific byte code that the VM executes so we were able to use the same interface that we already using in in existing clients to implement to implement the actually support for WebP assembly and and there is more and so this do I wanted mentioned that a kind of prototypes or the project didn't kick off yet so one is probably the new C C++ interpreter called zombie by by Gregg Colvin and the other one I wanted to mention is some prototype of see only interpreter as experiment that was to to find out how how actually how difficult is to write VM from scratch and if and if EVM see as the interface is good enough so the second one was was was done by Alex and and going back to two clients so we have a prototype that enables a VM see compatibility in Ingo atrium so an implementation an EVM implementation that implements EVM C will be able to be running as a as a VM in in graph and something that was done long time ago but yet in piety real MOS was vitam bindings were ready for EVM C but because the the Python client itself had some other issues that was abandoned but it's feasible to be done and we hope also to get more bindings for for EVM C interface maybe JavaScript maybe maybe Java so yeah I think there is small to come if there is enough interested in it so I invite everyone interested in having this kind of tool ever thinking about composing the the final software solutions yeah to contact us or or me in particular about that and what does it mean for for testing the you wasn't so for that if you'd like to go with the pure test net that that can run only the USM contracts we're going for now we're going with with c++ client and with with here a vm implementing you azzam but GAF client with awasum is also close enough to considering as as a target but the second approach may be as a different test net is is to go with hybrid mode when we can have also this is one of the features of EVM C we can have both languages EVM and it was an echo existing in the same block chain okay that was all for me as this review of the software modules we had and then I will pass the mic to Jake [Applause]
Automatic transcript — names and jargon may be misspelled.
