 All right. I am recording it now. The recording started. All right. Pavan, you want to just quickly do a kind of introduction to your own self if you like to? Yeah, sure. All right. Thank you guys. Thank you so much for joining this session. So yeah, my name is Pavan and I'm currently working as a senior blockchain developer in the Paramount. So especially I'm responsible for designing the applications and writing the smart contract related to everything blockchain, even for the deployment as well. So yeah, I'm excited to answer your questions. I will give my best to answer your most of the questions. So let's see. All right. So, so I mean, I had, you know, been talking to a lot of people out here in hyper ledger fabric community where people are, you know, building. So what I see is whenever people, you know, enter this, the most confusion state they have is in how the transactions are, you know, going through. Maybe if you can show us some diagrams or, you know, maybe do a whiteboarding and show us how actually a transaction happens on, you know, fabric just to start up. It's just a warm up exercise guys pressure pressure is on you you have to, you know, make this really, you know, ask questions, whatever questions you have no question is a bad question just in that spirit I would like all of you to think about whatever questions you have. And let's make this a very useful session for everyone. So, Pavan, over to you for the. Thank you. I'm sharing my screen. I hope you guys can see me. Sure, yeah, yeah, we can see. Okay, all right. Yeah, so currently, let's consider we have two different organizations and they want to have communication between them in a distributed way. Okay. So, as per the diagram here, we can see two peer organizations are there and one order organization is there. So, this two peer organization, again, they're holding some kind of peers, two peers are there and one of them is the induction peer. In other organizations also the situation is the exactly same they have their own certificate authority, even for the ordering organization as well, there is a dedicated certificate authority which I haven't mentioned here. So, we will have a separate certificate authority for each and every organization. So, talking about the transaction flow, the first thing is to interact with our network we require certificates, because this is a permission plus private network right with only authorized entities are allowed to interact with the network. So, as per the business use case, these two peers, sorry, two organizations are in a bond with to have a communication actually, and what how transaction will take place. But before before going to the transaction, let's discuss like what exactly the process to create the create this network. First step is creating all the certificate for all the participant in the network. So, using those certificate authority, we will create all the certificate for all the participants in the organizations. Who are the participant? Peer is one of the organization. All the clients we talk about and admin or the users, those are the participant of the organizations. For all of them, we will create the certificate using certificate authority. For other organizations also we will do the same thing. So, what is the next step to have a communication between these two different organizations, we require to have a channel artifacts. What are the channel artifacts? Those are nothing but the initial blocks actually, genesis blocks and then we create and channel the transactions file which is responsible for creating the channel later on. So, those channel artifacts we will create. Once we have this channel artifacts, next step is to create a medium between this organization to have a communication. So, for that using the channel the transaction file we create the channel. So, using that channel now they have a medium to communicate but what kind of communication they are going to do. So, for that purpose they will write some kind of business logic that is nothing but the smart contract sometimes we call a chain code. So, that chain code will get deployed between these organizations on the channel actually between these organizations and finally using the smart contract they can communicate with each other. Okay, so, for transaction flow let's go to the first step. So, this client is responsible for doing the transaction and let's consider this client is belonging to the organization one. It could be anyone client like organization one and organization two. So, order will not have any kind of I mean client user they will have admin who is responsible for doing some administrative operations. But yeah, there will be always client for the organization one and organization two. Again, it depends on our use case. First thing, this client need to have the parties, publicly, privately and the certificate. Okay, so this client when they have the publicly, privately and the certificate because using username and password we don't have anything username and password in the public. These are the transactions which get invoked using the signature first and the certificate as well. So, this client will have, will need to create the transaction proposal, signed proposal generally we call it. So, the signed proposal, first they will create and this client will send this transaction proposal to all the endorsing peer in the network. Again, it depends on like how many endorsing peers are there. During the deployment of the chain code, we define the chain code policy. If we are not defining explicit explicitly implicit is the majority. So, in our network we have two organization. First is this peer organization second one is this one and what is the majority of the two it's two so it means we have to have two endorsements for successfully execution of the transaction. The client will send this transaction proposal to the endorsing peer zero of the organization one endorsing peer zero of the organization two. So in this phase. Okay, so this is the most important phase that generally we have one. We have one system chain code that is the ESCC endorsement system chain code at this phase transaction get validated how exactly it validated. This peer will check if the client is really authorized to the transactions. If he is, then he will check if it has a proper in the signature, how generally signature validated during the, during sending this transaction proposal to the endorsing peer client create the proposal. So what is the process for creating the signed a proposal. Let me show you. Okay, here. So, these are the proposal bytes. Okay, left side, you can see, let's consider this is the proposal likes I will some information like function and which function you want to invoke. What are the different arguments, what is on which end code you want to interact and the channel. Okay, so how generally this digest get created. I will show you here. So, by the client side only create a hash, generally call as a digest sometimes or has doesn't matter. So this hash gets signed with private key of the client, and it happens at the client side only. So, and finally the signature get created. And you can see here, what is the signed a proposal. It's a signature plus proposal by proposal by and this gets sent to the endorsing peer. Okay. So, how endorsing peer validate whether it's a valid or not. Once you get the signature plus the proposal by. So, in this signature. So this endorsing peer just decrypt with the public key of the client in this process in the signed a proposal, this client will send us certificate as well. In the certificate at the bottom we will have public of the certificate using this public key we can decrypt the signature and get one digest right. And using the same way how client created the signature, we have the proposal by here using this proposal by again anyone can create a hash. If those are those digits are exactly same, it means this certificate is valid, then we can consider this is the value transaction send by authorize transaction only. So this is the process generally happens actually. This is quite valuable. Yeah. I have a small query over here. Normally, right, there will be a consensus happens right, either it's a proof of work. So what exactly the consensus mechanism here we are following the public and you know, how do we do it in terms of the code or in the how that you know proof of consensus work, so that you know the transaction is completely valid. Yeah, yeah, thank you. Yeah, we'll go we'll come to the consensus after this transaction flow completion. Yeah, that's also a very good question so we'll go through it once we're done with this transaction. Okay, so this endorsement phase. So generally, this validation happens and after that this endorsing peer, what is the transaction, what is the endorsement process endorsement is nothing but just again signing that proposal and create a endorsement is signature only that is nothing but the signature. So this owns this endorsing peer create the signed the proposal again at this phase only while while exhibiting our smart contract it creates it and the right set when we talk about the decoding the block and checking the content of the block I will show you how exactly this looks like like real estate right set how endorsement looks like how many endorsements are there in the transaction will see I have decoded some of the blocks later once we're done with this I will show you. So, finally, this endorsement again send back to the client. Okay, here, this client again validate if this transaction have sufficient endorsement to execute it. So as per the endorsement policy. We require to endorsement so client will wait until he get it to endorsement and he get it he create a signed sorry transaction response and send back to the order. Responsibility of the order is nothing but just chronologically order these transactions create a block after specific configuration we define it depends on the batch time or batch size. Finally, once the block is created, one of the order will create a sign that block again at the bottom of the each block will have the signature of order. So this created a block and signed the block that block gets sent to the leader pair of the organization. So how we will decide whether the peer one or peer zero is the leader pair, it totally depends on the configuration how we define. So there are two configuration first one is the static or second one is the dynamic. So let's consider at the point of time we have this peer one is the leader pair and we're following the dynamic selection of the leader pair. That is again only election process happens in between the peers and one leader pair gate chosen at the runtime. So now this peer got the block right so this peer's responsibility to just disseminate that block broadcast that block to other pair in the organization. Finally, I'm sorry. Finally, each peer will just decode the transaction from the block execute, sorry, validate the transaction. Now what kind of validation happening here. So each pair will validate if he has a sufficient endorsement. Second is valid or not. And there is one mvcc multi version concurrency control also validation happens and all the validation was successful then the transaction gate committed into the laser. Again laser how to part first one is the current state database second one is the chain of the block and both of the places the transaction will get added. So this is the overall transaction flow in the hyper ledger fabric. So anyone have any questions on this part. Yeah, I think I have already got a couple of questions related to that. So one is from Lakshmi. So she's asking that he's asking is the client sending the transactions to the order I guess this is this is all but if you like to answer this. And further is being said is I thought that client send the transaction to peers. Yeah, yeah, first in the first page it will send to the peer once you get a sufficient endorsement. Finally, this client again send to the order as well. Right, right. Yeah. How can I have a basic query problem when you say client, who exactly this client is, is it the hyper ledger or what I'm sorry I didn't get the basic of that client. Okay, client is just nothing but the user. So let's consider you are part of the network and you want to know the transactions, right. Okay, so we have some client library fabric network previously we used to have a client. So these, these libraries are right now doing all things for you. You generally just create a transaction proposal and send to the fabric network right so fabric network is doing everything for us we don't need to worry on this. I'm just trying to explain how internally it happens. Okay, okay. Okay, so that means you know the organization one and organization two are not the no, no, are the center and receiver or how we can take it up. No, so I didn't get your question. What organization one and organization two right they are you know it can be considered sender and receiver right or from the client perspective how we can take it up. Okay, all right. So this client long into the organization one right. So it not necessarily it was necessary. I mean, the client could be part of anyone of the organization. So they just create a transaction proposal and send to the industry peer. So this client will continue will get connected to all of the peers in the. So there is a discovery service which is responsible for getting for that particular channel and the smart contract how many endorsements are required. So this client is responsible for getting this. Okay, at the end they will get this information and send this transaction to each of the peer. Okay, I got it so in general the client used to connect to both the endorsing. Yes, exactly. And then you know, they try to coordinate and then the, they are set up to the back. Exactly. Any other question. There are a couple of questions from Shane. So Shane if you can just unmute and ask your questions. Because they're very specific to diagrams and he's pointing to specific areas of the diagrams that would be great if you can unmute and ask. So in the, I have a little bit confusion over the peers, right? Because in the documentation say there are three peers endorsing, committing and also the order of peers, right? So in the diagram here, where is the commitment? Okay, yeah, cool. Yeah, so there are four rules of the peer. First one is the committing second one is the endorsing. Third one is the leader peer and fourth one is the anchor peer. Okay, so these are the nothing but role, they are not differentiating the peer. So one peer can play all of the four role at a particular time. So previously someone have asked about the consensus, how exactly it happens. So we will go through that but before that roles of the peer, when client sent this transaction to the peer, that peer act as an endorsing peer. Okay, so how generally we define, we install the smart contract on the peer and that will be the endorsing peer for that. Okay, so in the initial phase this peer is acting as the endorsing peer. Okay, so next when client get the endorsements, send to the order and order, create a block and finally send that block to the leader peer. Okay, so I told this process is just dynamic at any point of time, this election can happen and they can. So if peer one goes down, so peer zero would be the leader peer for that organization, right? So this leader peer will, again peer zero is again at this point leader peer. Next one is the committing peer. When we are sending this block to the leader peer, leader peer again sending this block to all final, all the peer is the organization, right? In the final phase, the same peer is acting as committing peer. Okay, so this committing peer is nothing but just do the validation. VSCC generally, I mean it execute the VSCC that is a system called which is responsible for validating the system, validating the transactions coming from that block. At that point it plays as the committing peer and what is the anchor peer? Okay, so this client sending this transaction to the endorsing peer, how generally client get the information which peer is up and running? Okay, so in each organization we can define one of the peer is the anchor peer and right now the network is the straightforward. We have only two peer in each organization, but let's consider we have paid peer in each organization. Now how we will know which peer is up and running and which peer is endorsing peer. So, for that purpose this anchor peer is responsible for that just collecting the data like which peer is up and running in the organization. And so that client can connect to that anchor peer only and get all the information within that organization. And once you get the sufficient endorsement like how many endorsing endorsements we require and which one of them are up and running at this particular time and that client will send the transaction to those endorsing peer only. So, in this way we have to protocol rules of the peer, endorsing peer in the endorsement phase, committing peer at the commit last phase that is the last phase of the transaction, later peer at the sending of the order block from the order to one of the peer in the organization and anchor peer which is responsible for collecting the data, collecting the information about which peer is up and running in the organization. We got it right. So is that answer your question. Yes, thank you very much. The second question I have is on the order itself. So, in case of these two organizations, so who should be running the orders. Okay, it depends again. Yeah. So, okay, so here we have three orders right. So, one of the organization can hold his order organization as well but then why other order I mean organization to will trust on this like order is responsible doing that if they want to do something they can do it right. So, it depends, like, you can hold some of the order as well, like one order and two order and you can decide like two or three orders you want to final. What we can say, like, signature. Okay, so this order can be hosted by each organization as well. So let's talk about it. We have three different organization in the network. What each organization can hold one order in here. So that in the final transaction, they will have always minimum to, I mean, our three order is for high availability, even though one of goes down, it will, it will, our network will be up and running. It totally depends on our business use case like who will hold this order organization. So they can distribute these ordering notes or they can one of the organization can hold this. Thank you guys very clear. Okay, talking about the consensus. Just quick question. So I'm specifically looking at different clients transferring assets between each other. And the goal is to get the approval time as short as possible so sub second, you know your transfer has been accepted by the system via consensus so I'm curious what kind of tweaks we can do to the system that improved the response time to the client. Yeah. Okay, so when we're creating the genesis block right so generally we define there are two parameters for the batch time and the batch size okay batch time is nothing but the time required to create the block. And bad size is nothing but the how many transactions you want to add in a single block. So both of them we configure we generally configure while creating the genesis block. Okay, what happens when client is sending the transactions right so order will wait until you get single transactions if within a two turn within a two second he is getting one transactions then also order create a block and send finally to the committee peer. I mean leader peer and finally to the committee peer. This is the first of course, second one, if within a one second, the client sent 10 transactions to the order in that case as well, order will create a block immediately because one of the criteria is matching either block size or block time. So if one of the criteria is matching order create a block and finally send to the committee peer finally and I'm talking about the procedure. So you can pick this parameter and you can make it like as soon as possible when you are you are getting one transactions or maybe within a 100 milliseconds if you are getting one any kind of the transactions, whether it's a 1020 depends. You can create a block and you can do that parameter. Thank you. I have one basic query where does you know the database as a concept is used when they know when the transaction happens as such or you know how you know blockchain as such you know stores it as a ledger. Yeah, okay, so finally, I mean, finally when we are committed to transactions right what exactly it happens. So in the leisure is data get added what exactly the leisure leisure is nothing but combination of two parts first with the chain of the block that is the blockchain and second is the current state database that is the latest state of the particular asset gets stored. So let's talk about one asset car is the asset car one is the key for asset and we are adding some data like color model whatever the data you want to add right. So this client has done first transactions car one one of the field owner is the owner one okay so first transaction executed and send back to the same to the leisure. Now, in the current state database we will have the value for that car one asset with the owner one and in the chain of the block as well we will have that information. So let's consider another one client came and he changed or maybe the same client has changed the second transaction with the owner one owner two the same car. Okay, so at that time current state database will have the latest value of that asset that is the car one, we will have owner equal to two. Okay, and in the chain of the block we will have one more transactions there, it means we will versus the history transaction one with the owner one transaction to be the owner to it means at any particular point of time, we can take the history of the transition who has done for this car one, how many transactions happen in the blockchain. So first transition was the owner one with the owner one and second transaction was the owner to but in the current state database will have the latest value for that particular is that answer your question. Okay, requesting everybody to be on mute and I am unmuting. Indra jeep right now, Indra jeep you can ask your question. Yeah, thank you. Thank you for one actually I have one letter design question which you already touched a bit. Whenever I bring up a blockchain network like a fabric high pressure, high pressure fabric network. I always have a doubt like, should I have order orders in organization itself, or to have a separate single organization for orders. So, I want to know, but what does it mean what is what are the advantages and disadvantages of having a separate organization for orders or having the orders part of the organization, because I asked these questions to high pressure to have a separate chat. Long ago, and then they prefer to have a win. The thing is like, if you have a single order organization, then it defies the meaning of truly distributed network because then it becomes a single organization which merges orders. But I think few people who are like very Sorry about that. Guys you can, you can continue now. So, is it like the organization can have as an as a network. They can have two organizations where one can host the peers and then other organization hosts orders. So how do you like from your experience, what's your preference to have like orders, how do you have orders. Yeah. Yes. All right. So let's consider, I mean, there could be a different kind of scenario. So let's consider one example. Putting the agreement on the blockchain network and we have two organizations. First one is IBM second one is the Lenovo right. They generally have a lot of communication in terms of the hardware like IBM get some laptop from the Lenovo and they want to have all the agreement on the blockchain. So in that case, let's consider IBM is solely responsible for that to maintain this. In that case, IBM can hold the order organization and other. So of course, every transaction will get executed as per the business rules we defined in the smart contract. But yeah, they in that case, IBM can hold the ordering load. But there are some scenarios like the other organization never trust on the other other organization in the network. So, so in that case, they can hold their own ordering load. But again, the answer in the way answering to the question like it totally depends on your business is what they want exactly to achieve. And depending on that, we can have this ordering node to the specific or peer organization as well, or we can have a common ordering. So some organization will push maintain it. Okay. Thanks. All right. So, because you can ask your question I'm asking you to earn a new phone. Yep, yeah. So my question is regarding to the client one. So in this diagram you should have shown that there's one client which is communicating with organization one and organization two. But in a real scenario, I believe there are different clients for different organizations to communicate with their fear note. So is it is it possible that a client which is of organization to can query or can do transition on organization one directly if somehow let's say it has their path or everything. So is it possible still say I mean see no no client is sending directly any data to the organization to organization one, they are going through this consensus process. We'll talk about the consensus process like how exactly to achieve, but what are the transaction flow I mentioned here right the same way any of the client will send the data even though it's a part of organization two or organization one because creating the signed a proposal is totally depends on the client so client creating the signed a proposal by using his private key right and the library we're using fabric network. This organization can also have a separate API server, this organization also can have a separate API server, but the finally, when they are talking with the endorsing peer, they want to add some data, then of course they will go to this process only. First, this client will get the sufficient information like how many endorsing peers are there for that particular channel and the particular chain code once they get the data they will send the transaction to the endorsing peer. Okay, the reason I asked this question because I have this scenario during my one of POC where I have one client where I do the network discovery everything. And I just tried to query something from organization one, although my client was not part of organization one, but still it is able to do the query like it will be able to execute the smart contact and get the data from organization one itself. So, like, I need to put some kind of check in my smart contract, but is it like a fundamental function of the hyper ledger or is it some kind of or maybe I'm doing something wrong. Okay, yeah, so query part never goes to this transition process, they never change the state of the blockchain. They generally while doing the query right so I'm part of this organization one and I'm doing a query. So, in that case, one of the people give the data directly, they will not go through this transaction process or something fetching data directly from the peer responsible state forward from the same organization. Okay, but even the private data like public data understand but I tried to get something from implicit collection, and I still get the data. So, should not be there some kind of authentication some mechanism so that no other client organizations can connect the other organization get the private data. Okay, so see if you are storing the private data on the other peer then definitely they will be able to access it right so you have to define your use case. While I mean initial phase only you have to decide like where you want to store if you're storing only on the organization one and definitely only the client from the organization one only will be able to get the data. The other organization to user will won't be able to get the collection actually I mean private data collection they won't be able to they will get an issue access issue. Actually, that is the problem like I just simply create a smart content query function and no checks and everything and the client from organization two will still able to get the private data of organization one. So, maybe I'm doing something wrong and maybe there's something with the certificate. So, okay. So, how do you define the chip policy. So, while adding the private data collection so you have defined one chain code policy right who can store the data and who can access it. So, depending on that you will be able to do it, even though both of the organizations are part of the one channel but there is a private data as well. Then you can you can constrain to the constraint into the smart contract itself but as per my understanding they won't be able to get the data private data actually until and unless they are part of that particular organization. Okay, so in case of implicit organization, do we still need to provide some kind of policy or. Now implicit all the users from the same organization they will be able to get that data for the implicit we don't need to worry about it by default it is there in the fabric into one. Okay, okay. Maybe I'm doing something wrong because I'm getting data from implicit collection and that's why I didn't provide any policy. So I was in a thought that every client which has its own certificate for that organization should be able to communicate with that and not go any other organization. So in this case, client from another organization can still able to query private data from another organization. So, maybe. Yeah, maybe we can, maybe after the session we can think of and try to get exactly what is happening. We're loving the conversation. So, I am unmuting Lakshmi. Lakshmi, you're there because. Yeah, yeah, thank you. Yeah, thank you. Nice presentation. Yeah, my doubt is like related you were mentioning that the leader pair can be set in the configuration file is it. Yeah, so I didn't see anywhere like I've seen only like setting the anchor pair. I mean, is it is it like similarly like setting the anchor pair we are setting the leader pair or the network automatically selects it. Leader pair configuration generally different in the Docker Compose of the peer. Let me show you. I didn't find I didn't find anywhere in test network and so that's why I'm asking. Yeah, yeah, in the peer generally get defines in the peer peer configuration if you want to make it static or dynamic by default is the dynamic. But in the peer configuration file you can see. Maybe let me show you. You can see with the code. By default configuration is there. This is the default configuration you will get for the peer code or email file or glitter false or true it depends on like which period you want to make it if it is a static. Okay, thank you. And one more doubt regarding to the orders. So there will be multiple orders is there. So, so normally do we need to go with three or more than three orders is good for a use case. Again, I mean that would depend on the business use case so generally people prefer like odd number of of course first one we have to have odd number 357 and depending on our high availability you can choose any number like more than 357. So for a normal application is more than three is needed like for good performance and. For the, you know, the minimum is three that I know for the rough consensus, but if we are designing a use case. See, I mean, if you feel you're one of the order one or two orders are getting frequently disconnected or maybe going down. So in that case you will be will not be up and running right I mean so you will face an issue while submitting the transactions if you're only one order is there. So in that case, you can have five even though they goes down then three will be there and with the three or so we can achieve the consensus. So the ideal counter do you satisfy or it depends like you feel like if your two orders are going down frequently or one order is going frequently. frequently or sometimes also I mean it depends like which service order you're using. Okay, yeah so here in the figure like the three order comes under one order organization. So can we split it like one order organization consists of two order and another order organization consists of two orders like that do we need to decide anything. Yes, yes, yes we can decide yeah we had a discussion just before sometime right on that idea, like it totally depends on the organization they want to have a separate ordering organization for them, or a dedicated one. Okay, thank you. Okay, there was one more question from her stating that how was Golan useful in hyper legend and I'm unmuting you harsh if you have other questions. I'm a computer nerd in hyper legend. This is my first meetup. So, so I was also learning how to build micro services. So I found hyper legend testing but I need to know that except the roadmap to how to learn hyper legend and how to start working in hyper logic fabric, and also going is in any way useful in this journey. Okay, so first of all, if you're familiar with the JavaScript or go language you can start with the because hyper legend every provide the flexibility or the client as well as the smart contract language. So you can write a smart contract language right now in the JavaScript or go language of Java or there are multiple other languages. Even our client also can be in the whole language or JavaScript or Java there are multiple options. So here it depends on you like if you're familiar with already, I would suggest you to start with that language and not not necessarily to start directly with the code. Yeah, there are some advantages because fabric itself is written in the code for fabric. So, and compare to the other languages. So this go add a lot of additional things like gossip dissemination and all the peer to peer communication they are using CRPC protocols right and go is one of the most efficient language as per my understanding. So that's why they prefer to I mean initially everything was in the go. So later, because of the community community suggested some of the new clients and all. So, a lot of people are working to have this flexibility on the fabric like independent on the language, if you're familiar with the one language that's fine, you can write your, your client and smart contact as per, as per the knowledge you have in that particular language. So it's not necessary to write in the goal itself at the first phase, but you are familiar with the goal, you can start with the client, go and smart contract also in the code. What is debugging your use like, you know, is there any debug tool specifically not to once you know return your blockchain and then you know if you want to identify how the transactions are going you know how where the transaction you know getting stuck in some node. So we have this client right. So in this client we have, we can debug directly straightforward, we don't need to worry on that but other part internally. So for David for that dedicated debugging we don't have any kind of explicitly tool, but definitely we have to check the logs of each and every services, you can parallel check like logging of the each pair like what kind of logs we are getting. Of course they have handled all of the errors and everything in the client side will get it. So we have to understand like why we're getting that that is the only thing probably at the client side itself you will get all the errors and all. So you can just check that but internally we don't have an explicitly tool for debugging but you will get a meaningful errors. So see the community is working to make it more remaining meaningful in case some of them are not there. Okay, okay, I'll comment just one query a lot, sorry. If there is any issue on order side also that also we will be able to know what exactly happened on the client side. So of course if there is an issue definitely we'll get at the client side. In case you're not getting just check the logs for that particular service if you're failing this order is facing some issue. So probably we can just go inside the container and check the log or maybe directly check the order container log also. Hi Pevind, this is Avino, I'm a logs researcher. So we are going to implement a type language of fabric in Kubernetes. This is a live project on the log project. We are going to add the data around the database level. So initially we started the research on deck in Kubernetes, how to define the type language of fabric but we are not getting the right things. So we are starting from scratch Kubernetes. We are creating the boards under the Docker field of Kubernetes files and run the boards and those things and we're getting the errors, a lot of things there. So I saw about some hyperledger level, hyperledger operator. So which one is suitable because this is a live project, it's a big project. So any suggestion from your side? Okay, I mean, again, that's my personal suggestion. So probably I'm not expert in the deals, especially on the Kubernetes. I know the basic things, but that's a different expertise, right? I mean, maintaining the services in the Kubernetes. So probably I'm not the first, I mean, right guy to answer on that question. But yeah, hyperledger beaver is there. There is a, I feel, I mean, I also try to use it, but I feel there is a lot of tight coupling between the services. If one goes down, so it will not work something like that. So that's why we also have this service is all the services in the Kubernetes as well, but we're not using very well or something. But yeah, maybe you guys can explore that part or maybe it's hyperledger operator is also there. So people's maintenance are trying to improve their services continuously. But yeah, if it's saving a lot of times, then I would recommend to go through it and just explore it. So even accomplished here, I will recommend for the HLF operator, because they are a kind of open source by IBM blockchain platform and could be used very efficiently and is a production grade available. But depending on the choice, it's also good. Okay, thank you. Sorry, accomplished is also with us. He's one of the experts in this area. So yeah. So, okay, in combination, we are using the going to on-premises server only. So is it okay. It's which one also the client asking the one is on-premises server for this large project for it's one of the government project. So that's all. There is a link about that. Any repositories? Just one, but actually I will drive in. Oh, okay. Yeah, so meanwhile, there was another one question right on the consensus. So how consensus is achieved in the hypervisor fabric. So in the Bitcoin on the Ethereum, we have some different options in the Bitcoin we have proof of work again and the new fabric. So Ethereum 2.1 we are going to have the proof of stake as well. But in the fabric, it's a different actually this process is little different how exactly this transaction gate added successfully in the blockchain network. Consensus is nothing but there's a process achieving the final state of the particular asset in the blockchain. Okay, so this is the three step process. First one is the endorsing phase. Second one is the ordering phase. Third one is the committing phase. And in the transaction flow we have already gone through with the endorsing phase. When clients send a transaction to the endorsing pair, that is the endorsement phase. Okay. So again, client validation happens here, created the reset and the right side by executing our own smart contract and send back to the client. So this is the endorsing phase. What is the second phase? It's an ordering phase where order just chronologically ordered the transactions and depending on the backstage and batch configuration create a block and sign that block. So this process is nothing but ordering phase. This is the second phase. Okay. And finally this order and send a block to the finally peer leader peer through the committing peer and committing peer again execute the transaction. It just check number of endorsements are correct and each endorsement is valid or not. So that is the committing phase. So combining these three phases are nothing but the consensus. So generally we call these three phases. So that you consensus using these three phases, endorsement phase, ordering phase and finally committing phase. Yeah, any other question? Yes, I have one. Hi, Paul. Yeah, hi. Yeah. Yeah, this is Vimea sir. I want to understand how similar the chain code is with smart contracts that we are writing in solidity programming. In solidity, it's a different actually and in the fabric is totally different. Because, see, we are, I mean, we can actually whatever we want in, in the hypervisor fabric, like you can totally have your customized use case and you can add any kind of data or something. But in the Ethereum smart contract, there are limitations to add the data, right? I mean, you can add data but it will be. And I'm very new to hypervisor. Can you suggest any resources or courses that are available for learning? Yeah, okay. So first of all, I would, I would recommend you to go through the Docker for, I mean, you should be familiar with the Docker. Any basic course you can, you can go with, once you are done with the Docker, if you're familiar with the JavaScript, you can start with the JavaScript API and the smart contract as well. If you're familiar to go Java, you can do it, I mean, accordingly. First thing is official documentation, I would recommend. Official documentation is the best resource right now. And I created some of the simple use cases, not very solid proof, but I tried to cover most of the hypervisor fabric things on the YouTube channel. So. YouTube courses are for the advanced, actually, if you are familiar with the hypervisor fabric, then you can go with that. Those are little bit advanced, like if you're familiar with the fabric, then how to add a new organization in the existing channel or new order in the existing organization. So that is first course, second one is the multi-hose deployment, like how we can do this deployment on the different kind of virtual machines. So that would be kind of advanced, I think, and you should be familiar with this all the basic flow first, if you're familiar with this, then definitely I would recommend to go through this course so that it will be easy for you to just do this. Yeah, can you just put it on the chat of those two courses name alone. Yeah, I will. I have a few questions. So, is there a possibility to change the logging level on the fly like once we once the network is up and running, and then if I want to change the logging level of peers and order us from info to debug or debug to info as we require is there a possibility to change configuration. Yeah, as per my understanding, in the Docker compost file itself right. Yeah, yeah, once we start. So here, you can see the logger logger here, right, you can just restart the server. That's it. It will get reflected immediately when you're starting this Docker restart and the container. Let's change this and that should work actually I tried and it worked for me. So we thought the restarting of each nodes, we cannot change the. No, it will not reset. You can pursue the data for that and you can just restart this container. What is the issue when you're resetting it. No, I just wanted to know whether do we need to restart each and every node to change the logging levels. If you want to, I mean you want to check the logging of the PR0 of the organization, then you don't need to reset everything. I mean, all the other containers, you can do it only for the PR itself, right, you want to check the log of the PR0. In case if you want to do for everyone, definitely you can do it. Yeah, okay. Then I also have another question like, is there any best practices for organizing organizing the chain code. Because like writing every every function in a single chain code or having a separating functions between different chain codes is there any best way or it's just purely like your knowledge and business use cases. Yeah, it totally depends on like, say, chain codes and nothing but just the business logic and so in other languages or maybe in other services how generally we maintain the code you can exactly do the same way. Even for the other traditional technologies we maintain a code in a proper right the same way you can follow here itself. There is another one thing I want to mention here in the fabric 2.1 we can install multiple smart contract within the same chain code. So what is the difference between smart contract and the chain code. It's nothing exactly same, but we have a privilege to have a multiple smart contract within the same chain code. So there will be only one collision for both of the smart contract, but yeah within the same chain code also we can manage it and we can make it so proper older structures and everything. It totally for the developers right we can manage accordingly like whatever you will take over. So would like other languages based practices you can follow the same thing. I would in that case that would be like I'm writing in go so in a single go package, we will have like two or more than one chain code smart contracts. Is that right. Sorry, sorry. So, let's say we are writing a chain code, and then we have a single package. In that package we have like more than one smart contract. Yeah, that's fine that's fine it depends on you right if you want to make it that way, you can make it like within I have dedicated a video on in the YouTube, like maintaining the multiple smart contract within a single chain code as well. And also the endorsing policies for the chain course not for the channel right. Yeah, endorsement policy is for the chain code yeah but there are administrative policy even for the channel and for the genesis block as well. Yeah. I request everybody to just raise hand so that others can also get a chance we will allow everybody to speak. We don't have, we are running out of time. So please just raise hand will give chances to everybody and unmute others. And thank you. Right, right. Thank you. Thank you. I think that's for the interest of and the ferrity, which we want to keep. All right. So I have. I have different children, so I'm. Okay, my question is that I want to set a local fabric network. Okay, for that, how I can do that. I don't want to connect to Kubernetes or like that. Just in a lab lab set up or something for storing the data in that particular organization I want to set a local fabric network. Is it possible or sorry actually I miss your initial voice so can you repeat your question. Okay, my question is that I want to set a local fabric network hyperlager fabric network. I don't want to be connected with the Kubernetes or like that. Is it possible, or how I can do that. Yeah, it is possible. Yeah, it is possible and in the official documentation also they have given the script for creating the local setup on the right. This network, you can just, you can just go through the documentation, you can just replicate the same network in your local machine without creating without having Kubernetes. Okay, that means I'm not in a single system. I want to have four to five pieces. Okay, five pieces. Yeah, that is also possible. So you have to, I mean you want to do this posting on the multiple virtual machines. Yeah, that is also straightforward. So you have to maintain the proper communication between them. Probably you can use the song, the song we have to create some network and within that song network you can, you can allow this container to communicate. Otherwise, you have to make some privilege to communicate these different containers with each other. So there is a dedicated, dedicated course actually on this part on the Udemy. So you can just go through it if you feel it's useful. Okay, okay. I did this same deployment on the three, four different machines. One order machine, one for organization one, third for organization two and fourth for organization three. Okay, just I can just search on Udemy and find the boards. Yeah, I will share the link here. Okay, that will be helpful. In official hyper ledger documentation it is available. Is it available? No, in the official documentation it is available for the single machine. Single machine. Okay, thank you. I will check out. All right, so I had one question at the start of the session itself, asking about what's the difference between the admin and users by Vinod. Okay admin users and the normal users right client. Yes. Okay, so see in the hyper ledger fabric we have defined some kind of organization unit. What is the purpose of that? The purpose of organization unit just segregate the functional segregate the responsibility. So there are four no organization unit first one is the admin second one is the client third one is the order and fourth one is the peer. So in their certificate, we have this information, this certificate belongs to which participant, like it's a client or it's admin, it's a peer or it's an order. So depending on this, generally we have some responsibility, endorsing peer only can endorse the transactions where we have defined while creating the certificate. So it means only peer will be allowed to endorse the transaction not admin or the client because they are not responsible for doing that only peer is responsible for endorsing the transactions. Another one is order is responsible for signing the block. No other entity is allowed to sign the block if they don't have organization unit as a order in this certificate. So in the same, I mean, in this way they have segregated the responsibility only client and admin can and you know the transactions, peer cannot endorse and send the transactions or order cannot send the transaction right in the certificate we have that all the information. So that way we have defined these different organization unit as a separate kind of user only we can consider and admin have some administrative privileges. Like, let's consider in the running network, we want to add a new organization. The client will not allow to add the new organization right only admin of that organization, those use those participants who have no organization unit as admin will be allowed to those administrative operation. So that's why they segregated these different kind of participant in the network. I have one basic protocol. See this order is there. So, you know, at the end of the day, the order is one who they should validate and then you know, you know, author the order is the transaction. So, we are into the part of centralization only right where is the decentralization has actually comes into the picture. Okay, see when client so as per the diagram here we have there are two organizations right. So, both of the organizations are endorsing the transaction right in the first phase in the same phase here. And our chain code policy says each organization should endorse the transaction if one of the organization is not endorsing. So in that case, the transaction will be marked as a invalid, they won't be able to change the state of the blockchain. And final achieving the state of the particular asset is maintaining this, I mean going through this three process. First one is endorsing, second one is the ordering and third one is the committing phase. So this is nothing but just going through this distributed system only right with proper endorsements. Okay, so that means you know, who has this you know, order here like you know it could be, you know, any of the third party vendors anybody. No, I mean, see, it depends again, we, I think we already have a discussion on this. But yeah, see, this order can hold by one of the organization, if the other organization trust on this organization, or they can hold some of the ordering note between this. Okay, okay, sorry, I missed that part. That's fine. That's fine. Yeah, I mean, yeah, that's a good question. That's one of the confusing question for everyone like for the new one intermediate people are new and for sometimes expert as well. Okay, I am asking Arjuna to ask the question. Arjuna you there. Sorry, I was talking on mute. So like, is there a way where we can get the history for the PDC implementation. Yeah, we don't have that in the right now it's not it implemented I mean, getting history for the private data collection. Yeah, it's not it. I mean implemented in the fabric, you cannot get the history for the private collection. My second question is like, we have three coach to be the thing is like we have manipulated the data in the three coach to be now. I like from the organization when I tried in working the transaction, and I could able to update the data on the manipulated data. Okay, so what is your chain called policy. It's a one, two or three. It is like or or of anyone of them. Okay, yeah, this is a very good question. See here. Right now we'll talk about these two organizations we're having two peer right. So let's consider we have added one transactions car one with the owner one. Okay. And now, when we're talking about doing some other transactions with I want to change the owner three, but before that only. One of the user from this organization, they have access to the cows do you have this beer right. So they have changed the owner with owner file in this beer and this you one of the user from this organization also changed with the owner six. Okay, and this another one one user they want to change the owner. He's considering owner is the one and you want to change with the owner to here. Okay. So what this client does he create a signed a proposal and send to one of the endorsing fear because he require only one endorsement. Yes. Okay. And here. So you will change. So in the endorsement phase, what this beer does we just create the reset and the right side depending on the whatever the data they have right. So right now in this beer. How do you have the. What it can you meet you. Okay. When just unmute yourself I have muted all so you have to unmute. Okay, all right, sorry. All right. Yeah, so here. So this beer will just simulate the transactions and create the reason that the right set doesn't matter like what data he has, he will just update the data because this beer is considering what are the data they have it's a valid one. So in that case he will write the owner six with the owner to and this client will just simulate sorry client will just check we got one endorsing endorsement endorsement and just send to the order order creative lock and final send committed into the laser. So that's why our chain code. So we should have multiple endorsement. If these two endorsements are not matching in case as per the endorsement policy we have only one. So that's why it's getting executed successfully. It's not checking anything even though you can check the history in the transaction, but it will get the transaction get added successfully. And deploying our smart contract we have to have the chain code policy majority either or each organization should endorse the transaction. So in this phase, let's consider we have we have a chain code policy that each organization should endorse the transaction. So in that case, here itself the client will check if each endorsement is correct or not. If if each right set is correct or not here itself the transaction get discarded. So that's why we it's important to have multiple organization endorsement policy here. Is that answer your question. Means one more clarity. It is like couch DB you what else we have right. Yeah. We logged in and there itself we changed the data. Yeah, that's correct. Yeah. So yeah, means the data would be like it would be sinking right across all the previous even if you put or or and it doesn't matter. Read rights it's much in the case. Okay, sinking of the data. See, in the couch DB we have one, one thing, it's a height of the laser. Okay, if the height of the laser is same exactly on the peer they will not sync up. If some peer misses some transactions, let's consider. Here one how the laser height, let's say laser height is nothing but the block number. Let's consider we have created total 10 blocks till now, and this peer misses some transactions. Like we have done again, 10 transactions later and two blocks get added. This peer will get synced with this other peer if the this laser height is mismatching. Then only the data gets in. Otherwise, if the laser height is exactly same, it means they are considering they have the latest data on it. Okay. Thank you. Any other question. All right, I am only asking for new funky Singh. Yeah, so my question is related with the private election only. So let's see, I have put some details about my car in my private collection, which has the car model name and its price and everything. I want to sell it to some other person on the same network. The other person has a process where he can let's get the data of the chain. He can generate a hash of that and match if the hash is certified hash is available on the network or not. Yes, he can identify the correct data. Now, in the previous process when I put my private data collection, the user one has put the details with owner user one. He has verified it's fine. Now he has sell the car and now owner has been changed to user two. Now, if this user two wants to resell the car to user three, if user three will create the same hash with user one name. So that hash because that hash has been already on the chain. So will this also work as well? Because now at the point of time the owner has been changed. Yeah, okay. See, when we're talking about the private data, so organization one is selling this car to the organization two user, right? Right. So in that case, see when we're adding any kind of private data, any private data for the car one with the owner one, so that has get added onto the on chain. Okay, now the data is available in the private data collection itself. Now we were saying you want to sell this car to the user of the organization two. Okay, so this organization two should save same information with the owner two in the private data collection and send the transaction on the on chain actually. And when organization two is selling again card to some other organization user. So in that case also that same verification will happen. So you have to add some privilege there, like against which data you want to verify this card, if it's organization two and what was the owner of the organization two in the private data collection. Just give him information, ask him create a hash and just check on the on chain. So in that way I mean we can manage that. In the in the same process where the organization one has been initially obtained the private data collection with let's say on a request to user one, and there is a hash already generated for that. Now I have updated the same report with user two. Now there is when in the same organization or in the same organization the same private database. I just had updated the key with user one user. There is another transaction which has been hashed and distributed across the system. So there are two hashes now one hashes stays on a user one another is this on a user two. So how we can like remove this process because at this moment the actual data is with user. But if the any other organization user will create a hash with user one will also get matched with the hash which has been generated previously, but it's not the actual state of the particular car. So is there any way we can avoid this process. We can identify. Okay, this is the invalid hash now because the current data has been updated user one to user two now. Okay, all right. First of all, What it can be used for. Yes. So, see, first of all, why we are storing the data into the private data collection I didn't get. See, if you're saving in the private data collection. It means confidential data, right, and but you don't want to share with other organization if even though you are changing the owner or something, how someone can verify it, you can. Of course you can share directly data to him and just ask him to verify the hash. If the owners ownership is getting changed and that should be on the public chain I fill and the confidential data just like a price or something which is not required to know everyone. I mean, if a transaction happening with an organization one and two, the price was even and the same car is changing ownership from owner to owner three the price is something different that data we can mentor into the private data collection, but in case if you want to If you want to change the ownership of the car one to two, then organization two should just keep the data of the particular car in his own collection and ask anyone to just verify it in case if you want. Maybe, maybe I get the wrong example with honor. Let's take it this price one initially I have created this record in my private collection with price equals to one lakh lecture for the car and now I updated that price to 80,000. I will ask two different user to verify the data one with the 80,000 and one with the one lakh because the hash of this two transition has already been distributed. If they try to create a hash and verify they will they both reports will get verified right or it will not. No. Okay, all right. See, I mean, private in the private data collection we are storing the sensitive information just like a price or something. You can add any number of transactions and all the transition will get validated against the data and the hash will be valid, but it totally depends like other organization or who is there right they want to verify the data against which data they will verify it totally depends on their communication they want to, they want to compare with the price one rise to rise three. It depends on their, I mean, requirement I feel it totally depends on the business is guess. Okay, okay. Okay, Satya Rajendra you can ask your question please. Hi, thanks for the session. Hi, this question is about the implementation. The implementation of the deployment so when we want to deploy the hyperlature fabric for two organizations. Okay, the organization one is a manufacturer another one is a seller for an example. So, manufacturer initiates a deployment and they do the CA organization one and order and everything right and the same thing the same info has to be set up in the different data center, or it has to be done along with the same data center in all the servers. How these two organizations set up in two different location how this pair joins the, the first organization channels. Okay, there are two things first one is the having communication or maybe making on the different centers, different location. Okay, and relative to the fabric they are already they are distributed and they are having a communication between them. So, in case if you want to make this in a separate virtual machines first thing or if you want to make it multi region or something. So probably for that you have to maintain the network accordingly. So, why we are having this multiple peer here, because if some of the peer goes down other peer will be up and running even in case of the order as well right. So, we have to make sure these peers are not in the same virtual machine, if the virtual machines itself goes down and both of the PM we made for the high availability, then that would make that would not make any sense right because if the virtual machine itself goes down. So, our network will be down so in that case we have to maintain these peers on the different kind of region or maybe different kind of virtual machine. It totally depends on us and we can follow the same approaches how generally we do for the traditional technology, maybe other services, not only for the fabric, but general purpose. Okay, yeah, that is for the high availability of the fear peers, correct. We go for multiple availability zone and then we distribute it so that is clear to me. Now, the organization to I'm talking about it so I have, let's say I have an AWS account. Multiple peer and different availability zones to meet the high availability now when talking about organization to let's say they are in on premises they're not into one into the cloud. Okay, and they do they do installation of their own hyperlature fabric and they create orders right every organization have their own order or let's be how, or we have one order set of orders for the entire fabric. How does it work? I mean one order for the entire fabric, I did get that question. Okay, so now in this diagram we have order one, two, three, okay, organization one and organization two. Great. This organization one let's say that they are in a different data center, let's say they are in Atlanta. This organization two, they are in Ohio. Two different organization to geographic locations. Okay. Now, this organization one, they're going to have their own set of orders in their location. Okay, that's fine. And this organization two, they are also going to build their own orders in their data center. Yeah, that's fine. Now let's assume that we got VPN in between them. All the network connectivity has been established. Okay. Now, how this organization two in a different or your region, how they want to join the organization one fabric which is based in Atlanta. I'm talking about only the fabric level setups. You're getting it right what kind of commands we need to establish to communicate. Say, first thing is, they need to have this, this is a distributed and decentralized system right this different kind of services are communicating with each other. If they are on the same machine, then they will be able to directly communicate with that particular addresses, even though they are on a different machine, we have to allow them to communicate with each other directly. Right. So for that purpose, there could be multiple options in the day hopes, how people generally allow different services to communicate with each other. But some is one of them some network you can create between these different kind of virtual machines or maybe different region, of course, region will have that virtual machines and inside that virtual machines you can create one dock and some network between these different virtual machines and allow them directly to communicate. Because this order are communicating with each other and this order are also communicating with the peer aspect. So it's totally depending on the configuration like how you're making or how you're allowing them to communicate. So Dr. Swam is one of the options even on there. So otherwise you have to export some those IPs and all to allow them to communicate. But if we go for Dr. Swam right it is one organization installing Dr. Swam and creating multiple organizations inside it right. But now we are talking about real time example the organization to is a different company altogether. Yeah, that is fine right. We see if I do a Docker Swam let's say I am the Docker admin or Kubernetes admin right when I deploy it. I'm installing my containers for organization one I have everything I have to install organization to which I myself is doing it's not the second organization which is doing it right. Yeah that's fine see when we are creating the Swam network right we should throw some sort of key actually to join in the same network from the other organization. So what I will do okay you have created some network on your machines and you have created all the participant information or certificates and all and you have created these all the peers and everything your own order. Now what you are saying okay so we created the Swam network and you are asking me to just join the Swam network and allow your network container to communicate with mine. So for that, so we will create channel artifacts right in the channel artifacts we will mention that information. Okay so in that case if we do this then again this everything is becoming coming under one Swam cluster right but we want to be geographically distributed in a different part of the world or different part of the country. Correct, so if we take everything under Docker Swam then it becomes like one Swam network and then all are part of the organization we are not achieving the real you know pure to pure and geographically distributed or set up right. So my only thing is that you know company in Australia and company in America they won't have a fabric chain. Okay but nowhere that they must have one common infrastructure they must have different infrastructure in their own data centers, how they're going to form a channel I'm not finding an official documentation of the high voltage. I got a question yes see this is not related to the something I mean strictly to the fabric this is just a general communication how people do their communication between different kind of services right. They have to export some kind of force or they have to expose some kind of domain so that they can communicate directly in the channel configuration sorry in the block. Genesis block at the bottom we define all the orders and points you can see here and they are communicating each other using this order addresses you can see my screen right. Okay. So here you then you have to make them like so which are exposed as other. So, order one how sorry one of the order cluster have three order other organization also have three order, then they have to mention these all the orders here, and they should be able to communicate you have to make some adjustment so that they can communicate without any issue. On this domain. You got my question right. Make some kind of privilege, they can communicate without any issue directly. That is the only thing we have to maintain. I can add to it. There are two different different systems sitting just next to each other or in different different continents but the two system have their different different IP addresses. Those IP addresses can communicate with each other that's that's more related to the communication and basics of Docker someone Kubernetes can also do the same. There are two different system with different IP address one for what is running a different system with another IP address so there are two IP addresses which actually used to communicate with each other. And in Docker some you can make all the IP addresses as master and slave, either all of them will be master or all of them will slave. So it's the equal like rights distributed to all the system. So we have to bring more into Docker some rather than fabric. Yeah, that's correct. And one thing like see order.com. So let's consider we are in a different region you have your own virtual machines I have my own. So let's talk about without the song as well. So how will know how they will resolve this order.com and 754 they will try to search in the local right first in their local, or they will just try to say search with this domain as well. So how they will identify if this domain have proper service running behind that particular domain, then we have to let them know like this is the domain which is running under this VM. We have to make some kind of this is just a purely communication part actually how this different container communicate with each other. I think that's the correct way to IP addresses used to communicate to system, wherever it is, generally to IP address and for summer used to communicate. So in interest of time, I think we are running out of time, we will be able to take only one or two question max. So to just identify. I have all the repeat participants now. So and so I'll just pick one of them. First you can go ahead. Earlier that properties as a pre-requisite before learning hyperlator. So do we have you know communities and Davos in general before starting hyperlator. No, no, not necessary, you can start with this one and the later on Davos is totally different, right. So you don't need to necessarily know immediately immediately but yeah definitely it's good to know. You can start with this basic things first and later you can expert and get expertise on that. Also, what are the perspectives, career perspectives in hyperlator like demand and average compensation rules etc. Maybe you can I mean market would be the good things to comment on that but like market will let you know. But yeah, there are a lot of jobs actually on the private blockchain, there are multiple framework as well but fabric is one of the most famous framework right now in the industry. So yeah definitely there will be a lot of opportunity. All right, I think with that we can close this session. Thank you very much Pavan looking at the kind of you know the number of hands which are still risen at this point looks like we have to do, you know, another session. Yeah definitely with you but but absolutely wonderful to have the questions and great responses from you Pavan and everybody who just joined in and put the answers across. And I see a lot of people who are also writing on the chat, which means that we have such a great public to you know help each other out. Let's keep building. And if any of you want to get added to the WhatsApp group or want to have more details please subscribe to this meetup link, which where you have actually registered this so hyperledger India and hyperledger Okay, one more thing like maybe just let me create some coupon codes for you guys like you guys are interested in that. So free coupon code and share immediately here so please don't share with anyone. This is wonderful. See thank you Pavan. A lot of people are thanking you already. Just give me a moment I'm just creating a coupon. And we have limited number of involvement on the under this so don't share with anyone please. Also, if you can take this coupon code to our WhatsApp group, that will be also helpful. All right, with that. Okay just, I'm just messaging everybody my number so you guys can just drop me a WhatsApp message and ask for a request to the WhatsApp group. And also just give a brief introduction of who you are what you do, and why you want to be a part of that group that will help us do a bit of a screening and add you there, right. Thank you so much. Yeah, thank you guys. Thank you so much for joining. Thank you. Have a great weekend guys. Thanks for thanks for you. Thank you so much for having a very beautiful year. Thank you. Thank you guys.