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

Loading player…

Catering Web3 Development to the Web2 Minded by James Duncan and James Young of Abridged

ETHGlobalFri, Oct 9, 2020, 12:00 AM

James Duncan and James Young of Abridged deliver a talk at ETHBoston about developing in Web3. ETHBoston was an ethereum-focused hackathon that took place Sep. 6-8, 2019 at the Northwest Building, Harvard Campus. ETHBoston was a hackathon organized by ETHGlobal and a team of hackers, developers and enthusiasts interested in building and creating in the ethereum ecosystem. The ethereum focused hackathon took place for 3 days at the Northwest Building, Harvard Campus in Cambridge, MA. For more information visit eth.boston and ethglobal.co

Transcript

hey everybody make sure applications James game to solve please remember yes and so it looks like [Music] so I have a background in games social games specifically so prior to doing crypto in what degree I was doing games online advertising also have experience when it comes to infrastructure have experiences well and you know all this kind of web to stuff has led to figuring out how to make not only the user experience better for users but the developer experience and focused on scalability and you know longboarding this is a quote that I hear from James Young actually is like it's not as much I believe that thing that Cantona and so a big part of that what we're trying to do here is know that frameworks a really that's a great point I think that you know instead of trying to create the perfect system it's about being able to flesh out ideas with and that's the design philosophy behind what we've built into the SDK is to be able to be the tooling that allows you as a developer to get from idea into something that's tangible as quickly as possible and that's where the value lies so the idea here is that you want to be able to iterate and learn as quickly as possible and that come back from feedback that that's been one of the big takeaways create experience reflecting about it's all about a teacher of metrics and being able to iterate and see what working yeah in web screen James was a part of the team that built in first TCR also the first state channel was functioning recently deployed wallet that is here which is another big happening in the space and a bridge and it was the first real reduction of funding to create a city - is a TopCoder that was good in the last part fort - mainly originally used for the kind of natural state channels before but in genocide in that it is actually a really useful onboarding tool to launch yeah reason why we would be talking about this is just it's all about generation it's all about the learning and so as you travel all together as developers through this space and trying to understand what crypto is the tooling that we provide and we'll show a demo of this and you guys can play around with it as well it's just to be able to hit rate and try to see and figure out where this goes and how you as a developer can get your ideas out there and figure out from a usability perspective how to make app step that fulfilling generate revenue it's kind of this weird thing where we're in an early in the market when it comes to crypto is like it's a currency but there's so few tabs that are actually generated and all of this is an exploration like being able to figure out what works and what doesn't hopefully you as developers to be the SDK I only it's useful for you so that you can flesh out your ideas as possible just like the focus for a long time is about scaling right in our space but without on working a scaling gunfire and we kind of have solved it's feeling like we've had station elves out for more than you know but no one's using them because they don't really use and so the real focus and this is a James didn't think that was for year and a half just one morning excited things like what needs to happen and so that's kind of one of the design principles that were also focused on within the entire design the experience with state channel is like you know you're building something that scales but it's really hard to actually get to that app because you have to download an extension and what happens you lose your key yeah this whole onboarding process this is what we talked about programmable money programmable access is you know with key based wallets with we're all used to it but it's coming from Bitcoin it's like only having a computer with root access right and so we've solved that and generalized computing decades ago and we can move toward that when it comes to fund management and in so doing what you would do from a like a user experience perspective when you're building an app as a developer you don't have to force your users upfront like have to figure out with it to have to say okay well you know if you don't write down your private key you the state never lose access to your funds but at the same time don't write it in too many different places because if someone finds it or if it leaks then they're gonna steal your funds so there's just like crypto and paradox here and I think in a lot of ways in order for us to be able to sell collectively as developers for mainstream adoption is to be able to provide that safety and recovery mechanisms when you think about it in terms of like a traditional bank that's part of the sort of thing they provided on saintliness where that safety factor for like fund management that you know the bank's gonna be around and they're gonna hold your money and they're gonna keep it to make sure you don't lose it you know you use your card you can always get it replaced things like that and so I think there's a a lot of things that we can do with contract based fund management and the whole design space that can be explored for best practices there and I think once we beginning to adopt these best practices then you see major adoption happening then for me to adoption then it's like this one too much where you need the e sub on morning that will allow apps to be able to have scale and then solve the scalability and services during the mode or to [Music] and these Iraqis that are related to every instance users like me and went or device that there are in order to access their account so also so it's like a normal user name password login potentially like this to only two off in count contract and isn't the point to chain that is created and then I'm talking device keys either with no guardian or and then the second step that onboarding process is that [Music] we we skipped over channels in this presentation just because just somewhere but if you all want to talk about you know implementation also from here we can go to our demo and I'm actually realizing that we didn't upload any test - yeah so I think that so you can either go to that QR code so feel free we have this it works in Safari it works in all browsers actually working folks you can go to playground out a bridge I owe you will see this play here I'm gonna actually open it up from so I can find it through the mask so real quick I'm not gonna go through everything here in terms of the demo but you can go to this page we have the SDK embedded on the site so there's no plugins there's no nothing that you need to install what you basically get is when you load the page of burn or wallet so up on the top and the purple you'll see that there's a device address and this is in local storage a public/private key pair gets generated I can go to neutralize I can choose my network so I can go through Roxanne drink beat O'Bannon to a bowl which are the test nets and on the left side our categories of all of our method calls so they're broken out into several categories of our account what I can do is at first create an account and you'll see that whenever I like click on new different method calls you'll see that yellow part change and this yellow part is actually at the top the parameter that you would actually input at the developer here in the middle part you have the code that actually you would write and you can execute the code if you wanted to by clicking a lot and at the bottom here you have the console output so if you were to open up your JavaScript console the exact same thing we have a whole event based interface where you can listen for events as they happen and then if you click on state if you do the whole entity state object where at the top it's a summary so what we're doing here now is when you just load the page you get a burner wallet to get a device address I'm on Roxton what I can do here is I think I have committee so I'm going to switch the koban and this is the codex that you would write and the since you can just cut and paste and we have two implementations that are in production and they actually use the playground for testing and to be able to make sure that they're writing things correctly and oftentimes it's just like cut and paste from the code into their specific implementation and so what I'm going to do is I'm going to switch to code and because up here out you can't mean it the resolution I'm on the rock so I can go switch to the code then now I'm on copán I have a device address and what I wanted to do now is I want to create from this devices res a contract based address and so this contract that I generated counterfactually means that I'm creating an account that dress a smart contract will hold my funds but the contract is yet to be deployed and that's what it means by kind of actually creating it we also have integration into ENS so you can type it in a hash or just create a click the random button and it'll create a random cleanest label for you when I click run what you'll see is that the top value instead of just the network and the device if if you have multiple different things in this like top-level dashboard what you have now is an account address so visit Cana dress is that smart contract that's yet to be deployed and what I'm going to do now is I'm going to cut them copy that all right so I'm gonna come back and what I'm gonna do is take this copy that address I'm going to send it to so if this work this transaction were to actually deployed you would actually see that my account balance would increase automatically we have a listener that will in the back that's connected that on our packing servers that connect to watch different account addresses and then you would be able to deploy your account and what deploy your account does is it would send a signed transaction from your front end it would hit our relayer we're actually going to integrate with gas station network now that gas station network is live and it would then deploy the contract on the user's behalf and then get refunded the gas for deployment from the account balance that if metamath if I would be able to send via venema I would send in so if I believe her this seems like a compliment and then once the account has been deployed what I could do is I could go into state channel your wanting a hack on this or that happens big lend us more detail but the ski town implementation is really easy you have a bunch of categories in terms of payments and so our state channel implementation we refer to it as so you can send money into a channel we have this account balance which is this virtual balance which is our off chain balance so that similar to others detail and limitations no gas feed and it's instantaneous and you can send to other recipients without them having an address so we have this notion of anonymous payments as well and we have the examples play around later you have a detective game example and you can look at our github repos that runs all of this so that you can essentially instead of having to start from scratch you know either look at the repo or look at the code examples and yeah we have the notion of threat recovery since this is a contract based wallet you can have it's basically a multi-state so you can have an event recovery object in order to deploy the friend recovery extension so the idea when we're building out this contract based wallet one we wanted to make it like really easy to implement we wanted to make sure that you as a developer have full control of the whole experience from beginning to end because coming from a gaming background that like funnel drop-off how'd it go to a third Play app we thought was kind of detrimental so you as a developer need to own that whole experience but not how'd it be too expensive to deploy a contract we have this notion of contract extensions and so the count friend recovery is what is considered a a contract extension so you'll notice one of the first things that you do is when you're adding your account thread recovery extension is it actually is another contract that is deployed that's attached and that has access to your account base law so other implementations of contract based wallets cost into dollars so when you are pricing this out each at that time was about 300 USD for 1e and there are these other contract based wallops would cost 5 between like five to twenty dollars to deploy a contract we thought that was too much so our basic implementation of our contract based wallet when EEP is at 300 costs about between 20 and 50 cents to deport because it's very simple it's just a mapping of device addresses that have access to the contract and that's what we use in terms of and design to extend or other types of logic library program so when you're when you're doing front recovery you're actually launching a separate contract and you're attaching it to that extended logic to your contract rates wallet essentially and we see a marketplace eventually someday on people being able to other developers being able to your type of a contract extension cord logic so for example if funds come in that are in E or some whitelisted spoken you can have a contract extension that automatically converts it unit swap to like die for example so your users can only make things that are just like USB just to make the user experiences or things like that yeah that is a very high-level overview and I apologize since you're added or what what's going on with my bed that's cuz I wouldn't I would walk you through the whole process it requires buttons to go into the contract in order to deploy and to do this eight channels which I can't show right now so again I party so if recorders wants to go in the contract it's not important that's right so what happens is essentially momentum oh it's working why do you want to just address so okay so yeah the the idea is that when you send funds to that account dress that has yet to be deployed effectively you are like blocking your funds in because there's no contract behind it to be able to withdraw funds out and so what you need to do is once blood hit though we have an index of that watches and can automatically deploy the contract on behalf of the user but that's something that you as a developer we think should be in charge of in terms of the actual flow so there may be use cases where you in your app and your content of your app may want to do that automatically for the user and you can do that or there may be times when you don't want to do that automatically so the SDK is super flexible and so that's why we created this playground for you as a developer to be able to understand because there are different kind of stages pre deployed contract state there's post ploy contracts aim and you get to choose as a developer how you want to silat eight key management hollyhock the sdk from a design perspective tries to be as tries to do its best to beat noncustodial so key management happens locally in the browser there's no storing of private keys on the server we don't touch it at all and you have to developer the having access to the SDK can program things as you wish for it for Daniel and same with their state channel it's bullying not the story yeah I don't know what's happening that mess he's not sending up well if so there's a bunch of there's an example apps that just now can you check blockers and also have to our codes if you're interested in need of mobile for Frank it's a negotiating content to sort of really there's also the future for it's going to be a depth portal that allows for the interface diving drop and also data user data and you can sort of see what teachers are really performing in which features aren't to make better design decisions and then break this hackathon in freedom about me is five dollars in peace essentially the main points are if you create a nice onboarding logo that that's eligible a nice station documentation also audible and then the best app UX peace outside of that though if you do just create a sort of like the example tutorial of a very basic app that's also something you're interested in supporting so feel free to ask questions oh yeah uh sir this is actually just for the universe but I have these fighters right here yeah many questions [Applause]

Automatic transcript — names and jargon may be misspelled.