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
you