J2 AG 8 E G Galano + Nicola Cocchiaro developing with Infura + Q&A 1
Ethereum Paris·Tue, Oct 9, 2018, 12:00 AM
Transcript
hello everyone Bonjour my name is Nicola and I do systems engineering Adam Fuhrer today I'm going to talk about how developers can interact with the services that impure provides and touch on some topics that hopefully you haven't heard about yet first a brief introduction if you haven't heard about in Fira our mission is to facilitate access to ET reom and the opportunities it provides we've always believed that only through widespread adoption can the potential of aetherium be fully realized and one way that we try to help achieve this goal is by providing infrastructure as a service I mean provided the service over the last two years has put us into in a privileged position to witness the growth of the etherium ecosystem firsthand and that growth has been explosive for both etherium and us we now have more than 15,000 registered developers we serve over seven billion requests per day and transfer roughly 1.6 petabytes of data per month in 2017 alone we have relied transactions that have moved more than 7 million either with 5 million either more related in 2018 so far most of this growth has happened over the second half of 2017 here is a view of the transactions that we have relayed since last June July actually in terms of eater transferred you can see that it's going up all the way to December and that huge spike in December corresponds to the time when cryptic Eid is launched but even when traffic normalizes overtime spikes like this are not infrequent they actually continue to happen as the ecosystem grows and interest go grows this is another view of contract calls corresponding to the eat call RPC method that we have processed this is for just the month of February last month and you can see that the daily number of calls stays more or less constant until there's a big spike and that goes almost to 1 billion requests during a single day and this this happens when interest in some particular dubs surges for example and then kind of holds off for us to effectively be able to support this type of growth and the scale needed for this we have to provide both the reliable infrastructure and useful services on top of that so the most well-known portion of our infrastructure is our groups of hosted ETM client nodes that we span for public networks main networks then rinkeby and koban these are groups of load-balanced nodes that we can scale fairly easily to meet traffic demand and we keep up-to-date and secure we built a number of TLS enabled api's to interact with these nodes as if you would you were interacting with a local node and we built some reliability features for a dish for added value on top of them this is only part of the picture in addition to this we also host a BFS nodes in our TLS enabled public IP FS gateway we're in the process of building additional decentralized storage products that will detail in the near future we built a middleware layer that we called ferrymen which has given us insight on the different characteristics of of different requests that we receive and as let us make some smarter architectural choices today ferrymen takes care of a number of features smart routing we're able to route requests for example by RPC method or other metrics to different parts of our infrastructure we can scale those portions of our infrastructure independently and tune them depending on the needs of traffic at a given time or the requests that are coming in caching is another feature this is also tuned for specific request types and parameters provides provided with request with with smart routing and caching in most cases a request that comes in never has to eat a live node at all in addition to this faraman helps us with logging and analytics and a feature that we call transaction assurance which we'll touch on later why is this useful what are the real use cases where something like this can be abused well for one with the never growing blockchain keeping local nodes in sync has traditionally been a bit challenging some of these challenges still exist even with the stellar work that the client teams are doing these days these challenges include a combination of storage bandwidth and memory usage concerns and as well as availability it's not always easy to keep not always available for applications that require it in other cases I SEOs or other high traffic DAP may have scaling concerns sometimes transients sometimes more permanent there are not easy to resolve with local infrastructure moving all these challenges aside can help you reach a wider audience more easily for example the zero client approach by connecting your application to remote infrastructure specifically in Fura in this case has helped meta masks reach and surpass 1 million installs this challenges can be even bigger on mobile where resource constraints are more significant and using the same approach cipher browser has been able to attain usability for their deaf browser and mobile wallet there's another scenario where this can be of use for example a hybrid approach where you have your application connect immediately to the network by using remote infrastructure until the local node is ready this for example is a direction that the mist team is going towards in their current code base and that status has also been pursuing also using Europe there are some cases in which the scale required that simply needs novel solutions to be developed this was the case for the launch of crypto kiddies and these solutions are often not easy to implement on local infrastructure as the scale needed is just too great in other cases it's simply useful in and of itself to have dependable gateways to decentralized services and this is what you port has found when in the ipfs gateway the impure provides we've decided to support all of these use cases and more because we really believe that taking these considerations these concerns away from developers can help them focus on their own application and their own the usability and sorry disability of their own application without having to think about about these concerns none of this infrastructure would be of any use if you didn't have a good way to interact with it so we built a number of api's for this purpose the first one and possibly the well-known that we offer is the JSON RPC API this currently supports 38 RPC methods and you can use it the well-established libraries and frameworks the same way that you would use your local etherium node this as I said before is accessed through TLS enabled endpoints and one thing that we do not offer over this API is account management for security reasons you we don't want to store your private keys so that you don't have to trust us with them and here's a simple example I hope you're able to see how to use this API for example with coral this uses the each block number methods to retrieve the current block number from from your node in this case from the notes that we provide we are using the the main net endpoint that we have we're providing the API key that you get when you register for our service and you get a JSON response like the one you see here so it's pretty simple in addition to this we've developed a REST API which is compatible with the JSON RPC and offers all the same methods that we have in the JSON RPC API but with a more intuitive rest format by its nature this API allows us to do smarter caching strategies and also has a lower latency at the edge globally independent of geography by using a CDN so here's an example this is the same call that we saw before for the JSON RPC API again using it block number again on the on the 9 net endpoint and we get the same JSON response as before but with the similar call more recently we have other support for WebSockets with three TLS enabled endpoints on maintenance Rob Stan and rinkeby we still consider this these to be in public beta but these endpoints are live and you can already use them they have support for filters as well as the get pub/sub interface which is ideal to subscribe to live events like new blocks logs receipts and and others and receive them as they come in we plan to add support for the parity pub/sub interface in the future but for right now we're we're only supporting the get interface so it's a slightly more complex example this time using web 3gs 1.0 here we create a WebSocket provider actually do this yeah okay the WebSocket provider pointing it to our main net WebSocket endpoint we subscribe to new block headers and then simply log down here block header data as it comes in you can adapt this example pretty easily to subscribe to anything any other event that the get interface supports and I should also mention that all of these examples are going to be on our new documentation section on our website that we're in the process of revamping I mentioned earlier a feature called transaction assurance this is enabled on all our api's and its purpose is to make sure that transactions that go through our infrastructure don't get lost particularly in cases where the etherium network is congested as we've seen recently to this end we store transactions and some associated metadata in our in our systems until we're able to verify that they've been related we use multiple relay nodes which are custom tuned for performance and they have a larger TX pool size and we offer detailed information on these transactions as it relates to this feature on our dashboards you can see the status of our network and n transactions as they come in in Furio / status which looks like this you can see some information here on the the status of my net as well as our infrastructure on the left side and you have a live view of pending and mine transactions as they're coming in on the right side if you select one of these transactions you're taken to a different view that has more details on the right side here and on the left side there's more details relating to transaction assurance so you can see when the transaction was reviewed received by in Fuhrer how many send attempts were necessary before the transaction actually went through you can see when that happened and how long it took to mine the transaction and you'll be able to see even more detail in the future in addition to the API so I just talked about we have two more we've developed a security API that at the moment serves blacklist data maintained by madam asked and the community madam asked uses this to warn users and try to help prevent them from sending their funds to fishers and scammers on phishing sites you may have seen it in action if you use netmask the other one is a market data API that shows pricing data for 61 currency pairs with data retrieved from several exchanges this includes fiat currencies cryptocurrencies and tokens you can find documentation for all of these api's and like I was saying in the documentation section on our website there even fewer io / talks and this is what that page looks like this also gives you access to other support resources like our gear and our ticketing system but the challenge is for the ecosystem to to grow go beyond the ones that we face to scale our infrastructure and provide these services to really drive adoption and mature exceptional tooling has to be available and collaboration among different teams is necessary for some exciting projects to move forward in fact we believe that this type of collaboration is one of the best parts of a Tyrian and we also realized that we can help about with the services we provide but also with the expertise that we have developed over time so here are some examples of where we have been focusing our efforts a few months ago we joined the tearoom Foundation and projects like auger and Akasha in hosting our hood node and assignor node for the rinkeby network we keep this nodes always available and up to date with the latest CAD code because this network is also used to test experimental features or get the init for a bhoot node is a red including yet so if you use get on rinkeby you may have already connected to it 0x was an example of a project that we have collaborated with during their ico to to provide support and ensure smooth sailing the team had done their initial development on their own and using their own infrastructure but the scale there was needed for their ICO to be effective was quickly getting out of hand so we helped and took that concern after shoulders but also helped with some optimizations that they could do on their end on their depth this collaboration continues today in the context of the solidity gas profiler a project that was started at the 8th Denver hackathon to provide insight and optimized gas usage in smart contracts the two teams are working together to develop and support this project and it will be hosted on impure infrastructure in the coming months it will be supported by dedicated nodes that expose a secured subset of the debug API which is a feature that we normally don't offer with a regular offering this type of collaboration that includes both infrastructure and development continues with rather relay a decentralized token exchange that is built on this your X protocol and for which we have we are providing persistent dedicated infrastructure and on-call support from our engineers this type of collaboration called that lets us help developers with real use cases helps us understand what the real problems that developers are facing are and lets us work together with them to find solutions that end up benefiting everybody in the ecosystem this also happened when the when cryptokey is launched the cryptic it is launched really pushed the boundaries of the etherium Network and this affected us directly as the backend for madam asked since madam asked was the default Wallet promoted by crypto kiddies but it forced the the whole theory Mako system to take a good look at the current state of Technology and at what scaling solutions might be needed for the future to ensure that something like this works without without a hitch so for crypto kiddies new news scaling solutions were needed bought for the short term and long term these ranged from improving the way our infrastructure was used but also all the way to improvements that crypto kiddies could do on their own end and this included for example offloading some of their functionality like trading to side chains we we were able to collaborate on this with the crypto key this team itself as well as the meta mask and grid plus team and this was the the only way that we were able to sort of weather the storm in an efficient and smart way and this type of collaboration is really something that we think is very healthy and necessary for this ecosystem and we hope to see more of in the future each gas station is an example of a tool that has gained a lot of traction you may have already used its analytics to either find optimal transaction fees or gain insight on the state of deteriorate or we've been collaborating with the lead developer on it gas station on bug fixing and code refactoring and we're proud to announce that we'll be hosting the official it gas station on our infrastructure soon you can also you will also be able to access the same analytics that if gas station provides through a new gas API turbojet is an one more example of an exciting project it's a project that's working on developing many optimizations both for storage and the general performance of the gate client and then reintegrate these changes into mainline gas and possibly other clients this is very important work and we're happy to be able to collaborate on this by comparing notes from our own research into atrium clients beyond in Fuehrer consensus our parent organization is going to provide additional funding to finance this and similar research because it is very important and other projects like Bitcoin and bounties network will be rewarding efforts from the community to get involved so check them out this is just the beginning 2017 so an explosive growth for a Tyrian but 2018 is going to be the best year yet for the ecosystem many projects are going too much were into into stable products and important innovation at the protocol level is going to propel the ecosystem forward even more we on our side of things have began looking into exciting developments ourselves first of all a work on our back end is is never complete we are now on the third major iteration and we are improving every aspect of our architecture this has already given us the ability to scale even more efficiently than before and has opened the door to building new API and services that before we couldn't even hope to to design and implement we're going to be expanding to new cloud providers and new world regions as further steps to increase the centralization and we've already doubled the team size in the last few months but will continue to hire especially in Europe and Asia as this will help us focus on even more R&D projects that will be very interesting for us to get involved with our expanded focus is going to cover several different areas first of all we are developing new developer centric dashboards that give new insight into smart contracts and will in in this context we will improve user authentication flows for all our API eyes as well as integrate with the well known identity systems like you part here's what a part of our developer dashboard is going to look like you can see on the left side portions where you'll be able to manage your account details as well as your two-factor authentication and there's sort of things but also on the right side you'll be able to manage all your API keys which is a long requested feature that we haven't had live yet these dashboards will give you a personalized view into transactions from a source or destination that you care about which might be tied to one of your projects or just otherwise a source of destination that you have bookmarked on a dashboard you will also be able to see contract calls to smart contracts that you have deployed yourself or that you have decided to follow for whatever reason and you can see an example right here and this is just a sneak peek but there will be a lot more data that you'll be able to see in the future as well in addition to this stay tuned as will show a prototype of a decentralized certificate authority that we've been designing and we'll also be developing additional user tailored decentralized storage products based both on ipfs as well as warm so to stay up-to-date on all these developments and more go to infer the sign up register and it's very easy you'll get an API key do it now so this concludes the first part of our presentation thanks thanks for listening we'll have a Q&A session now where we'll be able to answer your questions and for that let me introduce my colleague eg co-founder of in pura and chief of infrastructure yeah so this is awesome thanks Nicola we unfortunately weren't able to attend Def Con this year which is always a great place to get feedback from developers that are using our infrastructure our api's so we're really excited about this opportunity to come here at a community and developer focused conference to hear from you guys so if anybody has specific questions about what we're doing how you should be using our services or what's what's next for us please so by private infrastructure it's sort of the dedicated infrastructure deployments that we've referred to people that needed dedicated capacity to ensure that their token sale was a well score later that their specific use case was requiring specific features such as the the debug ap is that some people have requested we've been able to do that for them in the past we had also done some stuff with private chains but that was more related to solutions work that we were doing as part of consensus and now there's a specific group within consensus that's working more on that so that we can focus on main that right now hi great work guys I'm interested in the websocket api you guys are developing I'm using the tool there you know Skol it ok so the time when you leave for production what do you think the people production ready ok so so that's been our most requested feature as people want to be able to use web 3js 1.0 and and use this subscription API which your we just call a WebSocket support we've been beta testing it for a couple of months now and working on essentially a reverse proxy that's scalable and able to scale with the capacity of hundreds of thousands of concurrent connections so currently we're in the process of testing that setup and making sure that it's robust and easily scalable and our our goal is not just to go to production with that but potentially also to you open source this so that's something that that other people can use a lot of our current tooling and infrastructure was very specific to our deployment within our cloud provider and we're trying to develop this in a way that it's something that if if you wanted to run this reverse proxy yourself you'll also be able to do but we don't have a specific date yet but we're planning on having a date pretty much when we get back from this it's one of our action items to figure out the the path to production for the web sockets let me just add one thing if you're interested in using it though please try it so that let the lets us know what the pain points are for developers and we can all go to a smoother path to production thank you just wondering how the api is priced two questions are wholly api's price another question is you're working closely with the app developers what's the most interesting project you see coming down the line in 2018 or maybe types of projects if you can't see say specifically what project okay so for yeah so for pricing of the API where we're still free we have not put any sort of monetization plan in place for the API we definitely do have infrastructure costs that will need to be supported by a monetization strategy but right now we we've been able to maintain this infrastructure and allow the ecosystem to grow without putting a bill on on developers that would potentially hinder the growth of ecosystem additionally a lot of our focus with monetization has been more towards providing support rather than specific packages of you can only check your balance ten times a day or something like that it's it just doesn't really make sense so it's more a lot of people have been more interested in I really want to build you know crypto kitty's 2.0 I want to build a decentralized exchange I want to build these things that are pretty complex that require a lot of energy and time and I don't want to do devops I don't want to manage AWS and I don't want to my aetherium clients so so they're saying how can I make it so that I can rely on in fira to manage the etherium infrastructure for me and I can focus on my deaf development so that's where we've been focusing trying to arrive at a fair monetization strategy as for the interesting gaps in the ecosystem definitely so our background is gaming we we work together at Sony and on PlayStation and anything game related is always really interesting so crypto Kitty's was cool just not just for nasod option but like okay people are really interested in the entertainment aspect of this so III can't recall what's what's the name of that Junction game we saw recently dungeon core if anyone's seen it I believe that's the name what looked like pretty cool additionally decentralized exchanges are always really interesting just because of the problems that they have to solve and just in general in this space anything related to fog computing and decentralized computing is really interesting so the AI exact project golem sonim things that are trying to figure out like if say we could take what in fira does and pack it into a docker container and say anybody should be able to do this there's there there's some trust that people put in us for being able to to manage this infrastructure to support your your applications how can we make this trustless and so so that's one of the things that we've looked into is can we use like secure docker container is powered by SGX and all these other things that are still in the early R&D phases and make that possible there on the road so anybody working in in that space is really interesting yeah yeah so that's one thing that we've been looking at there is there's a few friends of ours such as like Amin who used to work at consensus and was doing spank chain he does some really cool work on on payment channels so we're keeping an eye on that we've considered you know kiddies TCR as token curated registries as a potential way to sort of monetize API usage and promote fair usage of API so one specific entity isn't just you know hammering the API is at the expense of the rest of the ecosystem it's something we could explore but it's specific to api's that we also want to be able to support like clients as well and as as the ecosystem changes transitions more to like clients we want to make sure whatever sort of monetization strategy we come up with is going to be compatible about any other questions we're obviously interested in so many different technologies and we want to do so much or one of our challenges has always has been that we've always been a very small team so recently we've been able like I was saying to increase the team size noticeably in the has helped us a lot but we're still hiring so we were trying to hire smartly but we know that adding more people will help us devote resources to different areas so I think they also want me to mention that if you email jobs at Imperial yo you can get in contact with us if you're interested so this is that any other questions all right thank you everyone
Automatic transcript — names and jargon may be misspelled.