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

Loading player…

Truffle Development Ecosystem and Future of Ethereum Development Tools - Tim Coulter

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/truffle-development-ecosystem-and-future-of-ethereum-development-tools Truffle Development Ecosystem and Future of Ethereum Development Tools A presentation on the Truffle development ecosystem which encompasses a number of different tools including the Truffle development framework. There will be a demo of new features as well as talk about future plan, keeping an eye toward writing code that benefits the whole Ethereum community and not just Truffle users, focusing on development processes, blockchain simulations, testing, using live chain data for testing and development, and on-chain package management. Speaker(s): Tim Coulter Skill level: Advanced Track: Developer Infrastructure Keywords: updates, client, mining, account, wallet, deterministic, programmable, fork, solidity, tests, npm, buildpack, events 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

greats hello my name is tim coulter i'm here to talk to you about shuffle so first I want to start up and say thank you it's a pleasure to be on stage and I'm very happy to tell you about all the work that's we've been doing first off what is truffle truffle is the most widely used develop aetherium development framework to date we've had over 17,000 downloads 15,000 of those were this year 6,000 of those were in the last two months 421 github stars we have a 397 git er users I have to thank every user on there for answering questions of everybody else that I can't get to and and so far we've had over 20 external global contributors so for truffle 1.0 we gave you the basics it was compilation deployment bootstrapping application if you're making a web app contract abstractions unit testing and 80 and quick developments we added on that on top of that with 2.0 and allowed better network management migrations which is which supports complex deployments and it knows that your contracts are going to change over time we focused on modularity and completely rewriting the truffle codebase so that you can use only a certain portion of the treble codebase if you need it and then we had a big push for documentation now what I want to talk about today is where we are now and we're getting ready for truffle 3.0 in doing that I need to talk about the Atheneum GS test RPC now the test RBC is a in-memory if your iam client and it is not under the truffle moniker but I see it as the sister application to truffle I'm the main Stewart of this application and it basically provides instant mining account creation HD wallet support if you need it it's deterministic if you need it and it's programmable so what this means is that you can get quick developments without having to use live chain or private chain no syncing no mining so the biggest feature of the test RPC is what it is what I want to focus on today and this is the fork feature it's a big feature in a little package so if you install the test RPC and then use the - - fork option what this allows you to do is create a new aetherium client and fork from any available chain this means that if you're running go aetherium you can fork and run a new development chain using all the live all the data that exists on the live chain you can use parody you can use cbpo theorem you can fork from anyone you like and this feature is perhaps the biggest feature in development to date because in in history of development especially web development when have you ever been whenever you ever had the chance to use live data and live code without excuse me when you may have the chance to to program against a production database for instance with all the data that exists there and all the external interactions all in this case external contracts and this will allow you to do so so this has big implications for package management as big implications for security for instance I can program the three of us test RBC in to exploit the Dow contract for instance I can fork from right before the Dow presale and then give you this code that that shows you how this exploit happened and this goes back to what they were talking about before what specifically rain revere dynamic analysis we can use the tester bc for that so the next big thing for truffle is solidity unit test this is has been asked for for a while and these are drop-in unit tests you can you can finally write your unit test and solidity put them alongside your javascript unit tests and truffled will know how to run them it uses solar unit for its assertion library that has been been discontinued but it's a beautiful solidity library that I urge you all to check out the next big feature is npm integrations so the ideal for package management on ethereum is obviously something that runs that has a registry on chain something that runs that has the package date on ipfs but it's gonna be awhile before that reaches terminal velocity so what you can do now with with some of the new features that are coming is run npm install my package and if that's if that's a truffle if that's a triple project that you built or somebody built and and package it up as my package for instance then you can import those contracts into yours and not only that it will take all the build artifacts and deployed addresses and you can use those within your application so if you go back to the test RPC and use the fork feature like I mentioned you can use live contracts via NPM and interact with real code that exists on the live chain the next thing is web pack integration the you know let's let's be real the build system that came with truffle doesn't support everyone if you are a developer and you have to bundle your front-end code then you need something more complex and web pack integration you could add a one line of code or in this case three lines to your web pack configuration file and it will interact with your contracts and make and use all the nice hot module reloading that web pack provides the next thing this is just a small feature but you know emotionally as a developer it's a really nice one if you've used events and you've had to let's say you're making a transaction and you wanted to watch for an event or so you wanted to see if an event happened you had to watch for it and then after watching for it you that changes your control flow and the way you write your application you no longer have to do that so along with the transaction that comes back or the transaction ID the new version of ether pruiting is going to have the the transaction ID the transaction receipt and all the decoded logs so you can structure your application and say run this transaction did it make this event yes continue on the next thing I'd like to announce is a new website so you can all go to truffle framework calm right now and get information about truffle tutorials new releases it looks like this and I'd like to announce the beta program so before we make new releases we'd like to release a release beta version so we can get feedback fast and you can sign up for the mailing list it's a low volume mailing list we're only going to send emails about truffle and about the beta program you can get it on it at truffle framework calm as well you can see documentation for the beta documentation so one more thing there's always one more thing everything I mentioned today is currently in beta so you can go use it today NPM install truffle at beta use the beta tag instantaneous forking that's the fork feature from the test RBC that's already live NPM install a three mgs test RPC you can try out the solidity unit tests you can try out package management with NPM you can use webpack and you can have those smarter events that I mentioned up next solidity zero point four point neck support that requires some change to the solidity parser but once we get that that will be in better network management especially if you're going to be one of those people maintaining a truffle package or a truffle based package on NPM we're hoping to have more integrations browserify is one of them more boiler plates to show you exactly how to build your app quickly and more tutorials so thank you I have plenty of time left which I didn't expect if there's questions I'm happy to take those otherwise please ask me questions later I would love to answer them get on get er thank you very much

Automatic transcript — names and jargon may be misspelled.