 So first of all, thank you Hyperledger for giving us this opportunity to present the demo, this concept of ledger archiving. And hope everybody is doing good with their near and dear ones in this pandemic era. And with me, I am Shantanu and with me, my colleague Teja is here who will be showing the demo for us of this ledger archiving. So let's see what exactly this ledger archiving is. We have created, to showcase this one, we have created a fabric network of four organization and in this each and every organization is having one peerage. And as a part of the peer, we know that the ledger is also be a part of that peer. So in the ledger, we have two different type of storage. One is the tension and then the wall state, we all we know. So in the transition to what we did is we, I mean, we kept the storage space of only of six blocks. And as you can see in the figure in the, where it is starting with the Genesis, which is a B zero, and it is ending with B five. So the sequences already the six blocks are there. And the seventh block, which is this is going to as a transaction is going to get entered. So right now what to do right there are two options as a ledger archiving approaches. We have found one is using the channel another one using the external file. So here as a part of the demo will be demoing the external file. How I mean using the external file, we can go ahead for the ledger archiving. So as a part of this particular demo, we have considered the IPFS tool to, you know, for the storage. Any tool can be used instead of the IPFS. So first, we have set up that particular, you have seen, we have set up the organizations. And after that, the chain code installation will invoke the transaction to increase the block height. And at a certain point of the block height, the peer will be filled and the script will be taking that backup once it is getting filled. So first, we need to call a chain code method to update the archival level from the current state to the next step, which will also update all the composite keys of wall state and delete the previous composite keys without changing any values of assets in the wall state. After updating the archival value will take up the backup of the ledger data folders, block file and store it in the IPFS and IPFS will be giving us the corresponding hash values. So taking the snapshot at the current block height and we are storing in the local folder and whatever we have stored in the IPFS, we need to return, we need to run a script which will create a new peer in the same organization of which we have taken the backup. And while the transactions will start occurring for creating that new peer which will be in the channel getting onboarded. So after this new peer has been created, the snapshot folder will copy it to the current running container of the new peer and join the channel with that particular snapshot. So what we can fetch is the old transaction from the archive data and whatever the data it is there in the new peer, we I mean our query can find out. So while we have created this particular ecosystem, we were able to find some of the cross and the cons which we are wanting to share here. So having said this, this particular configuration is very much easier to integrate or easy to access the archive data and securely those data. But only the challenge here is whenever you are trying to create the focused ecosystem architecture, we need to optimize I mean we need to create the ecosystem in such a way that we optimize the cost. So there are some FAQs as well, which we have created for you people like what is the archival value or does the ledger archiving impact any wall state data or what is the IPFS. So all this are covering whatever the general concept we have thought about. So thank you from my end and having said that I am handing it over to my colleague Teja who will be showing you the demo. What do you say? I'll take it from here. Hello, good morning. Good afternoon. Good evening to all the attendees from the world. Once again, thank you for giving us the opportunity to present our ideas. Now, before starting the video, we will be showing you a demo that we have created for two organizations with one peer each with a single channel and a checkout respectively. Globex and Infitech are the needs of the organizations. Then in the later part of the video, we will show the archival mechanism with IPFS as a storage element and how we can easily retrieve the archive data. So let's get started with the video. As you can see, we will be working through the initial steps of creating the network with two organizations as I said before. Before initializing the network, all the existing networks will be deleted. In the interest of time, we have automated the process. So as you can see, it is creating all the required terminals for the peers with two different organizations and making the peers up and running. A channel will also be created named MyChannel and these two peers will be added to the channel respectively. Now the chain code is being installed onto the peers respectively. The chain code is added with extra variables to enable the use of archival features. A special variable called archival value lets you know the status of the asset if the asset is backed up or not. So as you can see, take some time for the chain code lifecycle to get completed. I will forward it a little bit in the interest of time. So once we have the basic network in place, the current block height will be at 6. Now for the demonstration purpose, we will invoke some transactions with the existing peers to increase the block height. As you can see, the chain code invoke is in progress. Right now, the block height is being increased. As the height is getting increased, in the later part, we will be initializing our private IPFS network for storing the archived data, which can be done by using the IPFS demon command. So now the IPFS network is initialized. Since we have got our block height to 19, as you can see through this API, let's assume for the demo purpose, the ledger has been filled up. So let's go ahead and initialize the archival mechanism using the API from Postman. This process includes a couple of steps. As first step, we'll be sending the peer details and the archival values to the API, which will invoke the respective chain code method. Then the assets archival value will update the old one to the new one as shared by Shantanu by provided us in the request. Also to change the composite keys. The next step will be taking a ledger snapshot from the current peers block level and store it in the respective storage. Then the ledger data with the block file is sent to the IPFS network and stored as a response will be getting a hash as well as the asset information. You can see the hash here as well as the new archival value. So right now from here, whatever new transactions come in, the archival value for those transactions will be level one. Now going on a new peer will be added to the network using the snapshot method and the old peer will be stored. Now, as you can see, the old peer is already in the exact state. Let's go ahead and quickly do some invoking again to create some transactions with the new peer. Now again, the block height will get increased. Now we'll use a new peer identity, which is the global peer one to fetch the data. As you can see, we have only one transaction for the asset file, which means that it is not able to fetch the old data. Now, if I change it to the other organization and fetch the data, I was able to see the data because it is also present in the channel. I'll change it to the level one to see the new transactions and I'll be able to see the new transaction history for the asset file. So there are two transactions for the new asset. So now we'll quickly go ahead and fetch the hash value using the organization's identity and then we send this hash to another API, which will initiate the process of getting the archival back. And the archival data will be then put back into the old peer and then the peer will be started again for the query purpose. Now we'll be able to query the history with the old organization's identity. As a result, we will be able to query the archived data using the old peer identity, which is GlobalX, running at port 7051 and the peer 0. At level 0, which is the old archived data, we'll be able to see the archived data. As you can see, we're able to see the assets, the transactions data for the assets. Now here you can see earlier the peer 0 was in stop state or exited. Now it has been started again for the query. Once we have completed our query operation, we can again stop it and we don't have to make it further. This is the demo. I'll quickly go ahead to my postman to show you the exact information. So as you can see, I am using a API to fetch the block height. So I'm using the GlobalX identity. I'm sending it. I've got the current block height as 28 because we have done two types of transactions and every time we have been based on block height, so right now the current block height is 28. So if I change the GlobalX peer to the peer 1, there is the new peer, you'll be able to see that it has got information from the 19th block to 28 because it was added using the snapshot method. Now I'll try to get the history using the new peer and let's see if I'm able to get the new transactions history. So you can see that we have got the asset information, asset 5. We have only one transaction there because after archiving we have only done one transaction. If I quickly change it to level 0, which is the archived data, I should not be able to fetch any data because I don't have the information. Now I'll change the identity to the older identity and I'll use the same level 0 and P of 0, which is the old identity. And if I send a request, I should be able to get the old data. So for the asset 5, we have four transactions here. Now if I change this archival level to 1, which is the new data, I should get nothing. It's just as expected. Thank you guys. If you have any questions, we can take it from here. Sure. Teja, I'll be requesting you to pull up the thank you slide so that if there are any questions or any offline, any contacts are required, contact with this email ID, we can share the details whenever and whatever it is required. So any questions, please let us know. We have shared the presentation in the event. You can take it out if you want to have a look at the presentation. Thank you. Anyone any questions over the chat also? Please feel free to ask. We can take it offline. So Teja, one question has been asked that how is it different from ledger staff feature in the latest version of fabric apart from using IPFS? Difference between ledger snapshot. Yeah. Okay. Ledger snapshot only allows us to onboard a new peer to the organization from a specific block, which was not there earlier. If you compare it to the older versions of hyper ledger fabric, you will be able to onboard an organization from the Genesis block. So the disadvantage of that is that the new peer will be having information from the very starting point of the network. Let's assume you have a network which has already so many number of blocks, like thousands of blocks. And then if you onboard the new peer, it will take a lot of time for the peer to get onboarded and then outdated with the latest block information. So ledger snapshot will help you with reducing the time and effort. Sure. So Teja, I think we are done with the time. So thank you again Hyperledger for giving us this opportunity to share this idea. Thank you all of you. Thank you. Have a good day.