 All right. So hi. My name is Arnold Ors. I'm from IBM. I'm part of the open technology group I'm an open source open standard specialist. I've done that all my career, which is about 30 years now and So What I want to talk to you about today is the latest project I've been working on which is hyper ledger fabric so This has been going on for three years now We essentially launched hyper ledger three years ago with the Linux foundation one thing that I do want to clarify to get started is There are a lot of people who say oh we I use hyper ledger and I always say how do you use a consortium? Because hyper ledger is not a software. It's a consortium, right? And so that's the first point I want to make quickly hyper ledger is basically It's it's technically it's called a collaborative project is hosted by the links foundation Which has become over the years into what I call like a meta consortium. It's a consortium of consortiums And so instead of creating consortium from scratch you can instead go to the next foundation and create a collaborative project and They basically have the class consortium and they can do new consortium for you and for some money They manage everything and so it's much faster and much easier to create a consortium that way So when IBM started working seriously into blockchain we started in you know Obviously, we have a lot of people in crypto and research It's and and so they were looking at that for a long time But when we started looking into it from business point of view we realized okay This is the kind of technologies peer-to-peer network. You can't have that as a proprietary solution It has to be open source based and IBM has a long history in open source This is actually my 20th year at IBM and I'm happy to say I've only worked on open source and open standards since then So this is nothing new for IBM in spot of our DNA So in this case we actually approached the collaboration the Linux foundation They were interested in creating a consortium to host development of blockchain technologies and So we created hyperledger. They're actually five different blockchain networks today Hosted by the hyperledger project. Okay, so that's why when I say you know when people say I use hyperledger I'm like well, what do you use because there are typically people mean fabric because it's the most prominent the most popular a blockchain network the Framework that people use but if you want to shorten it because hyperledger fabric is kind of long You can say fabric. Just don't say hyperledger because that's too confusing Okay, I'm not going to get in the details of all of this But as I said, there are different frameworks and some of them are really interesting So tooth was actually contributed by Intel and it has an alternative to proof-of-work called proof of elapsed time where they leveraging secure hardware which they happen to sell SGX but it actually achieves the same result of proof-of-work without consuming any energy But there are other projects and borough for instance is another one which comes from which is an implementation of the ethereum virtual machine So people think that you know hyperledger it competes with ethereum. It's not exactly true and hyperledger indies a specific Framework and a set of libraries. I think there was a presentation this morning from rich So it's dedicated to managing Self-sovereign identity backed by blockchain. It's very interesting So and then there's a bunch of tools as well that kind of builds on those different frameworks So what is fabric and why do you even bother developing fabric in the first place? It's not like blockchain didn't exist. The problem is a lot of the blockchain framework that are out there They were initially at least you know when we started looking into it. They were really designed as public networks and When we're looking at it from an enterprise point of view, which of course is IBM's focus We realized there was a big mismatch between the characteristics that the business networks Typically have traditionally and what the blockchain systems that were offered at the time were providing and so You know to highlight some of the key points that led us to say, okay Well, there's not one that matches the enterprise needs. So we're going to build one For instance, the first thing is business days do not function in public They have relationship and they interact with their peers in a private way. So that's number one they also want high performance because So you are familiar with the Ethereum and Bitcoin you're talking about like, you know an order of seven or ten fifteen transactions per second right with fabric we have over 3000 transaction per second and last week there was actually a guy from Cornell University Who presented some modification to fabric where he multiplied that by seven twenty five thousand transactions per second Okay, and so it's quite different in Ethereum for instance, they have chosen to try to address security by limiting the Programming that you can have in your smart contract by so they have the Ethereum virtual machine that set us Number a specific number of operations you can have we made a different choice where we give people access to you know traditionally traditional Full-purpose Programming languages fabric is written in go. So that's the first language that's available But you can write your smart contracts in Java as well in Node.js And I mean there's essentially a you know the plug a pluggable API so you could possibly support other languages and We have no mining there is no Notion of gas because in the kind of applications we have in businesses Businesses are making money by trading some services on some goods They are not trying to make money out of running the system, right? So in fact a lot of applications in the business case when they are working with Ethereum They turn the gas off. They have to basically I mean in a permission way, right? They use the so because it's it becomes more of an annoyance And so we didn't put that in at all and then maybe the biggest difference of all is the consensus process It's fundamentally different one thing we wanted to have is finality so in Ethereum and Bitcoin for instance, you are forking going on and then the Eventually, you know the network will converge back and forth But that means you really never know whether your transaction even though it has been validated And put into a blog where they will stick on out because it might actually be dropped further down the line And that's why you have to wait several blocks to stop feeling confident that your transaction is not going to be dropped So that's something businesses do not like and also affect performance People typically weigh three up to ten blocks depending on how sensitive you are to this process So we actually broke down the consensus process and that's what I'm going to talk about next but We have yeah, I'll talk more into the detail next so the We started in 2016 with the first version of fabric one zero. There was actually a preversion of that zero five zero six which we already did and But so this was the first major release and we have since then adopted Release cycle where every quarter we have a minor release. We are publishing what's interesting is one of the key aspect of hyper ledger is to enforce certain rules and we're all about open governance It's not enough to be open source Like you know, you have this like github repo and there's a group of beyond of like a company like IBM would you know Push code on the outside, but they keep control hyper ledger is about open governance And IBM is a strong believer in this we have in many other open source project be a main actor into opening up the governance of the project and So you can see obviously when we started this was based on a contribution from IBM All the contributors initially were IBMers because that's what they were But we have actually worked very strongly very hard to open up the The project and you can see that in the latest release, you know, we have almost 300 contributors Lot of them are not from IBM I'm not going to lie to you. There's still a major, you know, weight carried by IBM We probably carry about half of the contribution still known But you know because we have a strong commitment to this and we're building a business behind this but I'm happy to say that, you know, there are many different organizations that are also contributing So the architecture and that's where I'm going to talk a little bit about the consensus process that I was referring to earlier So this is a high-level kind of picture of the architecture First at the top we have membership services and so don't get it don't get fooled That doesn't mean it's a server and it's centralized also This thing is like distributed and you can have several of them for each Organization participating in the network, but this is what controls access because we're in a permission network Then you have on the left side obviously there's a client application. They will use some SDK There are different SDKs available to interact with the network Then what we have which is kind of unique to fabric most of the time You have some node that you talk to and the node interact with the network and does all of the validation Running smart contracts and all that in our case. We have actually divided the node into three different functions two of them actually Implemented in the same process, which is the one on the right side over there and dorsal and commuter and then in the middle You have the ordering service what we've realized is that they were really different parts in the consensus process and the two big ones are There is a part which has to do with ordering the transactions and It's independent of the nature of the transaction is making sure that we all Agree on the order in which the transaction happened because when a peer-to-peer network Transactions flow and come in from a different any part of the network and at some point We need to agree on the order and this is how you by the way avoid the double-spent And then there is another part which has to do with validating the transaction in terms of you know Do I have all the information that they need to make sense of the transactions? Or and is it valid at this point in time in the logic of the application, right? So the the quickly, you know the process flow is the application will submit a proposal to an endorser This is basically saying I would like to submit this transaction the endorser is going to Validate that transaction again testing those aspects that I just mentioned That's where it runs the chain code in our case, which is the current of the chain of the smart contract Once the client has gathered enough endorsement and I'll get to more into the detail of how what that means endorsement It will submit that to the ordering service again. This is not a centralized thing It's a distributed thing, but for the sake of the concept It's there's this ordering service. You can see there are four nodes there They can be as many as you want it actually can use different Algorithm to come to consensus on the order of the transaction that have been gathered It will cast a new block and it will broadcast a new block to the system all the peers that receive the blocks will then go through a validation process to Make sure that the endorsement under which you know the the conditions under which all the transactions have been validated in the first place is Still true and then will commit that new block to the ledger Then there's a notification mechanism to inform everybody. So this is basically the process flow One aspect is that it's final again as I was mentioning we we can catch non-deterministic smart contracts. So because then the endorsement, you know will differ from one to another and Yeah Just leave it at that So membership services I explain this is you know conceptually It's the service to which you're going to go to to get keys to enroll and have access gain access Rights into the network, right? There is an implementing so the the system is designed so that there's a there's an interface You can have multiple different types of implementation There isn't one implementation that's built in that's offered to call Fabric CA for Certificate authority that actually plugs in into many different existing system. That's another aspect of fabric We call it bring your own identity because in an enterprise setting especially Most enterprise already have some identity system if not more The last thing they want to hear is oh if you want to use a blockchain You know a framework you have to create a whole new set of ideas So this system actually allows you to do this with that to integrate with existing systems. I Talked about an endorsement policies Most systems traditionally blockchain systems there's this notion of minor that actually does validation smart contracts that run In reality in the business case There are sometimes regulations even that impose, you know certain actors in the network to validate transactions and Not everybody necessarily need to validate all transactions So what we have actually is a system that allows you to define the policy under which you know Transactions might be validated. So we have a simple Value policy language endorsement policy language, which basically allows you to specify for your channel for your application Who needs to endorse the transaction for the transaction to be considered valid? So you can see there's an end and all career. I don't want to get into the detail I think it's pretty simple and straightforward, but it's enough to allow you to define Different policies that fit your needs and in fact, this is whole-hand-old by a specific Part of the system. That's also pluggable So if you really fancy another policy language that's much richer you can also implement this We have also added a notion of multi-channel which is pretty unique to fabric because when we started we said okay Our business networks they want to work in private So we are going to allow them to have this permission network What we actually quickly realized is that even within a network there were a transaction that they didn't necessarily want everybody to see So multi-channels basically allow you allows you to further segment the network so in practice they're actually different chains and You can define which participants in the network can see you know can access What channel and that allows you to actually segment the network the way you want and You can run your smart contracts or chain code in our case on any different channels every possible combination is available in terms of the roadmap as I said we have this really schedule where every quarter we have a new release and We just released version 1.4 This you know we were actually slightly late because we should have released in December But with the holidays and all we just released it to the beginning of January But it's out and so we're barely just a little bit late The big thing about this is that it's the first long-term support release So until now we were you know if you found a bug you basically were told Yeah, just update to the latest release now. We're actually committed to support or 1.4 That means we actually have switched to 2.0 and so I'm going to give you an idea of what's coming up There is a lot going on in hyperledger fabric and you know quite frankly It's a bit overwhelming if you just want to casually try to understand what's going on We have gone a long way from you know as I said moving from a proprietary development to an open source With an open governance project now the travel and I used to you know It's part of my role in IBM is to help the proper the product group transition from proprietary traditional top-down Development to open source and you know I used to complain that they didn't you know Provide the community enough information about what was going on and now we have a bit of an excess of the other way around Which is there is so much information available So I can't blame them anymore because they have done their work and everything is really open But now there's a huge amount of information So, you know what I wanted to give you and you saw that on the slide before by the way You see all these different features that I keep being added a release after release What I wanted to give you is an idea of okay What are the main axis of development so that you get a better picture of what's going on and based on your interest? You can look into it So in terms of privacy privacy and confidentiality as I said We have already had several steps where we started with just permission network within we added channels We keep going on that way because then there is a notion of private transaction So a lot of people they don't want to even put the data into the blockchain So they want to encrypt the data They just put the hash on the chain and then the question is well What do you do with the actual data? And so what we have done is we've made it available for you as the application developer to do that Automatically and you can declare certain part of your data to be private And what happens is that we will actually communicate the private data To the other peers that you've decided to give access to The the data will be hashed and only the hash will be actually stored on the chain But the the actual blob of data will be also communicated directly peer-to-peer We have also we are going down that way much further We have now introduced there's a technology from IBM called identity mixer We're leveraging zero-knowledge proof type of technologies to allow more control over, you know privacy Interves the consensus process. I said it was pluggable So in the original version of fabric, we actually had two options the ones called solo It's actually not really in the consensus process. There's just a server It's a single node, but it's good for Development purposes and there is Kafka which is used in production, which is fault-tolerant, but it's kind of heavy So there is development to use raft which is another crash fault-tolerant system And then we are moving towards supporting SBFT or PBFT one of those Byzantine fault-tolerant processes We have made a lot of effort into improving service ability Initially in fabric if you wanted to change your chain code You literally have to shut down the whole network update and then restart which obviously doesn't work very well in production So there's all of this becomes much more automatic now. The system is much more resilient and There is a lot of Information that you needed to have out of band that is now available directly from the system that can be pulled from the chain We are also improving the the programming model API So fabric is a very low-level API when it comes to data It's key value pair what the key means what the value means is up to you for fabric is the address bits So this is a bit hardcore for an application developer So what we have done now is started to you know bring a much higher API My higher level API so you can talk about assets and things like this and then there are other Interesting developments. There's one which has to do with being able to support ethereum virtual Machine, so I've talked about hyperledger borough, which was an ethereum virtual machine implementation That's available in hyperledger. We have actually We support putting the borough ethereum virtual machine as chain code and fabric network And we have a web 3 proxy so that you can actually use an ethereum client that talks to the proxy And it's it looks like through the client it looks like it's talking to the ethereum network, but it's actually talking to a fabric network and on the other side It's actually executing the ethereum smart contract possibly written in solidity for instance on on the fabric network And there's a new feature called fab token, which will allow you to Deal with fungible assets in a more efficient way with a combination again of UTXO if you familiar with this model But also zero-knowledge proof for privacy Quickly the way you interact as an application developer with the system There are two main parts that you need to worry about There's a client side at the top there and you interact with the network through an SDK and there are several SDKs available And there's the smart contract, which is your chain code You actually don't have to worry too much about the blockchain unless you want to The API and the the chain code level is just you know putting data and getting data All the blockchain stuff is actually done for you by the net in the framework There are many different tutorials you can start from All of that is available open source. The first thing is bring your first network There's actually everything is dockerized. It's all come docker containers So there is a script they can start from it will pull all the images from the network And it will get started very quickly and it will run all of this into to into your application into your own machine And then there is application you can start using to develop one thing That's important to know is it can be complicated to debug and it's a pain when you get started So for instance, the chain code is run as a separate container That's for that spawned off by the peer itself So there is a process you install your chain code and instantiate it and then the peer forks this it spawns off the Container with which it has a very secure connection Prime is when you want to debug it's not very convenient So there's spatial mode is important to know dev mode where you tell the peer Don't do that and you basically start the peer the container with the chain code yourself You have access to this you can shell into it and then you start your your network And it doesn't spawn off the new container So there are many different API eyes That's one of the goals of fabric was to make it extremely flexible because we don't believe in one solution fit all And so there are different languages available What does IBM do with this very quickly we actually don't have our own version of fabric at all All our developers are working hyperledger on daily basis We contribute all our code to to hyperledger the only thing we do then is to take this and basically Host it on the IBM cloud and with some tools around it monitoring deployment We actually Allow you to develop your application in the IBM cloud And then finally, I just want to give you some pointers and I'll make my slides available online But there are basically two directions you can choose there is hyperledger as a bunch of we we submit We publish a whole bunch of documentations and tutorial, but there's also IBM There's IBM developer website, which is a huge amount of data code patterns and things like this that you can use to get started and The IBM blockchain platform. There's a starter plan, which is free to use so you can get started get a feel of what it's like All right, I will stop at this. Thank you I normally talk two hours on this thing, so I'm sorry if it feels a bit Can you share a few examples how businesses actually use the point? Yes indeed So I didn't want to get too much businessy, but yeah, it's a good question It's like what what kind of applications we actually I'm glad to say we have moved on from just proof of proof of concept We actually have different production systems now And so just to talk about a couple of them the there is one called trade lens It's a platform We have developed with the mask to manage all the paperwork associated with shipping containers around the world And so the idea is that when you ship a container from one place to another There is a huge amount of paperwork that needs to be Taken care of so it will involve different agents throughout the life of the the shipment It starts with like, you know the ship company's of course, but you know, it's the port authorities It's insurers tax tax authorities the transporter itself And so we actually have this platform which allows all these different actors to access the chain and add Information associated with the container it actually we it gives a lot more privacy sorry transparency and The but also it's a lot more secure. There's a lot of fraud in this space because people literally copy They do Xerox of of paperwork, and it's a huge hassle. It's a huge cost There's another one called food trust which we've developed initially with Wal-Mart But now there are other companies like car for are joining where we are tracing Products so we can tell you the provenance of the chicken that you're buying in the store and it helps a lot in dealing with like food contamination Situations where they do this this recall where instead of having to you know Recall huge amount of chickens because there's one farm that got contaminated We know immediately where all the chickens from done farms. Oh Okay Yeah, I was just wondering do you think with the amount of development going to hyper ledger? It might be the leading blockchain software in the future like there seems to be a lot of development It might be the what the leading one well Yeah, so, you know I'm old enough not to believe in in one You know replacing everybody. I've been around the block for too long So I wouldn't dare to say that yeah, of course, everybody's going to just use hyper ledger fabric and that's it But I do think there's huge momentum and there's really not much reason not to use this one by the way because Hyper ledger what's interesting to know is you can participate in every activity related to hyper ledger We did being a member Individuals or companies alike are welcome to participate. So Yeah, it's a short question You used word change sets and you used and you didn't provide a repository So how can I compile it because I don't I don't know if do you use get for your for your work? GitHub yeah, no not github, but get in general Yes, yes change sets and it's set a chance set. Okay that I know it's from jazz Yes, yeah, so so two different so just by the way We do use github although we actually use Garrett and on github. It's just a mirror So if you want to become a contributor you have to use Garrett, but that's a detail So the change set that I think you're referring to had to do with the so It's part of the endorsement when I said, you know We have to validate at the end when the block comes back from the order What happens is that you know, we don't want to rerun the whole chain code because that can be quite expensive so what happens in the first step when the peer actually endorses the transaction it runs in the chain code and It essentially simulates the the you know what the this transaction wants to do Which means that it's actually not going to modify the actual data Instead it actually produce a change set which is a read write set It tells you which variables are changed and from what to what right? And so the last step at the Validation process when after the block has been broadcasted to everybody before it gets committed What then the peers do the commuter part of the peer does is actually go through the transaction and verify that all the Chainsets still match the current state. That's how you catch the double spent so that you know If I say okay, I'm giving a dollar to Joe and that's and all I'm giving it to Bob The only one transaction can be validated at the time of endorsement both could be endorsed because every time it says Yeah, it has a dollar You can give it to Joe or you can give it to Bob and at some point you're going to reconcile this once It goes through the ordering and it says okay, John is before Bob Well, then at the end you're going to go through this Validation which is a very quick process. It's going to first is going to say yes Okay, he has a dollar I give it to John and then the second time is going to say no There is no more dollar is like the account is zero now So you cannot give it to Bob and it could be not zero, but even if it was any change, okay? That's what this refers to Yes quickly, so I I see from Some links on the web that you can run Ethereum smart contracts on hyper ledger fabric So which one is the direction that is preferred by hyper ledger consortium because both the projects are supported so is the fabric going to be the the one for the future and then Ethereum Fabric is going to be shut. Okay, so so there they are two two I can answer this question in two different ways because so you said hyper ledger consortium at the consortium level We don't have an opinion. Okay And I'm part of the technical steering committee, which is an elected Position every year all the contributors can be can run for the technical steering committee and there's an election And so as a technical steering committee member, I can tell you that you know, we we We value every project in the same in same way And we don't have an opinion the whole idea of hyper ledger was to provide a venue where the industry at large and All interested parties could come and work together in open source on blockchain related technologies now at the fabric level We have as I said, you know, we are now supporting running Ethereum virtual machine type of contract on on the fabric network. I Think it's really meant for people who actually are working in the theorem. They already have developed smart contracts they want to use and they are looking for a different platform because it has some limitations Whatever and so it makes transition easier Because there are a lot of aspects to fabric which you won't have access through this smart contract API, right? Or on the web 3 API if that's what you're using we have this web 3 proxy But you're limited to what's being provided by this API as soon as you're going to want to use all the specific Features to fabric then you're going to have to move out of this space So I wouldn't you know, it's clear that this is never going to be the primary API to interact with fabric Thank you Thank you very much for the talk and also. Thank you very much for Coming this was the first time that there was a blockchain that from on Foss them We help us organize is that you liked it if you have any Suggestions how to do things better contact us on Facebook or Twitter And hopefully next year. We'll see you again at the next blockchain there from thank you