# Grantee Exposé Lightning Talk 1 - The Web3j-SDK by Conor Svensson & Ivaylo Kirilov  (Devcon5)

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2020-10-09
- Duration: 10:16
- Topics: blockchain, smart contracts, distributed ledger, ethereum
- Watch: https://streameth.org/watch/yt-Igc1WlMeEoE
- YouTube: https://www.youtube.com/watch?v=Igc1WlMeEoE

## Description

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/5/grantee-expose-lightning-talk-1-the-web3j-sdk

This talk at Devcon will be used to announce the release of the web3j SDK (final name TBC), which provides a fully integrated development and deployment environment for Java/Android/Kotlin/etc developers working on Ethereum. It also includes a smart contract registry and blockchain explorer for ongoing smart contract management and support.

Speaker(s): Conor Svensson, Ivaylo Kirilov
Skill level: Intermediate
Track: Developer Infrastructure
Keywords: Web3j, Jim, safety, java, account, transaction, Quorum, CLI, devex, EVM, viper, technical

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 5 was held in Osaka, Japan on Oct 8 - 11, 2019.
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

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
