Unitimes, Chainlink and Web3 Labs Keynotes (Combined Recording)
EDCON 2020 · August 2020 · 44:56
Three EDCON 2020 keynotes share this recording: Jacky Chan discusses community-led innovation and open source at 0:08; Adelyn Zhou explains oracle networks, data quality and DeFi at 15:00; and Conor Svensson demonstrates Web3j and Epirus development tooling at 30:00. Zhou’s session also appears as a standalone clip.
Speakers
Topics
From EDCON 2020, hosted by EDCON.
Transcript
[Music] hello everyone welcome to edcon 2020 and here is jackie from unit times and today i'm gonna give you a presentation about promote technological innovation from a community so uh in the past 20 years the internet has they realized the connection between people brought the information silos and also produced the explosive groove of information actually we've witnessed the development of the internet from pc internet to the mobile internet
which runs through the content evolution from products to search engines and then to social network and to now the vertical application diversion we have also witnessed the birth of the giant at every stage of the development of the internet um despite the monopoly group of the giants they're recording the internet traffic into larger information sellers actually on the other hand in the past 10 years the grant has also promoted open source culture with their own financial and technical power so uh in generally the development of
technology and communities has created the prosperity of many newly and innovative technologies such as cloud computing a big data and autopilot so this question that we want to ask why is the giant so king on open source and they even put open source at an incredibly important high i think because with the development of cutting-edge technology the interactions of technology logic and user experience has become more and more
complicated actually open source to a huge developer community will allow more people to a lot more people from different industries and different backgrounds to contact and identify vulnerabilities in code and even products from different angles thereby reducing the trial and error costs and increasing innovation but there are still some problems with this model uh for example one of the most significant drawbacks of this model is a drying effect the drying effect means that it may consume
the importance of small teams and individual developers thus decreasing the enthusiasm of a considerable number of and technological participants and at the same time making many valuable but not high-tech ideas to be ignored well essentially the dress open source behavior mainly aims to ultimately feedback their own developments so there will still be many restrictions on specific open source implementation strategies well the birth of the blockchain technology
uh has made decentralization open source and community deeply rooted into the mind of the people especially developers actually uh there's something enlighten us is the the success of ethereum is not only the success of ethereum itself it is not only the success of blockchain technology too but also it is a success of the idea of communitization and decentralization of innovative technologies ethereum shows that we have seen the we have seen that the innovation and uh cohesion of a huge technical
community performed by most individual developers and small teams is not inferior to those high-tech clubs formed by giants actually so it is foreseeable that in the near future the concept of uh about communitization and decentralization become more and more common and they even will become the mainstream or the main trend leading the development of technology so what can we do to face the trend of communications communitizations uh first of all we should improve
infrastructure uh actually which means we should provide complete platform services for the majority of technology companies teams individual developers um actually in the past five years there's the world the very popular pas which means this is used to refer to the business model of cloud computing platform uh actually in the next five years uh i think pas can not only be used to refer to the cloud computing platform but also to use to the
but also to be used to refer to the business model represented by community platform and so considering it's next to this day um the i think to building a community platform will be is not that easier or it is even much more complicated than building a cloud computing platform because a for a community platform is prosperity depends on the platform ecosystem which means they depends on the prosperity of the community prosperity of the community while the
prosperity of the community depends on the community ecosystem it's too complicated so building a community platform will bring unprecedented strategies to enterprises and put forward higher requirements for enterprise products and operations well the second things we should do is to keep open-minded actually we should be more open-minded the era of internet the no apply is not over yet but it is about to pass so in the future as a community platform we should push community integration
step out of its own platform limitations and realize cross-platform community and interaction with the outside world well we foresee that in the future our technology uh enterprises will continue to decentralize or open source a large number of non-core and more core technologies to the community organically guide our community to develop and [Music] derive the natural results to feedback themselves also uh i think small teams and individual developers can be able to
build specialized communities based on their own crazy or innovative ideas a to develop a personalized community ecosystem so on the whole in the future the giants will still control the top while the small teams and individual developers will keep cultivating in the sinking market and those two cooperate with each other will push the development of the technology and also the technical innovations well so uh what have what unit times has done in the past three years
uh in the past three years unit times has been focusing on the deep cultivation and development of the blockchain community in the next three years unit times will focus on providing community services for enterprises teams and individual developers in innovative technology fields including blockchain cloud computing internet of things and artificial intelligence and so on in the just concluded group from 2020 hosted by cncf and unit times is the units participated as the compute community partner for the first time
and in the future will continue to expand cooperation with open source projects organizations and enterprises at home and abroad and limitingly promote the construction and development of open source culture and provide developers with the best community infrastructure so this is the end but before that i still want to say one more word i just want to say the future is coming it is not in somewhere but in our hands so uh in this and happy ending so let's let us toast to ethereum to community
and to to technology to whatever and to our future so that's all thank you [Applause] [Music] [Applause]
so [Music] [Applause] [Music] sorry [Music] wow
[Music] wow [Music] my
[Music] [Applause] [Music] [Applause] [Music] [Applause]
[Music] [Applause] [Music] [Applause]
one [Music] [Applause] [Music] hello everyone edcon i'm alan joe i'm super excited to be here today with you all to share with you how smart contract oracles are unlocking the value of the d5 revolution so first we're all in this industry
because we're excited about how the blockchain will revolutionize supply chains insurance finance and countless other services however there's a fundamental challenge for blockchains to fully fulfill this vision the blockchain is an isolated database and it's separate and unaware of what is happening in the real world the world that you and i live in the blockchain cannot communicate directly with the real off-chain world and this is what we call the oracle problem blockchains gain the security from a distributed network of independent miners or node operators and the blockchain's decentralized
nature though prevent it from directly accessing off-chain information real-world information such as financial market data from bloomberg or the new york stock exchange or vent data from iot devices or gps locations cannot be fed into the blockchain similarly decisions made by smart contracts on the blockchain cannot be communicated off-chain to trigger payments and other actions what we're missing is a communication layer between the on-chain and off-chain world because of this missing on-chain off-chain bridge the majority of historical smart
contract use has centered around tokenization this is because issuing and tracking changes in token ownership is contained to on-chain movements for example if you gave me one bitcoin all that information of you handing that bitcoin to me is tracked on the bitcoin blockchain however the data around token transfer is all kept on chain yet tokenization is only one really small percent of smart contracts for what their possibilities can be cut yet the true power smart contracts is when we integrate them into existing
legacy systems and infrastructure it's when we connect these contracts to the real world that we build universally connected smart contracts that's when we really really see the power of smart contracts to change the world we're all witnessing the recent meteoric rise in decentralized finance otherwise known as defy in just the last few months we've seen the value locked in d5 soared to almost 4 billion dollars unlike traditional you know tokenization defy applications need to connect to off-chain data they need to understand the price of an
asset from multiple data sources including both on-chain ex dexes and off-chain centralized exchanges we at chain link are working with many of the top d5 projects including synthetics ave nexus mutual and many others to provide them with this price data for example ave a popular borrowing and lending platform needs to know the price of eth to usd to calculate the collateralization rates on their loans that eath to usd rate is off chain in our previous tokenized environments you only needed one part of the contract
the token generation contract all that information to attract token movement is on chain there was no need for external data but now with d5 products and all the other blockchain use cases that we all want to see realized your smart contract has a new part an option part this option part encompasses external data enterprise systems traditional payments methods and so much more in order to provide the same trustless securities that will get guaranteed by the blockchain which is why you want a smart contract to begin with
you need to have end-to-end reliability within your entire smart contract system what we do at chain link is provide the secure and reliable mechanism to bring data on chain as well as off-chain this requires a number of new approaches through something called an oracle we focus on creating a decentralized oracle system that validates inputs provides access to payment outputs and connects to various existing infrastructure and systems we enable smart contracts regardless of what chain they're on to get all the inputs and outputs they need so let's talk about how we approach this
in creating secure oracles for web3 first we do this through decentralization we have countless independent civil resistant nodes in our oracle network similar to the blockchain decentralization is at the core next these nodes provide security through various cryptographic systems in addition to having the top industry node operators we also have indus enterprise node operators we recently welcomed deutsche telekom one of the world's largest telecommunications providers as a node operator to the chain link ecosystem high quality data is another key component
as the saying goes garbage in garbage out this our oracle system focuses on connecting smart contracts with high quality credential data we also provide cryptoeconomic security guarantees based on staking to ensure that node operators behave honestly and reliably then we couple all of this with defense and debt practices we layer on trusted execution environments zero knowledge proofs and other secure approaches to ensure that the oracle system is secure and finally all this is supported by a large open source community of trusted developers node operators academic researchers
and security auditors we are proudly built on ethereum and have been working with the top ethereum d5 applications ethereum is where we have the largest variety of data products available today we also make chain link oracles available across all types of chains we do this because by supporting more chains we grow the overall demand for off chain data and when you have more demand for data that becomes a greater market opportunity for data providers this incentivizes data providers to provide more data into the blockchain ecosystem overall and this benefits everybody it's a win-win situation
because now developers and smart contract creators can have access to more high quality data theoretical problem is how to bring data into a blockchain right we talked about that however just as decentralization is important to the blockchain decentralization is also critical to the oracle mechanism that's why it was the number one point that i mentioned earlier in this example you see here a centralized oracle becomes one node and is a single point of failure even if your smart contract is built on a decentralized blockchain using just a single oracle centralizes
your entire smart contract it puts your entire smart contract at risk your smart contract is only as secure as its weakest link and if it's a centralized oracle then that becomes the weakest link so just as your blockchain that your smart contract is built on is decentralized your oracle system needs to be as well we address the decentralization challenge by having fully independent sybil resistant nodes we focus significantly on the quality of the node operators and we also make no networks of no fewer than seven nodes our typical networks have many more nodes some as
many as 30 or more as a user you also have the ability to see the quality of these node operators which make that information extremely transparent and all the data that's generated is open invisible on chain it's something that anyone can analyze so we're very transparent about that some of our awesome community members also created the website called reputation.link and it features a tons of great charts and graphs that allow you to review node performance history you can compare them against a variety of metrics such as transactions numbers completed response times and more another super critical part about
oracle's is data quality as mentioned garbage in garbage out even if you have the most centralized oracle system with the best security guarantees if the data that you're feeding into the system is junk then you will get garbage coming out as well so this is a serious problem that people need to understand and it's one that creates a significant risk for defy applications if the data that you're using is not right and not good then it's triggering the wrong contracts and triggering things incorrectly so credential data is a must like absolute must for any contract of value
chain link was built from day one to access this high quality credential data and we've made that ability to access credential paywalls into our original architecture many of the other oracle systems out there do not have this ability to access premium data instead they rely on free low quality data pulled through complementary free apis but this isn't doesn't work it's as if you know you're trying to watch a great movie but instead you're watching a pirated version that someone filmed on a camcorder in a dark movie theater with heads bopping around right that's not the way to watch
a good movie and that's not good quality similarly when you have good quiet quality data you need that into your oracle system um and so in our price reference contracts we only use premium data sources we don't perform any single exchange nor any free open apis we work with professional experienced data providers we also provide a lot of customizable customizability to their user here you can see a node job id that defines a specific work that a node will be providing as well as the actions it's taking to assure the quality of the data this level of definition is important because as your contract increases in
value which you hope it does you will need to prove this to users users want to understand how you're triggering their contract other thing oracles need to do to maintain their security and reliability is through the use of service agreements we use on-chain agreements that define all parameters under which a node will be delivering data to it as more data and usage flows through the chain-link system you'll also gain additional information about the reliability and performance of nodes in the system of a web trust where node operators have a history of performance you can start understanding how trustworthy a node operate is by its past history
and finally crypto economic security from staking so crypto economic guarantees are deposits that the nodes will perform as promised link tokens are used to guarantee that the data is properly delivered and if that data is not delivered under the right conditions that are set in initial contract then the operators will lose their stake this is very clear motivation for them to maintain the security of that chain link node finally chain link is incredibly customizable we've discussed how you can decentralize the nodes you can also decentralize at the data source level you can decide on the number the type and the sources of data that you want to pull from
all that is up to you and with that this is how chain link is able to power the growth to defy we create that bridge for that off chain data from exchanges and dexes to bring that on chain into your favorite d5 dap and most apps find it easier to use a pre-built oracle system like chain link rather than build it from scratch as we mentioned there are so many components around security reliability and research that goes into thinking about how to create a solid secure oracle system and by just using the
plug-and-play system of chain link we greatly reduce the amount of time it takes for a d5 developer to take adapt to market and by doing so we allow them to build faster and build great products for end users so if you're interested you can check out some of the feeds live if you go to feeds.chain.link there's tons of different price reference contracts that are already out there being used live in production by some of your favorite d5 dapps d5 is just the beginning we're super excited to see where this industry goes and we can't wait to see what else we can create with connected smart
contracts thank you [Music] wow hi everyone connor svensson here founder of web3 labs and author of web3j i'm excited today to be giving my presentation all about going from zero to live with wet three j
and etheris so the fundamental problem that we're trying to address at web3 labs is that blockchain development is difficult it's not easy for people to get started with the technology and even when they do to actually get to the point of having something live on the public network is hard i like to think of it like a funnel really like they use a lot in marketing where at the very top you have the initial decisions that people make and then as you go further down the funnel you get to the end goal which in our case is deploy something on a live network but for users it's there's this huge learning curve that they need to overcome and in the same way that in sales and marketing you know
use potential customers are engaged and then at each point um ultimately they're trying to get them over the line which is to buy a product or a service it's a similar thing with blockchain and trying to actually get their app live on the network and you know all of the learnings that go with that and so the stages i think of with this anyway are at the very beginning you've got to select a blockchain but then you've got to you know connect or run a node figure out the wallet funding the key management side of things actually develop the smart contract test and debug it integrate it with your app and then finally deploy it's a lot of steps and at every single one of those stages you can see drop-off where users don't actually you know go any further which is a real problem
for adoption of any technology and which is what i'm here to talk some more about okay so let's talk about some of these stages you know individually so you know when it comes to selecting a blockchain we're all here at edcon so i think we know what blockchain we're looking to select there so you know that that's a done deal so to speak there's a powerful community here and i think that's about one of the very compelling reasons that got me first into ethereum you know all those years ago then when you've actually wanted to develop your smart contract um you know you you've got some great tools there such as open zeppelin and a number of other libraries that build on top of that and then you have the actual developer integration library which i'm going to be talking about web3j but there's obviously lots of others out
there as well and those enable you to actually integrate with your application but then you've got these other pieces the actual node part of it the key management and how you actually go about running the application and typically when people want to address these parts they start to end up with quite fragmented solutions because you've got some great solutions out there for these individual components but you don't have anything that really ties it all together nicely and that's what we address with epris so before we talk about epris i'm going to talk some more about web3j and all of the work we've been doing recently because the library's come along a lot in the last four years it started off life as being a straight integration library for ethereum so
you'd have your java or android application and then you'd have web3j which takes care of the the json rpc calls with the actual ethereum clients but also the the smart contract piece as well so the actual library itself it was first created in 2016 um and as i said it supports all these different jvm languages so that is primarily java and android but also kotlin scala closure and so on you can do things like create wallets um you know and actually transact with the blockchain it also takes advantage of the type safe nature of java to provide type safe integration with smart contracts with the evm native types and it's got a really good build tool
integration with maven and gradle which are the dominant tools used on these platforms the actual library itself it's had over 120 contributors over half a million downloads of the core artifacts if you add up everything that's over three and a half million and it's got coming up to 3 000 github stars we've got a full-time team on it and of course this wouldn't be possible if it weren't for the support we've had from the ethereum foundation the ethereum community funded bitcoin so thank you very much for everything that you've helped us with over the years so if we talk about the individual things though that web3j does now um you know it's a lot more than just an integration library we now have a solidity compiler built into it so if you're using web3j in your project and
you're using our build tools there then you don't have to install solidity on your actual build machine web3j does that for you with the solidity gradle plugin that we've written so what this does is it looks at all of the smart contracts in your content in your in your project uh looks at what solidity version they're actually using and then takes the most recent version of solidity that's appropriate to compile all of your smart contracts and downloads it and and runs it at build time for you so regardless of whether you're using windows linux or mac it just works out the box and of course the output here is your binary and api fast this then goes as the input into the actual build plugin for web3j which then creates these
java based smart contract wrappers for your smart contracts taking full advantage of the jvm's type safety so this means where we've got say a hello world contract that we've just put on the right here you can you know deploy it in java code or android copying whatever else put in what you want to say there and you can actually send that and that transacts with the live network one of the pieces though that we're really happy with that builds on top more of all of this great functionality is the testing as well so we we make it really easy to actually test your smart contracts against multiple blockchain clients which we think is a really important thing when especially when you look at the amount of value that can be locked up in smart contracts and also that we want to ensure that enterprise
customers well catered for here and so we achieved this through our web 3j units and web3j evm projects which come together and what we have is a simple annotation you add to your unit test which basically says evm test and what that gives you is an in-memory production-grade evm the production-grade evm is the hyperledger baysu evm but it runs in memory against your unit tests so what you can do is you can have a unit test and say add in this evm test annotation and then we can actually deploy the smart contract and then we can verify that the greeting we get back from this hello world example is what we expect it to be and so this is great because it enables you to actually do all of this testing
in memory rather than have to you know go go out to an external system or anything like that you may see here that there is actually a typo there's an exclamation mark missing i wanted to include this so that i could illustrate the next point which is that you know if we do have a test that fails the web 3j evm will actually pick up where in your solidity file it fails so this makes it really really powerful on the with regards to unit testing as well if you're using web3j because you can really you know test your smart contracts properly from within the jvm the other thing you can do is you can change the actual nodes that you want to run against so maybe you want to you don't use the in-memory evm you want to use guess so you just type no type of get and what that does
is it spins up a dockerized death node for you to run your test against maybe you don't want to use geth maybe you want to use something else how about you want to use vmware's concord so here we have a docker compose file which spins up a concord network and this will run your test against it really is that simple and this again is um you know some of the powerful orchestration we have happening behind the scenes so i'm taking advantage of great libraries so that already exists on the jvm like test containers to help with the docker integration the other thing i'm really happy to be talking about is our latest project which is web3j open api so this takes a solidity contract and will actually generate a jvm based open api service for working with your smart contract so you don't need to write any
code at all beyond the smart contract so you basically pass that to the the open api generator and this will spin up a restful end point for you which you can do your contract deployments you can actually transact with the contract and everything else but again you don't actually have to write the code there so it's kind of it's all ready to go which you know we think is very powerful especially when it comes to you know common use cases such as creating an api to work with a smart contract which we see again and again i'd love to talk more about this but you know unfortunately we don't have too much time today and uh which which takes us on to the next part which is you know if we look at the funnel we're talking that the missing links
here though with the whole deployments key management and wallet funding and then actually you know connecting to a node and this is where ekris comes in and we really feel that this is a very important link in the chain to simplify the experience for users of you know ethereum on the jvm platform simplicity is at the heart of everest we've made it as simple as possible to do everything that we believe users need to do so to start with the installation it's a single line there so just use the curl and then specify this this endpoint pipe it through to shell and that will install the cli locally on your machine if you're using windows it is slightly different but if you go ahead to our documentation page you can see it there then if you want to create
a project you just type across new and then say do i want a java project do i want an open api based project or do i actually want to create an erc triple seven token so again it it it spins up all of the foundations they're using all of the build tooling uh in order to ensure that you've got a great foundation for actually developing your your jvm based project we're really thinking in terms of you know this being production grade in terms of how it's set up we're not talking about you know just simple projects it's like just rock solid stuff so then if you have some smart contracts that you've already written and maybe you want to bring them in you can just use the epis import command so you can specify i want to create a open api project based on these these
contracts or maybe i want to actually create a java project using it if you're using the java one you can also get it to generate unit tests for you as well which makes it really simple to actually then use the embedded evm to actually test your contracts properly too the final piece of the puzzle is how you actually run it and again with eporus here you can basically do ecrus run with your project and then specify what network you want it to run against and it just works um i have to there is one caveat here and of course that's the mainnet isn't quite ready yet but we are live now on wrinkly and roxton and also too if you want to build a docker image and to run the docker image instead you just type everest docker run
and so really those these commands the install and then the create project and then the run it's it ever takes care of all of this for you and this again is why i'm so excited to be talking about it today of course how we actually achieve this the the running is an important consideration you do need to have an account with eris to achieve this um and that's so that we can do a few additional things so we can you know when you actually run the project if you don't have a wallet then we create the wallet and then we also fund that wallet for you and we fund that wallet on an ongoing basis as well as you transact with the network so you so you don't have to think about your transaction fees we also provide the network connectivity there as well behind the scenes it's going out to one
of the well-known providers there and two we provide the gas pricing infrastructure as well so that you won't have to think about that so you can focus on just actually developing the application the efforts portal itself gives you a bit of information about everything that you've been doing so the contracts you've deployed the wallets you've been using the actual json rpc logs again very valuable information because we believe that most people actually want to you know remember what they've actually done on the network it's really easy to lose track of this stuff and then that's also supported by our explorer as well which is a block explorer but it also contains the contract metadata for everything that you've uploaded so you can actually see details of you know the specific information in the
contracts um and use it like any other block explorer of course though we don't want to you know have a walled garden here where people can't actually make use of it if they don't want to sign up for an account so you know you you install the efra cli you create a project and then you can use your standard you know gradle or java runners to actually run the project or you can actually use docker as well to do it you obviously have to explicitly specify the end point you want to connect to the keys you want to use um whereas if you're using you know the efforts infrastructure that that's all configured via the portal but again the key thing here is that you know we don't want to restrict anyone here so you can get get the most out of all of this but if
you decide you want to do it you know without the uh the actual efforts portal that's absolutely fine and we want to you know support as many people as possible so there you have it we believe that we have really distilled down the actual developer funnel here for you know when it comes to onboarding once someone you know makes the logical choice of working with ethereum they no longer have all of these considerations they simply need to install a cli create the actual application and then run it and it's as simple as that we take care of all the other stuff behind the scenes but then the actual projects that are being created are very high quality and as i say we're really thinking about you know production grade stuff here we're not thinking about casual developers we're thinking about you know teams who want to develop
robust apps on the jvm and so you know we believe this is really compelling so i encourage as many of you as possible to actually give it a go so there again is the installation instructions um if you want to read a bit more about it head to web3labs.com forward slash efforts and you can there's links there to the documentation as well i'd love to hear from as many of you as possible too so if you do gonna get get working with it and when i want to have a chat um you can reach me via email connor web3labs.com or via twitter at conor s10 [Music] [Applause] [Music] [Applause]
[Music] [Applause] [Music] one [Music] [Applause] you