New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Remix and Other Ethereum Development Tools - Yann Levreau

DevconMon, Oct 9, 2017, 12:00 AM

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more. https://archive.devcon.org/archive/watch/2/remix-and-other-ethereum-development-tools This presentation will explore why we’ve chosen to replace Mix by Remix. It will focus on the integration of Remix in Browser Solidity and other tool/web apps, such as Ether Scan, Mist, Metamask and potentially Dapple, Embark, Truffle, etc. Speaker(s): Yann Levreau Skill level: Advanced Track: Developer Infrastructure Keywords: debug, compiler, editor, integrated, vm, solidity, javascript, npm, node, community, tracker, test, mist Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 2 was held in Shanghai, China on Sep 19 - 21, 2016. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/

Transcript

[Music] yawn lavro he will be speaking on remix and other aetherium development tools no ages my laptop okay hello everybody I'm very glad to be here today and to present you remix the remix is a debugger tool whether they got tool that can debug math contracts so I am Yan I'm walking for this we've the CPP team together with Christian the anatomy tree Bob and unlike and Pavel so actually the name is remix we already add a devil girl right here it was a mix and mix was completely integrated inside this BPM sweet but we have decided for some reasons to reboot the project from scratch and to start remix I mean the main reason of that was that as the community grows grows and grows it is more valuable now to propose new tools that can be integrated inside other application than to have a single closed application I mean I will prefer say it I will prefer say it ok you can use plug-in that you can integrate in your application that you like to use then to say ok we have read Remy will be mixed you have to use me you have to use this because it's the only application so it's better to have something that can be integrated in other application then 12 something closed closed so that wise remix is born so we have chanted developing remix a few months ago basically is just a VM debugger you can see a screenshot here this screenshot SB 10 has been taken from the ATF can integration so we have basic features of VM debugger it's okay we are working now on having full integration of this debugger inside 3d T so you can debug smart contracts using 3d T this remix has been developed using javascript technologies you can use it using NPM so we can pull remyxx using NPM and you can use some modules of remix with node and the main reason of all that is just to give to the community new tools that can be used to debug easily smart contracts so this is the integration of remix in 3dg so we have basic features of an IDE like source code debugging that's most earth-like record manager coming soon and like several trackers like contractor range tracker and as the locals variable Strucker so we have to part the VM debugging stuff and I saw the 3d 3d looking stuff and I guess that the most interesting part will be 3d today learning stuff so I will I will just do a short demo to present you all stuff it's not okay so here I have one integration of he mix inside process ready T brother three DT is text editor is a Swedish editor that's includes a compiler so we can just write smart contract and we can compile at contract and also it has some features of an IDE because you can in you can in the right panel here create transaction so you can in the browser write contracts and then test contract in in an environment so this is not remix this is only process ready to so in which under elements will have we deployed this contract I can choose and I have two possibilities the first one is to use the embedded JavaScript VM so in that way I will just run the execution on this contract is inside the browser and everything will be inside the Rossum every transaction will be deployed inside the browser or I can use an external web free object so I can just connect the browser to some kind of external node and I have a node here which is here you can see that on the upper left corner I am using the CPP Italian client which is I I have run this application in test mode it means that I can just mine mine and mine every five seconds here and I can just deploy contract test it we start from scratch and so on so don't care about what is on the right side here I just have a node which constant which is constant remaining okay so I can't just deploy this contract waiting for us to be mind okay I have two principal methods functions in this contract don't care so much about the code here it's not the principle step that I want to show you so the first is the fallback function and the second one is the move fund function so this is a donation contract basically I will I can just give it to this contract and then the owner of the contract can live draw some ETL from this contract so let's say that I will send 10 ETL here okay I will call a fallback function here I have to wait a little bit okay so I have some details about the transaction here but yeah let's keep that for now and then on the right side here I can start debugging this transaction okay can you see it yeah I will just okay so now I develop transaction so I have launched remix here which is modules that runs inside process for editing and I can stand about debugging in my contract here I can't go forward and I can go backward and I can see here the location in the source code well he's execution going here so I have two important features here the first is a source location as you can see here and the second one is those two panels in the right side you can check out here the state of the contract so you can see that the variable and just call Giver here is going from zero to the address of the sender etc and we can also check out local variable here okay I will now just call this function here throwing I have to copy in past yeah and I will call so the movement function with two parameter the first one is my dress where I will send it here and the second one is the amount of ETA so this is not so much now she's only one way okay and I will just call my phone's okay I have some details about transactions not important and I can start debugging and then I can throw the execution of the transaction here now I am in only only a motif here here I can check out the balance which is local behavior here now I am in the two cents in the same function and if the sand is successful successful sorry I will just trigger the phone moved event here yeah sorry this that's whatever but yeah okay so I have soft location inside processor EDG thanks to Linux and I have the contract States with all variables that are decoded I have the rockers and I can also observe a I can also obviously check out some home values like the stack straight changes the memory and recall data okay so that's for the short demo here what's next okay so this is the remix integration inside browser solidity what's next I think we could easily in my dream that remix could be integrated in several other tools today we talked about truffled a Perl we talked about FIM studio we talked about mists and meta masks and so on so it's it will be really easy 20 write remix to this debugger inside all those tools because all those tools that epi 3d prefer are made for development proposed so I think the good things to have the debugger insides of tools already and it is really easy to use just have to pull the NPM module and then you just have to create to instantiate the object and to render the remix inside you sgml file Ceramics is available as an NPM module but more of that we also provide some kind of low-level tools in JavaScript also that can be used by our ability to create new tools and to imagine new use cases for example here you have trace manager which is a tool that you can use to check out some value in the VM trace it provide an API to easily retrieve value from the VM trace you have mapping decoder which provide an API to deal with the source location in the 3d tea contract you have an SD worker that is used to crawl and to work over all the nodes of the 3d to contract and obviously you have also decoder so you can use those tools to extend your tools to create new tools and to also imagine new use cases with that and I think that is really important features to provide api's and not to build a closed application so what we already done we have already walked on the integration of remyxx in meta mask in mist if you go in each afghan you can already use mix now and as I shown you just now you can use also remix inside validity so now this is a personal opinion what I want to keep in mind and what maybe we want we need to keep in mind is first developing transactions with remix or other tools can be used to debug transaction that are already committed in the blockchain is a private log chain or Diplo chain whatever and I think these really nice features because for example if now you come to me and say iron can you debug these transactions in the public blockchain I will have to check out every op code I will have to check how the VM trace of it will be very very long yeah and so this is why I think this is really nice to be able to dip a concession that are in the main chain so only you can easily integrate remix inside other app and then as I said it provides a low level API okay what's next we need to commit this work on the storage and car tracker we need to finish the backbone manager we need to do a scenario builder we need work for integration inside the italian vm e GS VN sorry and we have to do released integration and abuse the as is an api we have to do a lot of documentation a lot of conditions and yes so we are to finish this I would just say that you can go to check those links you can use the mix please you can integrate Hemmings in your application please please and you can also contribute and I will be very happy if you can just integrate Linux in your application and if you can contribute on improving Linux as well because I think it's really important to share and to do stuff together so yes thanks for listening thank you yawn thank you very much [Applause]

Automatic transcript — names and jargon may be misspelled.