Sarah Wiley ~ Intro to Mainframe
Ethereum Denver·Wed, Oct 9, 2019, 12:00 AM
Sarah Wiley of Mainframe presents Intro to Mainframe
Transcript
[Music] folks this is Sarah while EVP and of engineering at mainframe thank you this is really exciting to be here so I she said sir Wiley if you have engineering at mainframe and I am excited to show you what we've been working on for the last year we've been building what worked what we call mainframe OS and I'm gonna tell you all about it but first we got to get going cause our time is short so anybody that's interested in following along by the end of this session you'll be all set up you could be all set up to be able to build on some of our bounty challenges later this evening so the step one is to go to our website mainframe comm slash developers and from there click the getting started or get started link and that will take you to our developer documentation site I means you a kind of a combination of live demo slides I've got we have actually a team of engineers here and product people and marketing people here to help you know promote these challenges should promote our platform to help anybody that is interested in learning more about it so most of us are wearing mainframe t-shirts that's identifiable some not so much but that's okay okay so website getting started okay then we kind of need to well I'm assuming most anyone that's following along is going to have the prerequisites of yarn and node so hopefully you've got those and we can kind of skip over having to install that stuff then we are working on a binary installer it'll be ready soon we'll have our kind of public release next week in the meantime we're building from source so jump down right below that yellow strip there's a link to Maine Flint that says mainframe platform also on the left side on the sidebar so mainframe platform will tell us how to get the source and how to get set up so you have to go to our mainframe OS repo on github and there's the commands here if you want a copy paste to clone the repo and then you need to check out our release branch release V zero point two branch so that's got the latest stuff merged just probably five minutes ago so so well [Music] anyone might be working on that we just give a little background about what is mainframe OS so mainframe OS is an integrated development and execution environment for DAPs it is intended to simplify the creation and use of unstoppable privacy driven to centralized applications some of the key you mean the thumbs up like when we're oh wow okay from scratch here okay well super long so once you've checked checked out the repo or checked out that branch then we need to if you're on Windows or UNIX there's a couple dependencies there's some lengths on here that you can follow but I there's a lot of maybe max in the room so the the rest of these kind of apply for that so you need to go to the just the top level and do an NPM install I mentioned you need yarn you'll need yarn later right now we're using NPM there were some problems with some of the dependencies so NPM install NPM run bootstrap and and built those are the long ones so get those things kind of going and we'll talk a little bit more about what what we're doing but that'll get you all the dependencies that a link all of we we kind of have one big mono repo right now with a lot of different packages and so the bootstrapping does the linking that it needs and everything and then obviously builds builds everything so is there maybe it would be helpful to me if you could raise your hand if you are trying to or interested in following these steps so I can just know like to pace it right okay so we've got a few people and I'm happy to it's good built-in time okay properly prepared with the practice it's fine yes okay sorry yes testing are we good yes we're better all right that's all right these things happen yeah okay so back to just a little overview of what this thing is we call it an OS yes it's an app at this point but imagine it like a no acid kind of the environment that you can install your apps into you have some system utilities that manage things like your identity and your wallets and things and then kind of provide access to the DAPs so some of the benefits here we with a single install which will be ready next week bundle all of the required infrastructure we're bundling swarm node and gateways and and any our daemon processes and everything that is required to to run everything all in one one click it's beautiful we've got great designers of mainframe and it has a you know we're very focused on user experience easy onboarding for users and developers the like I said there's the system utilities for managing things like your identity your wallets your contacts there is a set of developer tools which allow you to create depths within our environment and then deploy them update them and share them with other users and the ability to installed apps it kind of talked about some of these things one of the things you know we're very focused user privacy and so the user owns their data and depths can access the data through our SDK functions but at any point the user can or has to grant permissions for that access and and yeah we try to wrap wrap functionality to make it easy to integrate you know between all the different you know services so that your identity can you know have hold your encryption keys which then can store data in a decentralized network and handle peer-to-peer communications all of that was kind of bundled inside the you know infrastructure and then exposed through the SDK layer I was just saying all of this and I should have had this slide up but this is basically you know lots of complicated stuff on the bottom and then your adapt sits on top and can get to that complicated stuff through our simple SDK that's the ID is the idea here okay so we need to go back to ok we need to go back to our setup process so I'm hoping that we've made it through install bootstrap and build and we can start creating environments Adam are you through install this drop builds you raise your hand that you were following along okay Wi-Fi spotty okay that's fine the instructions are here you can you can follow them later okay next we need to create an environment the environment is what our infrastructure uses to know whether you know this is development or protection or whatever so you run this environment command and it will get you set up as a default developer environment run the set of commands which does links binaries and now we can run the run the program so if you've made it this far then to run the OS and to actually launch and see the UI then there's kind of two processes that need to run in parallel so you're gonna need two tabs in your console one to launch the daemon and the other to actually launch the launcher we call it the launcher that's the window okay and now I have slides of all of this because I didn't want to risk so so we can follow along and pretend like we just did all of that so the first time you launch the OS you get you get into our onboarding screens and the first one is to secure your vaults and your vaults is basically your collection of user data right now it's stored locally on your machine all encrypted so you get to pick your password first first off then we need to create an identity and your identity is basically tied to a swarm hash I don't know if that's important we try to make it not important for people to know but that's really what's happening under the hood and we have this concept of discoverable so if you choose in this at this point to make yourself discoverable you're basically allowing certain of your properties your identity properties which right now just includes basically your name and your address to be published in a way that other mainframe OS users can query and find you so we want to be upfront about the fact that some of your information will be out there now out there means other mainframe OS users can find it so you know ok then after you set up your identity we need a wallet and so mainframe OS manages aetherium wallets for you for users and you can create a new one or you can import if you have an existing theory wall at a software wallet or you can connect to a ledger wallet so you can go through any of that here this is the onboarding quickest path through is just create one give it a name you've got your seat phrase you have to show prove that you copied it and know it so make sure that you can secure your own wallet so this again is giving users confidence that they own their data that they control their that their their wallets and all their information okay so now that's it we've gone through onboarding you created a vault and identity and a default wallet and now your setup is complete and this is the the applications view that you'd see now this being a brand new installation there's not much there there will be soon a kind of marketplace or a list of suggested apps and that's a process as people are building more on this then we have a process where they can submit for consideration to be included with those lists of suggested apps so okay anyway now we're gonna go back and actually create add app so this is this is the OS installation setup process onboarding the it's the same process that end-users would go through and developers would go through so developers are users and need all to have all the same things kind of setup and but this is the kind of end-user experience as well yeah you can kind of explore all of the things that we set up during the setup can be changed edited viewed later anyway there's a whole thing about connecting with other users given the network situate right now I think we won't go into that but just know one of the one of the big things that we we have enabled is this ability you know on this peer-to-peer network for confer users to connect with each other to share private information so if you're interested in that digging into that a little bit further you can talk to us after ok creating a DAP so we have extended the create react app tool it's called create mainframe depth and it basically you run it and end up well you clone it you clone the repo and you end up with a basic project that has our integrations and our structure kind of pre built into it so you can go to this repo all of this is in my slides but it's also on the the developer documentation that we were kind of looking at earlier clone the repo and and do install the dependencies builds that that gets you your build folder that should have an index.html file in it and that's kind of entry into your new DAP and and so the basic the basic DAP that's created as a result of this includes the integration to our SDK so it comes pre-installed with our SDK packages and an integration with a UI toolkit that we've published called Morpheus UI and Morpheus UI is basically a collection of react components that we use internally to style our own work but you know we've published it so others can use it to make make kind of native main mainframe taps as well ok now assuming you've gone through and you've got your create mainframe DAP done and you've got a folder and you've got a build folder and you've got the thing typically you would run like a yarn start there and that would serve it up locally and you could run it in the browser well now because we've injected our mainframe SDK dependencies it's not going to run in your browser anymore it has to run within our environment so we have to get it imported into our environment so you go back to vos and under the more tab on the left there's a link at the top it says app development - I can't remember what wording we ended up on that app development tool and and that's where you can manage all of your own depths so we're gonna go through the process there of now adding your DAP the one you just created with create mainframe DAP to mainframe OS so you give it a name give it a version just a little bit of metadata and then point it to the build folder that's what like I said it's structured the way we need it to be able to display it with them us the next screen is interesting it's a set of permissions where that we're going to present to end-users when they install your DAP but it's a collection of things like do you know what data you can access what external URLs are you gonna access are we doing blockchain transactions you know just whatever data and external kind of portals and things that you're gonna access that way we can be out front with the users as they're installing your DAP as they're using your DAP exactly you know what wait what you're trying to do and then we confirm confirm your permissions and save it and then tada now you have a DAP in the OS and this is your your first app you could have any number of jobs there now and then so if you click on one then you get to the details screen and that's where you can launch it now launching adapt from inside mainframe OS means you're in a kind of a sandbox environment it does open a separate window but it's you know mainframe OS kind of controls the window and controls McCall it the trusted you I you know kind of a section at the top of the window that where we can display these permissions and we can display any UI that's triggered by SDK calls so you yeah see the app details click open and this is the view of what your new DEP can look like in the in the address bar at the top you can modify it so right now that's gonna display kind of your static files that were built previously you can modify it so it points to localhost 3000 if you're serving it you want to have kind of faster reaction times but okay another point or about this trusted UI you'll see a couple other things that the content path like as we called it at the top is kind of address bar and then there it tells you which network you on that that does there is a place in the settings where you can change which network you're running on if you want to run on a different test net or something within a limited set of network sites that we support but and then and then at the very right side there's I don't have a picture of it bet that's a drop down that shows which wallet your kind of operating under that kind of gives context for how so as an app is launched it's within the context of you know your kind of current default wallet and that's the wallet that would be used to send funds or to sign transactions or any you know kind of blockchain interactions that happened from there oh and yeah when you when you launch your app it also brings up the kind of standard chromium developer tools so you can debug debug as as usual okay I kind of ran through that really fast I was gonna go slower but I started talking too fast and also I think it's hard to actually do these steps so we have lots of people here who are eager to help and honestly if anybody wants to go through all these steps we can like try to do it we can hotspot whatever we need to do to like help guide anybody through it the point is we have some bounties projects that we're promoting so we're offering $5,000 in prizes and three different categories one is the best user these are all Ford apps built on mainframe OS now as you saw add app can you know your your depth can do a lot of things that and it just kind of lives inside of mainframe OS so you have access to you know the web 3 provider through our SDK you can access any and we have some wrapped blockchain functions in the SDK I guess I should have probably talked a little bit more about our documentation back on the documentation site we do have you know the SDK was worried that that was not gonna load time okay the our SDK functions are identified here a lot of them have to do with contacts identity blockchain those kind of different areas but back to our bounties we are offering in three categories one is your best user experience as you can see we care about user experience we're thinking a lot about we want to enable this functionality for developers but we have the very same time want to make sure that it's accessible to end-users because they kind of go together without when you don't need the other and you know vice-versa so so we care about and user experience we want to see beautiful things being built and we're trying to take some the pain way by us taking care of wallets contacts identity it means like you don't have to worry about that in your adapt like you can just you know trust that your end-users already have you know have already set up all that stuff and you get free access to it so spend your time you know doing the more interesting work in your adapts and and and will will reward you for it so best user experience most impactful to society we're definitely believers in the promise of blockchain and the things that it can unlock for underserved populations and for you know globalization and and just that's why we're all here right so so we want to see adapt that has you know good social impact and then best overall use of our SDK if you dig in and want to really use the functions that we've exposed and the integrations that we offer then that's that's what that one's for all of these all of these projects one of the criteria is you know kind of feasibility or ambition you know we want to see good ideas even if they're not like 100% functional were you know in this space just like the rest of you there's a lot of things that you know are still in progress and so so let's not be limited by those things but you know show us your ambition with your projects for sure I need to back up just a second because I kind of glossed over one of the one of the main things that our platform kind of offers is this notion of unstoppable DAPs and this is something that you know we talk about we hear about but very real things happen in very real places and Wikipedia it gets banned in Turkey and you know that feels shocking you know that in big parts of the world things aren't available and so you know a big part of what we were trying to do is is make things unstoppable and sensible to remove those think or point single points of failure that you know introduce those vulnerabilities so at the end of our process you back up I guess a little but once you have your your DAP running inside our OS the final step is to publish it and by publishing it it distributes it to this peer to peer swarm network that you're a part of by having installed the OS so then you can share those share those doubts with other users no I said the binaries are coming soon and they will in the meantime what you get when you build from source is access to a gateway a swarm gateway it doesn't actually have a full swarm node running locally the swarm gateway has size limitations to what you can actually upload so that's why a little bit glossed over that publish because it's it's harder to do with the setup that we have today and that won't be part of the judging criteria you don't have to get to publish in order to be to qualify for our bounty prizes so that I think is what I what I wanted to talk about but I would I'm excited to hear any questions or like said we've got a lot of people here if I don't know the answers they you know one of them will so anybody that has any questions about what we're doing or what you could do with us we are way way open to collaboration and contributions to our core projects we really want to build out the DAP offerings so there's you know tons of room for working together and all of our stuff is open-source so we're yeah happy to happy to help anybody kind of get going and like I said this has been what we've been totally focused on for the last year and this represents kind of the first real public offering that that it's had so it's time to exercise it and help us help us wrap it you know get it polished and wrapped up so there's not any questions so that's yeah yeah so our SDK provides a theory a web 3 provider so you can access the web 3 provider through the SDK through the SDK call and then you basically have access to the web 3 library we do have a few fund a few additional functions that are kind of wrapped so you don't necessarily have to go straight to the web 3 library if you're do if you're executing transactions I'm trying to think like what those basic in payments the other contracts so yeah some of those basic kind of functions on the web 3 library are wrapped and you can use our sdk functions to get to them but if you need full full you know more access then you can just use that web 3 provider and call through so that's that's kind of how you know adapt living inside of our ecosystem you know has access so anything that it needs from that web 3 library it does use in Fuhrer it's optional yeah it defaults to inferior you can configure it differently and yeah I kind of mentioned the ability to switch test networks and everything that's under these settings but yeah the defaults to the inferior kind of connection there it's built on aetherium yeah not its own blockchain so where we are trying to bring together technologies developed by great projects out there into kind of a cohesive installation bundle that makes them a lot easier to develop on and then possible like a lot easier for users you know it's one thing when you're a developer to say ok I'll go through the pain of installing these you know and sawing all the infrastructure that I need but like you have to think about what your users are going to have access to right and so by us bundling these services under the hood that means you as a developer can trust that your end-users have all the infrastructure already in place that they need did I answer your question kind of yeah questions ok well thank you very much and like I said we'll be here all weekend you
Automatic transcript — names and jargon may be misspelled.