# Marmot y Goodness and Ethereum - RJ Catalano and Zach Ramsey

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

## 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/2/marmot-y-goodness-and-ethereum

RJ Catalano and Zach Ramsey of Eris Industries will showcase how Eris tooling can help you in your ethereum development via chain management solutions, IPFS integration, and the Eris package manager.

Speaker(s): RJ Catalano, Zach Ramsey
Skill level: Advanced
Track: Developer Infrastructure
Keywords: solidity, eris, package, contracts, tooling, developers, wizard, permission, pos, directory, key, IPFS, evm, testnet, mainnet, consensus, reuse, economics, gas, query, storage, swarm, dependency

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 2 was held in Shanghai, China on Sep 19 - 21, 2016.
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

[Music] okay so hi guys I'm RJ um for those of you who have not had to endure my Chatty Cathy pneus and had the misfortune of that a little bit about me I helped develop solidity and work on the etherion package manager and right now i'm going to go hand it over to zack my colleague right so our Jay and I are on the platform team a terrace and today we're going to talk to you about chain orchestration tooling which is what I focus on and it's a smart contract package management which is what RJ focus is on on next slide please okay so what is eros eros is tooling for developers we offer a chain maker and this is a it's got an interactive wizard and it helps you set up your chain essentially for different accounts and the account types are an abstraction of our permission experimenting scheme comes out of air is DB which is our blockchain client that endermen proof of stake can everyone hear me cool and then we have the package manager and it's all wrapped up in a command-line tool that's heavily daugher rised next slide please to two things don't work all right so this is what it looks like so at errors were providing what you see in green and so through docker we can control all these different requirements for a blockchain application files for example we have an IP FS integration keys we outsource that transaction a consensus engine that's tender mint and etc next slide okay so here's the demo the internet gods were not so nice so basically the way that you would run eros and certain errors chain you run errors chains make that will generate a key or several there's a whole slew of flags to do that and then you start the chain posit the directory where all these files were generated and then you grab the address that you need or key and you can see there that you've got your keys service running so the keys Damon is in its own daughter container which makes it nice and modular and then the chain which I've named DEFCON 2 is also running and then the third command basically that you would run would be eras packages do you give it the chain name you give it the address that would have a contract deploy permission on that chain and you're off to the races so so that command eras packages do would be run from a directory that will have um you all your smart contracts and then the EPM yamo file which rj will be talking about eventually next slide no forward let's go forward one more yeah great okay so here here's just to show you a little bit about how we think services and how a blockchain application platform should look like so I stopped keys which was started earlier by the chain maker I've started at PFS and I've started the compiler service and when I run errands LS you can see that Keys is not running it's got a Dodge compilers and I PFS those are running and the chain is also still running so with a PFS running we can do something simple like arrows files put some random file and that will spit you out the hash which you can then get up with arrows files get and give it an output rename your file or share it with your colleagues next slide right so I'm on a road map and this is where docker really shines is uh being able to modularize the client type and also the consensus type so like I mentioned eras TB uses tenormin under the hood as a proof of stake consensus algorithm but there's been a lot of talk here and some interest by the various developers of getting gas / TMS P SOT MSP is the tournament socket protocol that can communicate with any arbitrary client and so this so you know would be interesting and I would like to see as many different clients blockchain clients oh I forgot to mention eras DB has a full reimplement a shin of the evm so all of your solidity code that you've written and can deploy on the etherium test net or main that will work on an eris DB no go back uh what was my last point here yeah basically so I envisioned and we're working towards this to be able to choose any client type B it gasps CPP parody and choose any consensus type and mix and match and so you could start 5 10 chains of any combination and and do your benchmarks with that and to see what works best for your application and I want to make one final point here uh yes we make permission chains we're not we're not necessarily in the private chain space and there's a crucial distinction there that the media hasn't noticed and so yeah we hope that you can try out our tool and up next we'll talk hey guys can I get the next slide please alright so here I'm going to be presenting the eris package manager and I would like to go ahead and frame it as the ease of NPM the simple coordination of Chef all running through solidity now this runs through the simple workflow right here there is a disclaimer though in it and installer on the roadmap they're not yet implemented but is simply just this you just go ahead and is your project install your dependencies and deploy and run your code on your running chain next slide please why do we need another package manager why do we need to go ahead and have this when we have so many others to go ahead and handle ourselves well there are specific problems inherent in utilizing block chains and smart contracts there's the problem of single versus multiple parties what do we mean by this in the top right right here you have the old traditional model this was one person executing code in a file system that one computer and only that computer controlled as nickel I'm asheghi in from dapple explained in his talk yesterday we are in a completely new paradigm where about a code is not meant to be run in an isolated setting but rather collaboratively acted upon as can be seen and displayed by the many smiling faces over here this calls for a specific design to handle this new paradigm secondly a terrace a we don't believe in a one chain to rule them all design and believe that the world will inherently cater to a multi-chain mindset even for those that do believe in a maximalist one chain to rule them all world can agree that there is a high amount of utility and separated test networks for chains this calls for package management that can coordinate and maintain smart contracts over multiple chains and distributed ledgers thirdly verification simple enough we want to make sure that what we had exists on the chain and works as expected and expect that we're going to be working with them and upside forth finally we have to keep in mind contract reuse as we now are acting in an environment where economics is actually a factor in your code and calls for using the least amount of resources AKA gasps as necessary next slide please moving to where EPM chef like qualities shine it's a little thing right here the EPM BPM llamo file is on the right and on my left is a solidity smart contract that I thought would be good for this example you can see right here that we have numerous different jobs running we can go ahead and set an initial value that we want to go ahead and pass in you go ahead and can create a deploy method call the contract GS factory that's soul and name an instance of it and then go ahead and call that instance further on then you can go ahead and continue to call the contract function for create at that deploy GS contract and for those who have been in the UNIX system that should be very familiar you have a little dollar sign to go ahead and call back what you already set and you have to set storage which will go ahead and call the set function and input the data from the set storage base made at the top so passing in the number five and you have a query contract which now for now forces the the chain to not be altered and next slide please alright and for finally further on our road map we are going to be looking to go ahead and integrate I PFS and swarm because the kick-ass that's enough said we are also going ahead with a lifecycle management contract and what that is that that is a contract that functions as a single point of communication to deploy update link all your contracts the best way to go ahead and frame this for those of you who are familiar with NPM would be it's like the index jsf aisle it is the entry point for all of your projects thirdly chain runs we are going to be going ahead and with that llamo file you could go ahead and set out set jobs that go ahead and define how you think your project should run and then you could chain them all throughout the dependency tree to all move up through and interact and fourthly of course dependency management and with that the next slide I'm going to let Zach finish us off great so if you want to get started on any platform it's a quick out of the box so Bruin choko work out of the box we just choko got approved last week and app get if you want to run it on Linux just check out our documentation and finally join our slack it's open and there's lots of users in there and they can help you get started thank you thanks our Jane Zach [Music]
