New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

A Journey to the Center of the Eth: How OpenZeppelin Aims to improve UX and DX in Ethereum

DevconFri, Oct 9, 2020, 12:00 AM

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/a-journey-to-the-center-of-the-eth-how-the-gas-station-network-improves-the-ux-in-ethereum The Ethereum developer ecosystem is in constant change. Undoubtedly, teams have started to leave the development of Smart Contracts in the background to focus on the development of decentralized applications, and on how to eliminate friction points between users that might not know anything about Blockchain but still need to interact with it. But developer tools are still important and they have to be simple and secure to use. In this talk we will explore how the Gas Station Network is implemented to redefine the interaction between users and DApps in a way that they don't need to have any knowledge on mnemonics, private keys, transactions or gas costs. Moreover, we will go through a set of tools that the OpenZeppelin team developed to make this transition from regular DApps to gasless DApps in a super easy and fast way. Speaker(s): Juan Bautista Carpanelli Skill level: Intermediate Track: UX & Design Keywords: 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

[Applause] opening probably you have heard about it and simply because of the security audits we perform last year we audited this community compiler we all saw what I did a lot of profits for coinbase we audited but in the days the serpent language and we broke it by the way and most recently we are today the well-known compound and instead of you probably also known know us because of the open sampling contractor was it really one of the most used libraries in the civil system that has more than 20 to gain of 10 days per week and that probably everyone that has developed under ERC 20 or ERC 721 probably used discovery so gender for today we're gonna go through how we can develop smart contracts using the open 17 SDK afterwards we are gonna see how we can build jobs super super easy using the opens of these charter kids and afterwards we're gonna talk about sound DX uxn main problems we faced while you know developing doubts for for users and we're gonna talk about the open ceiling GSM groups so the first part of this talk is gonna be about DX and the second one about us developer experience their user experience so let's start with DX it's super important for us to know what problem we have here I think that if used a software developers for developers and have worked in other ecosystems proud of you no doubt our tools are still super super-great compared to those other resistance and us in opens up then basically love to really stop for you to make your life easier and that's why we built two super ace the tools of our Java SDK NGO in 7 easy targets let's begin with the opens up in SDK G opens up the SDK is a software developer gears or a software development tool basically a CLI that will let you develop your own contracts compile them with any version of solidity want deploy them with this only with one command upgrade them and we can talk later about that interact with them in a super easy way and also start your jobs like in five minutes how you can use well its name package open Zebulon CLI so just running MVA and PM install add-ons eminence like whether the tree you will probably first want to initialize from project you can do is that you can do that using the open Zeppelin in the Koran it basically will run a lot of stuff that will trade your contracts folder it will set up your network configuration file and a couple of other things for you to track your different contracts within your so basically we want to develop our conference we have a my contract contract which has do something function that receives something brother Sonny super easy to understand we only have to run open setting create specifying the contract name on the network name and that's all you will have your contractor your contract deploys for block you to the maintenance Network in this case but if you forgot all the pointer name or the network name it's fine all the open sibling contracts are interactive all the organs of the commands carry the map - and you will be able to just run open setting create and the CLI will guide you in the process of deploying your contract so for example here we have a contract my contract in maintenance at the address one area the one the strands with one Ian and we probably want to talk with our contracts right because we have already deployed them and we want for example functions see the value of variables or maybe just two transactions G opens investigate has two super handy commands which are called and central section call for calling pure view functions and central sections to any other public function of our contract that will actually create a transaction they use usage is super super easy interactive comments if you just run open second column or central section it will ask you to pick a network of your network configuration file it then will list all the instances you can create afterwards in will I mean not create but to call afterwards it will list all the functions that that contract has for example here that there's something and I already show on a community function and just by selecting the seventh-inning will ask you for each parameter the function s and that's it that's it you will see the transaction cache which you will be probably able to copy and paste in ether scan and see how it did well we know that software development contract development r is done by developers and universe are persons people people make mistakes every timings we know this we know what's happening right now in this modular system we can just push our broken code and a lot of jars millions of tourists can be lost and it's important to have like tools for getting rid of these problems so probably upgrading our contract is a solution if we have a my contract solution my contract contract with our do something function which might be broken with her witties just modify the code we can also add new functionality and just run the open setting up great command which will reload the new code in the exactly same address I'm not gonna go super super deep in this topic you can afterwards after the talk asking questions but if you want to just see how it works you can look to assembly in such a great son that dresser is a mutation per unit anything else well yeah we have seen all the left commands yeah at least this one that they actually did create a great fall in central section but we also developed a lot of superintending events for example moment something compiled for competitor contracts with pennies for the diversion horns open 17 verified for verifying them in ether scan or a third chain of insomnia comes for listing all your accounts within the network open sudden transfer for transparent not only Navarro also ERC 20 tokens open separately matters for wearing a valence of an account again teen ether and in the RC 20 tokens and opens at the impact that is volatile I don't know when okay okay so really pilot who made this presentation for me because I'm super lazy for making my own presentations wanted to save me something right well basically the open setting unpack is the command that will they test let us link the open something SDK with the open 17 stories open semanas targets are basically tab scaffoldings that will let us charge our jobs super super easy take blue team well-known open something contracts the opens of the SDK and talking about inferior for connecting to any blockchain very low chain a one-liner that will allow us to configure super super easy for three we have to remove for our front-end components and also G opens up the loader which is basically a tool we developed for you to modify your contract and see the changes of that contract in your web app just saving fire so you had a new function for example that you are reading the API of top contract you will be able to find 75c value function ID within your website so super e seconds you use with the SDK we just have to run over something on that starter which is basically at an empty version of the starter kit so you can start your project from from scratch or open simply unpack tutorial just a super fancy very we're gonna see later or open something about GSM and I am going to hear a split earlier because we're going to go deeper every GSM in a couple of minutes but just running MV around start with the trick you will be able to see the demo there are two samples for you to learn how to use the open second instigator Pantera and even budgies super easy to understand if you want to go and see what is this police go to assembling slash targets or settling slash SDK to see was a 20d SDKs and I think that we may have solved the GX problems here mean we have a lot of these problems that maybe you know now you can start a project to play them with only one command interact with things your equity your fault I don't know man upgrade with other command verify them with other command but this doesn't solve I mean this is solving our problems as developers but what about the product usage like real people tasks by the people that everyday exceeds in their desktops or laptops for example my father which by the way loves to buy stuff in the internet I'm from when Cyrus Argentina we don't have Amazon there but we have a person our website that is calm and probably wouldn't that basically is acceptance and you can buy whatever you want or I don't know food stuff and just by adding your credit card using your credit card you can picture stuff in your home life two days later but what about by the way my that is 73 years old so what would happen to him if he's in his computer and he sees Jesus pops like what the what the is minimized what the are my monies Woody's private keys with our private keys spur counters have for him not for us because we're developers but for a real user it will be super Congress on so my dad will be sad because he won't be able to like his tab and the post will troll him and that's not good so it's a pact and it's well known fact by the way that we lose the ninety percent of our users in the install America's image clearly what we are missing is user experience that's why I'm super happy to introduce you to the gas station Network which is the ultimate on word resolution 43 obligations basically the GSM is a great contract architecture in the blockchain that was first developed right developer by an alliance of companies to compensate the employees Peter for solving the user awarding problem I'm gonna give you a brief everything protection about this basically the GSM is composed by a centralized group of three layers who are paid for millions on sections we're gonna go deeper into this later but believe me they are like you know frilliness a single unaudited by open 17 contract or coordinated everything that is called the relay hub your jobs will pay for their own transactions I mean if I made an app I attack I will pay for the transactions not to you sir so my dad doesn't have to or any user doesn't happy that doesn't have to struggle with the pulse which is crazy so let's go and see how does it work these however players are used to my dad every day urge every day hat and they're receiving a contract which is our smartphone direct at least linked it to a hotel we don't know how a regular transection works and that choice to minimize mana must help him help scheme to talk with the contracting with your look change we also know how manage from sanctions pretty dramatic from sections work I got will talked with re layer under a layer we talked with the blockchain maybe or probably using an identity contract assigned for my dad did you send militant section solution works slightly different basically my dad will talk to her later this relator will check whether or not the recipient contract has funds for payment transaction fees and to pay Gerry later fee because here we have very little if you're later if you want to start up every day or just to go easy treatment to me like I never five-minute thing you will be able to actually get paid for those you relate so if you have 100 real acres and there are a lot of transactions on pure relating you will be winning earning money so as I was saying earlier will check whether or not the recipient contract has funds to pay for these transaction fee and earlier fee and it does generally not every day have this contract release by the way deployed by us in every single motion and its unique there's only one for each ball chain will do the several checks for example if the relay called is legitimate and afterwards it will ask the recipient contract whether or not it wants to accept a relay call if it does well it will actually send the relay call to the contract to the recipient contract and the receive under a hub will be able to pay earlier for that transaction so basically it's the meta transactions on roids because you don't have you and when I say you is basically the smart contract developer deduct developer you don't have to like think about you know assigning identity pond'rous to users and maybe afterwards ask the user to please his credit card or you know doing a simple transaction by pressing the botany in your website that's why I told you hear that jobs paid for their own transactions which is great at least for the onboarding program and how can we use this stuff because I'm talking a lot of technical stuff and maybe you just want to use it well we developed as a team the GSM provider you can install it using the gsm provider is basically yet another web through provider that you will be able to use to transform your regular transactions into management sections into relay have read a GSM transaction so just by changing your typical HTTP provider to the gsm provider you will be able to do a call as in the third line my contracted methods that do something the condor we were seeing before dots em and that's all instead of you instead of doing a regular transaction it will do a management session which is great right so you only have two connections we change one online also you have to make your contract gsm cable and for that G open Zeppelin contracts or open settings solidity team created a couple of contracts for example the GSM recipient that you will find you the best miss Pauline obviously open something contracts which just inheriting yes if you have your country are you enter it and it from it you will be able to access to the accept relay call this function I told you that I checks whether or not the recipient contract wants to receive their the transaction or not well you can code that in that separate home and what else do you open Zeppelin GSN helper so maybe could be for you to you know set up everything to develop your own gsm cable capable of ups and we basically developed this GSN helpers for you to make it like in only one two minutes just by after installing the GSM helpers running if you run us GSN regulator this will basically create a relay have in your look if it's not created it will download the binary of the relator it will then start the relator it will associate that we later to terminate have and will fund it so it's capable of receiving from assumptions really really close and if you don't like she likes you also can use a chromatic way which will be basically important ever issues to really function and upon recipient function from the same library and just with a one-liner you will be able to order a layer of other recipients or whatever you want and we have been talking only about Eli's code we also develop some web tools you can go to sibling / GSN tool which will let you see I mean if you develop your own contracts and you upload them and you link them to the gas station network there are GSN capable you will be able to see all the information at the top - with the doctor and also see information about their relatives okay I know I got like talked a lot about a lot of life you know to sue sue sue so spoiler alert ended you can use the starter kit the GSN starter kit just by running with the CLI open something aambat GSM and you will Gerry have the open something contracts on CLI as you having to previous starter kits inferior gonna react Greenville again and you will also have it within this target the open something GSN provider and the GSM helper so basically by running of mdx if this point opens up like advantages and you will be able to just start your gsm capable job and well that's all this is all this are all the researchers we have been working on for the last year the contracts the CLI the GSM provider the GSM helpers the open something network and opens up into scalper for you to test your contracts you can at least go to 17/8 part to see all of this and also to simply in / dose to see the documentation and thank you [Applause]

Automatic transcript — names and jargon may be misspelled.