# "Web3 with Web3j" - Peter Robinson, Conor Svensson & Dan Shaw

- Channel: [ETHGlobal](https://streameth.org/ethglobal)
- Date: 2021-10-09
- Duration: 30:23
- Topics: Ethereum, ETHOnline, web3, web3j, Peter Robinson, Conor Svensson, Dan Shaw
- Watch: https://streameth.org/watch/yt-HgKrcTXI0Ps
- YouTube: https://www.youtube.com/watch?v=HgKrcTXI0Ps

## Description

Peter Robinson & Conor Svensson & and Dan Shaw discuss the promise of web3j for web3 development.

## Transcript

and next up we have our panel and i'm super excited about this panel because we have three amazing people that are going to be talking about how what 3 in the world just gets to use ethereum on the enterprise side so we have three amazing people for for this next talk and uh that's stan connor uh swenson and peter robinson and dan will be the one moderating it and i'll let dan intro our panelists as part of this um and i'll kind of have him give him the rest of the context so without further ado like to welcome dan and connor and peter to his chat and i'll let them kick off with our next panel welcome awesome thanks kartik oh hello welcome all right so uh today we're going to uh be talking to uh the creator of uh web3j and talk a little bit about web3 uh how that's evolving and uh you know how that kind of fits into you know a broader uh enterprise context i'll be your host i'm dan shaw i'm an advisor to the ethereum foundation on enterprise community and i'll let uh connor and and peter introduce themselves so conor do you want to kick off the uh introductions yeah sure thanks uh dan so i'm connor svenson i'm the author of web3j and also the founder of web3 labs i'll leave it at that pass over to the answer yeah um i'm a technical director applied cryptographer at um consensus protocol engineering risk um r d um back to you dan awesome so i i want to start with you know some basics especially since we're uh you know addressing you know not just the the the total uh you know ethereum community but also you know the enterprise community love to have you know kind of crisp definition of what we're talking about uh so peter can you help us lay the groundwork and just you know uh you know remind folks what we're talking about when we're talking about web3 sure so the simplest way is let's talk about web one two and then we'll get to three so web one i've got a web server and i own the content i write the content it's pretty static people surf the internet come to my site web two i own a server facebook twitter and people come to me and they create the content and i monetize their content and i but i own their content and um web3 it's it's decentralized and so people own their own content people own their own business logic and it's um there's no central body that owns it so you don't have centralized governance and you don't have centralized servers so you might have a network of servers that the information is across the other big thing about web3 is it's the web of money so you can do value transfer as part of things it's not it's a native part of the whole system so i don't know dan is that a pretty good introduction to the website that's great yeah that's great contacts thanks um so so connor uh you know you created uh yeah web3j yeah once you've sort of uh you know the groundwork there and uh tell us a little about uh you know why you created and and what it does sure so it all started for me back in 2016. um i'd had you know historically i'd spent many many years working in enterprise and then finally got out of that world into the world of startups in 2015 worked on my first venture it didn't work out but then kind of moved sideways and um discovered ethereum um in in 2016 so i wasn't one of the super early people on the scene but you know what what i'd followed bitcoin but bitcoin had never really captured my imagination fundamentally it was you know just the store of you know value and what i always loved about ethereum was just that the whole concept of you know having this massively decentralized world computer basically to to paraphrase phrase um you know other people in their description and um you know when i what what drew me to ethereum was that you know looking at blockchain back then um it was it was the project that really stood out it was the first of the blockchain 2.0 projects and um the community around it reminded me a lot of linux i've been kind of big into unix and linux in the 90s and um unfortunately for me like you know jumped on the wrong horse got into like open solaris and this sort of stuff when the linux community was exploding and then you know when it came round to uh you know the blockchain and looking at the communities there was like i'm going with the biggest community this time around i don't care about what i think the the technologies i mean don't get me wrong it's like it was an amazing jump you know i think with uh going to you know 2.0 but uh fundamentally like the community thing is what drew me into it as well as just what it was all about and um you know even now in 2020 i feel exactly the same way like you know we've had all these other projects emerge yeah you know they're so called ethereum beaters or whatever you want to call them but uh i don't think it's any different we've still got an amazing community in the ethereum ecosystem um but but going back to 2016 um you know i'd spend all these years in enterprise uh working on the jvm and um being mainly a java developer and when i started working with ethereum it kind of seemed like you know most of what was happening there was in the javascript world and coming from that enterprise background i thought well there's all these enterprises talking about the transformative potential of blockchain ethereum's the you know biggest blockchain platform um so surely there's a need there to ensure the jvm can plug in seamlessly to it and that was the genesis of web3js spent a bit of time researching to see if anyone else had by an equivalent then they're just kind of you know hooked in at the api layer there wasn't anything i thought it'd be a simple project but then got sucked into the rabbit hole for dining and you know generating smart contract wrappers and all this other stuff you have to do um and released the first version of it just in time for devcon 2 in shanghai so it was um yeah and kind of from there it's just grown and grown and um it's been a lot of fun night you know just having this project and see it um yeah you know emerge over the years and get ever more sophisticated we're done so you you touched on a little bit maybe uh you know peter you you kind of continue the thread uh you know we've got the jvm and java and you know java's been around forever it's the old dinosaur the old workhorse why should we care as we're sort of you know innovating and paving out this this new uh you know universe uh why should we care about java well i mean let's face i i mean i i've worked at a few companies and one one of them was oracle labs and oracle's got a a a product i won't say which one it is and it's got 100 million lines of code and they're in java now if someone said oh we want to put this new module in and we're going to bang it in golang or rust or something they're going to say no you know it's really simple no we've got a hundred million lines of code and they're not the only company that has a massive code base of java so they've got all these devs who know the language they you know they've got capability and so trying to have um a new little piece that's in a different language makes supporting the overall product much harder so that that is a big reason another reason is a lot of companies like to outsource to places such as india and you've got something like you know 10 million devs in india who know java so that's another reason for why people use java as well is you can outsource to all over the world and yeah there are just a lot of people who know java and so if you can use this tool web3j so you can think of the ethereum network you've got all these nodes web3j is this library that you integrate into your app into your java application to talk to the network and so you if you yeah and that's why people use java is because there are a lot of people who know it and it makes it and if you've got an existing code base then you just want to keep on going um yeah i don't know i think so kind of like you you've built this you know incredible community you know what what are some of the ways that folks are are leveraging uh you know web3j on the jvm uh you know we have you know emerging uh you know languages like uh you know kotlin and you know the android ecosystem uh you know how is it building uh you know the web3 functionality for the jvm what have you seen the community doing so i think and you know just um building off the back of what peter was saying you know like so many companies started investing heavily in their you know java infrastructure in the late 90s and so you've had basically 20 years of business platforms being built and you know these these these companies have exploded in terms of their size and their global footprint and so you know what that's meant is that you know for people like them it's it's about being able to create you know some nice integrations there um you know like the classic thing of course is um you know these enterprise integration patterns which is a very well established thing in terms of how you you know connect disparate systems or you solve like different messaging problems and there's loads and loads of products and for being a very large companies that are kind of operating that space and obviously like nowadays the kafka message bus is the you know one of the big ones but then you know historically he had um you know well ibm men queues is still still massive there and mulesoft kind of made it their their bread and butter just kind of servicing that community and so you know what you see is like a number of different integrations there that's a very natural place for it so um you know part of it is is having adapters that can um you know write to you know persistent data stores but then also like say with the um guy building over at red hat him who who wrote the um you know went through j adapter for um camel you know there's kind of a classic example of how it just kind of plugs into it um like what we certainly see is just that there's you know within within the jvm world it tends to be quite different the sort of applications and use cases that people have versus like you know the javascript world i mean don't get me wrong like the the full stack development thing it's amazing you know what you can do nowadays with node as um you know the front end and the back end um but where you have these these enterprise services you're thinking about back end services typically you know you're not going to create like a ui and these sorts of things generally using the jvm you can though and there are frameworks for that um but it's it's kind of you know it's those sort of serious business apps that are doing a lot more it's more about the data processing and you know doing transformations of messages and so on and so forth which you know you don't you don't have those sorts of problems when you're writing like you know client-side applications it's it's more when you get into much sort of media scenarios um but the other point of course is as you mentioned there dan is uh the android community um you know and this is something which um you know it's it's been great to see the adoption of web 3j in that space um samsung use it in their blockchain sdk which they released last year for people building you know wanting to integrate with ethereum um on android phones um and then also opera kind of they were one of the early people to use it with their crypto wallet as well there and so you know i i think what's what's so powerful about the jvm is that it kind of serves these two massive communities um you know they're not the kind of ones that people will um necessarily write a web app in but if you want to write a phone app um then you know you've kind of and you you don't want to i mean of course you've got things like react native for instance simplified but if you want to write it on the native platform then web3j is what you use for that and likewise as well as the jpm um kotlin's got a lot of growth um in the android community just because of its backward compatibility but i won't go into it for people with those details now but yeah it's you know it's it it's it's got it's very very well embedded in those different communities and you know consistently you see the biggest programming languages is kind of alternates depending on which survey it is whether you know javascript python b or a java set uh yeah so you know but very bright that's excellent um yeah so you know we're we're at a point where uh you know web 3's beginning to take off and and we're uh you know heading towards the convergence of you know web 2 and web 3. um but you know there's still you know kind of the last uh you know bit of of chasm especially uh you know folks that are coming from uh you know the the web two world and trying to digest uh you know what what uh you know what web3 means to them um you know peter what do you what do you see as you know some of the key things that that uh you know folks need to either do or understand to cross that chasm um what a i think understanding decentralization is i mean if you want to do a good app in the web 3 world you know because there are a lot of people who've they've got an application and they said we want to blockchain it and so they just add a blockchain to it and there's all sorts of central points of failure if you want to have a credible blockchain app then you know there needs to not be the central points of failure i think that that's a big one thinking about the design of the application um also thinking about if you're going to be doing something on the blockchain you really don't want to be having some massive heavyweight um complex smart contract the smart contract should be a minimalist thing with the a lot of other business logic you know so you've got to call the business like don chain and have um a lot of other things happening off chain um but then some people can dip into the web 3 world for micro payments and i've seen that a lot with say games so this is actually a topic you have to um shut me up on this one because this is something where um i could talk for hours um because yeah but it's a huge field but i mean the way that people often dip their toes in is to allow micropayments of their thing that they've got so people paying say with an erc20 or just with ether itself and um and that that's a way of people who've got a web 2 app integrating web 3. nice nice awesome so you know conor uh you know how is uh you know web3j evolving to uh you know meet the needs and what does the future of web3g look like so we've we've got some really cool things that we're working on at the moment um and unfortunately as well like the ethereum foundation has just given us another another grant so we've got to give a big shout out and thank you to them for that as well because uh you know it's it's it makes a big difference you know when you can you have some some funds to really focus on this as opposed to kind of working around other projects and um you know to do this stuff um and and and so you know what what we have and um we've we've already got um like a you know the the core framework support for like um the you know the specific features of the major ethereum clients and also things like hyperlink well sorry and also the enterprise-focused ones like basu and corerum too um we we have maven and gradle plug-ins um which are the two major um two major build tools used on the the java and android platforms and you know those those build plugins are sophisticated enough now to the point where if you have solidity code in your project it will automatically you know generate the java code to talk to them and then it can also generate unit tests as well for for those um something else though that we've actually the guys have just got a release going out tonight is an open api generator so what's really awesome about this is that this is a build plug-in that you basically say you add this build plug into your project and some solidity code and what that will do is it actually generates a fully runnable project which spins up open api apis for every method on your smart contract enabling you to you know deploy and manage and whatever else so what that means is you can basically just take a um solidity contract and then you can just spin up an application that exposes it in an open api format so it's like you know it massively reduces the barriers because it's one of those things we've seen people do again and again they create a smart contract uh then they write a java app to basically create a web service to talk to it and say we've automated all of that now um but some of the other things though that we we are going to be focusing on now um well you know one of one of them is um you know start starting to think about the eth2 side of things um you know the with the beacon chain it doesn't really change how people are going to be interacting with um you know mainnet in the near term um but you know where though we feel that there's still you know a bit of value is um you know having a web 3j um library for talking to the beacon chain client api um we're also starting to go deeper with our debugger as well so we do have a stack based debugger that uses the hyperledger base to uh evm so you've got a production grade evm for running your unit tests against um you know with web 3j um and we can easily specify you know docker files or an in-memory evm to do this so it makes integration testing you know really powerful against different clients but we're going to be beefing up the debugger we're looking at support for intellij so you can actually do um you know do prop have a proper debugging experience in intellij um so you're going from java code to solidity and back again and and then the the other thing is being able to actually pull down um uh but like a lot of projects like you know open zeppelin being the main you know the one that people probably use the most but they typically upload um you know contract artifacts into npm um and so we're going to enable it in web3j so if you like put in an annotation like you do in the javascript world um for your for referencing a smart contract that lives on an npm repository that'll actually those contracts will get pulled down into your java project so um you don't have to copy and paste code to use certain interfaces and these sorts of things and and and the other thing is uh for the form of migrations and just you know refreshing the docs and these sorts of things too that you know we haven't um you know spent as much time on and you know to kind of go back to peter's point there about the whole getting started experience it's still so hard for people you know when they first come to the ethereum paradigm because not only have you got to get your head around a node you've also got to get your head around a wallet and you've got to get your head around it and it's like it's all these things before you even start writing any code so we're on a quest to kind of simplify that and also give people first class developer experiences brilliant so you you i was just going to say and one other thing as well in the basement or two that's that that's that's the other area as well we're exploring because um right now um the baseline's using like node infrastructure um you know for the smart contracts we want to add in support using web3j for that too nice yeah the enterprise folks that i've been talked to uh you know baseline protocol is is uh central to a lot of their considerations um you mentioned uh you know eth2 and you know uh yeah as we look forward and you know uh you know not just the the implementation and webster j but web three uh you know uh maybe conor sorry you could kick us off in uh you know how does web 3 uh look like in an east 2 era yep um so good question so i think um eth2 for those people who've been following it over the years is a ever-changing beast it has been morphing and changing and new ideas come and go um there are going to be shot there are definitely going to be shards of some sort and um the latest thought is that they'll be using um some a technique called roll-ups as a way of having massive scalability um and um but you might have execution charts and data availability shards i think the the thing you can think about is though that you'd be targeting your web 3j at one of the shards essentially for your execution environment and then it's a matter of dealing with how do you do cross-chart communications because you could imagine you can have a contract on one shard and another contract or another shard and you want to do a cross-contract call so just working that through so there are some complexities but um the thing that we i think we can all be sure of is one way or another you're going to be able to write solidity code and it's going to work on the ethereum too you know we're not going to throw the baby out with the bath water and somehow rather the main net as it is at the moment is going to be a shard in each too in fact that's um thought of as the transition rate if you get that working as part with the beacon chain so i think that um it's just a matter of being able to target multiple shards i think that that is going to be the big thing um but it's an evolving thing as as exactly how the execution layer and data availability layer will work b can change due to be launched really soon so um yeah conor anything you want to i know so i have to say that um you know earlier on this year when um it kind of sounded a bit more um you know certain that um we weren't going to be launching brand new execution environments on eth2 right from the get-go as a sigh of relief because uh it meant that you know the the fundamental infrastructure we've built up with web 3j uh around transaction signing um creating contract wrappers so you can natively um you know interact with from the jvm with um you know smart contracts so it just kind of still works as it always have has and you know it's something that's always a consideration with you know with any technology you know that balance in terms of whether you um decide to you know come up rewrite everything and start from scratch with us kind of more superior approach or if you kind of you know stick with what you have because it's well understood and you kind of you know move across the other side and uh you know i think um so somewhat probably unintentionally um you know going back to the early you know the early considerations with it but uh civilization has kind of become a global standard for smart contracts it's like you look outside of the ethereum ecosystem like projects that can support solidity say you can run you know solidity contracts on our blockchain because they know how many people um you know familiar with that and so you know i um yeah it's nice anyway to hear that um you know with these two anyways it's right now anyway it should be going in that direction which i think will make everyone's life a lot easier when it comes to the actual um migration of it excellent well connor peter you know there's been a great deep dive into uh you know this core part of you know infrastructure for uh you know building web three uh you know one thing i want to uh you know call out to everybody uh you know there's there's a survey that that the the ethereum foundation and the ea are uh doing on uh tools so if you go to bitly.com enterprise dev ether enterprise dev is you know the chunk part of it um i'd love to get your feedback and and uh you know it's been great to support uh you know web3j project and and make sure that uh you know uh everybody has the resources to to to build uh you know into the future uh and by participating in in the survey uh you know you help us uh you know figure out where we'd spend our time and resources uh and supporting the community so uh you know really appreciate y'all taking the time uh and uh it's been a great discussion thank you very much thank you thank you so much dan peter and connor and uh even though dan kind of talks about the url we'll uh put that in the chat uh in a few seconds as well so all of you watching can uh click on that link and fill out the survey um we are at time but i do have a question for uh for each of you um and i'm just end on on that question and uh the question is kind of as over the past few years obviously you've interacted with a lot of enterprises uh trying to explore web3 and integrating this uh into their uh day-to-day projects uh what's kind of the most common thing that you hear that either hasn't still been addressed or you know that we as a community have to work on improving and uh and kind of what can people do um to address those problems that you hear commonly should i play first go for it that'd be great i think there's uh unfortunately there's still a lot of misconceptions that you know if you run ethereum uh you you know it's proof of work um which you know it's it's it's it's it's annoying right when you hear that because like there's so many other options there but that's that's certainly one area that enterprises um kind of do um struggle with but um i mean the other side though and did this kind of is by design really with you know the public ethereum network um it's really about you know in the individuals in terms of a wallet is kind of the identifier on it and it's you know it's it's an anonymous identifier with enterprises when they want to transact with one another they absolutely want to have complete certainty on who they're um transacting with um and that sort of confidence there so that's the key one and it's not to say you can't kind of have um abstractions to you know tie in with whatever say directory services you know that map to like a an ethereum wallet sata to work around that but um you know we we that the platforms um that were designed from the ground up for enterprises like they kind of baked a sort of pki type infrastructure into it so it's like that just familiar paradigm and they're using the crypto curves that are kind of the really well you know well-known ones that um you know there's lots of implementations of those enterprise security guys most comfortable with peter um yeah look i i think um one of the the big things that um we have is that a lot of people don't know that you can run a consortium chain in ethereum they just you know you say ethereum and they say main net or they don't say maintenance ethereum is this as as connor was saying a proof of work public chain no permissioning and um yeah a lot of enterprises instantly think chaos it's the world's come to an end of course there is baseline which we um is now you know a way of um for businesses to use mainnet and feel happy about their data but i think consortium chains are a big thing too and um yeah people often miss the fact that ethereum can do that um that's me nice yeah for me i i often get asked the question you know what what's the killer app for ethereum like folks are are uh you know poking at that and you know the enterprise love uh to pick winners and you know in that they're looking for you know what why why invalidating why why is you know ethereum going to win and you know ultimately i think it's the the distributed nature of the platform and you know for folks to to get to uh from where they are today in their adoption to uh you know really uh you know the maturity and you know the need in the use cases where uh you know distributed collaboration uh you know really clicks in uh you know one of the things that that i've been directing folks to to focus on is you know something like uh baseline protocol it simplifies the surface area of of the problem set for you know an enterprise that is asking the question you know what should i do now with with ethereum uh so uh you know that that simple uh you know i love to guide folks uh with with the enterprise um you know lots of no's and one or two yeses so uh you know as as peter was saying sort in blockchain fantastic uh and you know baseline protocol uh so you know we can get that simple distributed uh you know uh point on on the uh eventually mainnet that's wonderful uh dan peter connor thanks again for this great panel
