I'm Connor Swenson I'm the founder of
web three labs and original author of
web 3j and I'm joined here by Avaya
kirilov or one of the leaders and
maintain asan web 3j we're going to talk
today about the web 3j SDK which is
really the evolution of the web 3j
library so hopefully so
web 3j it's the JVM integration library
for aetherium
that covers Java developers Android
developers Kotlin developers it provides
things like accounts and transaction
management's full type safety with
regards the smart contract integration
from code so basically means if you
write in Java code you have your Java
types and then those get mapped in a
tape type safe manner to hiriam types as
John just now is talking about the
importance of type safety in the context
of formal proofs although the JVM is not
a proof based language at the same time
this type safety gives you certain
I guess guarantees about the performer
your code when it's running we also have
a native build tool integration and web
through J itself supports
core aetherium and being a by extension
of that get parity but then also hyper
ledger Basu JP Morgan's quorum and we
recently announced a a on integration as
well so it's a special occasion for us
they've come today because this in fact
a birthday for web 3 J it's now three
years old so we're really happy that
we've reached this milestone and so
giving pretty happy to be here as well
for for Def Con in terms of the project
though it's always being of course open
source we've had over a hundred
contributors to it it's had over 400,000
downloads I mean if you if you say total
downloads and so for 2 million but again
it shows there's a good amount of
traction with it and we also have a
decent number of github stars and a full
time team working on it and you know one
of the classic challenges with open
source of course is being able to fund
it people love to consume and use it but
when it comes to actually paying for it
then it's slightly harder
and so in that respect we're very very
grateful to the ECF they gave us a grant
last year and Bitcoin have funded
numerous bounces over the last year or
two for the project as well and then at
the end of last month that the EF have
also given us a grant to so we're really
really being grateful to everyone who's
given us the grants and also it means
great things for web 3j and the wider
developer ecosystem in our opinion okay
so why do we have web 3j of course it's
there for specific developers on a
certain platform for working with
etherium historically though it's been a
dependency in effect that people pull
into their projects to actually you know
integrate with etherium but there's
certain challenges that come with that
and we're always thinking about you know
developers who are new to etherium and
blockchain generally how can we make
that sort of onboarding process as
simple as possible right now the journey
kind of looks something like the
sequence here where someone needs to
create a project in the first instance
they need to create a build dependency
which is pulling in web 3j they then
need to write smart contract code they
then need to compile that smart contract
code then they need to find a node to
run against and then finally run the
build and of course finally pray that
it's actually all going to work as well
which is you know we're always a big
challenge so we've been thinking a bit
about you know how we can actually
simplify this more and so part of this
has been extending the web 3j CLI which
historically did things like you know
fairly straight forwards transfers of
ether you know create smart contract
bindings but we're really thinking about
you know how can you make that developer
experience better and fundamentally how
simple we can actually make it and now
that question there is how simple can
you make it for a developer to actually
work with this technology for the first
time and so this what been thinking
about and Apollo's gonna talk a little
bit about - so hello everyone how simple
we can make it is three commands
one command obviously you need to
install the CLI tools to use so we have
a simple curl script that will install
it for you it's also multi-platform so
we have equivalents for Windows that's
step one step two is you need to create
your new project so simply running web
3j new after you've installed it will
generate a project for you with some
boilerplate code to get you started
there is also an option to import an
existing solidity contract or solidity
code to just generate a new project from
the solidity code for you to get you
started with Java and for now the third
step is you need to build it but we're
looking to automate this to make it even
simpler for developers to get started in
the future so with the web 3j SDK so far
what we have achieved is creating a new
project adding web 3j build dependency
creating and compiling a small contract
and creating the JVM bindings everything
of which you have to do manually
previously and we've also been working
on what three j-unit module to allow you
to do better automated testing and
integration testing with your contracts
so rather than having to spin up a node
we use ganache - integration test your
your contracts we have managed to run
the EVM in process in your tests so you
can test your contracts as if you're
testing any other piece of java code
which is pretty cool and I'll hand it
back to Connor to let you know about the
roadmap and what our plans are for the
rest of the year and how we're going to
use the grant money so their web 3j SDK
it's really the convergence of a number
of different components of the web 3j
ecosystem so like you'll build
automation your core inspiration library
the CLI tools automated units and
integration testing and so this is
something that we're going to be
continuing to do a lot of work on over
the next 12 months
but additionally and this is again where
you know we want to be very transparent
about how this you know grant funding
actually directly helps
projects as well in terms of the ways in
which it can improve the experience
because you know our view of course is
that the more developers we can bring
onto aetherium and the less friction we
create for them when they're coming on
board that the better it is for overall
adoption we think of it very much so
like a traditional funnel you know in
the marketing world you talk about
customer acquisition where you have a
funnel that people sort of go through
these different stages and as they go
through each stage you potentially get
drop-off we see it with developers
exactly the same thing the more sources
that a developer needs to work with the
more commands they need to type than
these sorts of things in order to get
started with it at every single one of
those stage there's the potential for
drop-off to actually lose developers who
you know could be people who really get
into the technology and so this comes
back to the emphasis on simplicity and
minimizing the number of commands to do
everything and make it very powerful of
course once people familiarize
themselves with the technology then it
becomes a lot easier to for them to
actually dig deeper but you know we
think it's so important to make this as
simple as possible because that's how we
drive that much wider adoption to the
people who are you know who aren't the
passionate technologists who are at this
conference but the kind of wider ones
who want to dip their toes in but maybe
don't have the time to spend a lot of
time going through documentation and
everything else so the testing
enhancements this is an important part
of this strategy so that we have
automated test generation based on
contracts you have enough information
about a smart contract to be able to
infer these sorts of pieces of
information and so having you know not
just integration test but also unit test
so that people can test everything
locally without having to think about
running up the node infrastructure is
very very important there and another
building block for that as well as an
integrated EVM certainly like we you
know whether we actually design our own
one or whether we use one of the
existing ones like in I pledge a base
who remains to be seen but the point is
is having something very lightweight so
if developers are developing a contract
using web 3j then they can quickly see
if that's working or not without having
to deploy its or a real network the
other piece as well is VIPRE supports
outside of solidity certainly
now it seems that VIPRE is where there's
the most interest in terms of you know
for a language for smart contract
development so we want to ensure that
there's a seamless developer experience
there and then finally as well is like a
RESTful API generation off the back of
smart contracts so that a lot of the
time people will create some sort of
restful service on top of the
application that actually integrates
with the blockchain so we want to
automate that generation as well and
again just simplifying the experience
and then people can use whatever
languages they want you to plug into it
that's all we were going to say about
web 3j thanks everyone for your time we
just over there if you want to come in
and chat to us about questions we've got
some nice hexagonal stickers as well and
we've got t-shirts and so on so yeah
thank you and have a great conference
[Applause]
you