 Great. Hello. My name is Tim Coulter. I'm here to talk to you about truffle 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 Ethereum development framework To dates 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 397 getter 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 your application if you're making a web app contract abstractions unit testing and 80 and quit development we added on that on top of that with 2.0 and Allowed better network management migrations, which is Which supports complex deployment and it knows that your contracts are going to change over time We focused on modularity and completely rewriting the truffle code base so that you can use only a certain portion of the truffle code base 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 a theorem. Yes test RPC now the test RPC is a in-memory Ethereum client and it is not under the truffle moniker, but I see it as the Sister application to truffle I'm the main steward of this 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 development without having to use live chain or a private chain No syncing no mining So the biggest feature of the test RPC is what 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 dash dash fork option what this allows you to do is Create a new Ethereum client and fork from any available Chain this means that if you're running go ethereum 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 cpp ethereum 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've had the chance to to program Against a production database for instance with all the data that exists there and all the External interactions all the in this case external contracts And this will allow you to do so so this has big implications for Package management is big implications for security for instance I can program the the test RPC 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 test RPC for that So the next big thing for truffle is Solidity unit tests. This has been asked for for a while and These are drop-in unit tests You can you can finally write your unit tests in Solidity put them alongside your JavaScript unit tests and truffle will know how to run them It uses solely 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 going to be a while 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 truffle project that you built or somebody built and and Packaged 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 webpack 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 webpack integration you could add a One line of code or in this case three lines to your webpack configuration file and it will interact with their contracts and make and use all the nice hot module reloading That webpack 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 with a transaction ID the new version of ether pruning is going to have the Transaction ID the transaction receipt and all the decoded logs. So you can Structure your application to say run this transaction. Did it make this event? Yes, continue on The next thing I like to announce is a new website So you can all go to truffle framework comm 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 comm 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 Ethereum GS test RBC. You can try out the solidity unit tests You can try out package management with npm. You can use webpack and you can have the smarter events that I mentioned up next Solidity 0.4.x supports that requires some change 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 Browser 5 is one of them more boilerplates 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 Gitter Thank you very much