 This meeting is being recorded. Okay, hi. My name is Ezra Okena. I'm one of the Aparaja community members. I'm from Kenya, I'm from the Aparaja, Kenya. Today, I decided for us to like come to know Aparaja on the development perspective's end. So, we are going to, I want to start with an apology from David. David Postwell, we spoke there that he told me that he would be able to attend this meeting because of the difference in time zones. And for those who are aware, he's based in California. So, it's, I think it's, it's late over there. I think it's almost midnight, yeah. Past midnight, so for that you will excuse him. Secondly, we had a precursor meetup late last year around Christmas. It was a more theory, a theory presentation where we, we learned the project that are under the umbrella of Aparaja. And today we're going to cover one of those projects which is Aparaja Fabric. In today's meetup, we're going to cover on how to install the prerequisites to develop on the Aparaja, or to develop a Aparaja Fabric network, setting up the development environment. The five structure of the Aparaja project, we will try to simulate one or one a network, a private network using Aparaja Fabric. Then at the end of the event, we have a site price community gift for those who are within a loop are aware. I think some of you have already, might have already had an idea. This, the gift normally happens annually. Also Aparaja community has events and the other amazing collaborative projects around it. Yeah, Fabric is one of them. So to start with for those who don't know about Aparaja, Aparaja is an open source project that is trying to solve the enterprise challenge where enterprises can be available on-chain on a private network. And also there are bridges that bridge the private networks, the public network with unlimited access to the community. So that's basically why Aparaja Fabric is, it's supported by IBM and the contributors. So to start with, we're going to start with installing the prerequisites to develop Aparaja Fabric. So if you have any question, feel free to type it in the chat section, we will answer them. For the one who was asking, if you are going to basically use the test networks, it's true we are going to use them for this one. But also we will, I will give you guidelines on how to create your custom network. I'm not sure if time will allow, but if time will allow, we will try and simulate our own. The platform we are going to utilize today is the, it's Rhinox, Ubuntu Flavor. For those who are running Ubuntu 16 and above, I think you would be able to follow along with me. For those who are learning lower conversions of Ubuntu, I think for you, you will, maybe you can have some hiccups, but most of the, most of the commands should be able to run. Yes. And for those who are running on Windows, it might not be possible to like, follow along. Ah, you're going to be able to, any one of these person of nature, will listen to you, will listen to you. Kindly, if you want to speak, you can raise up your hand. And if you are not speaking, please mute your mic. If you are not speaking, please mute your mic. Okay. Yes, you can use the message, if you want to talk with your hand, I will unmute you. And wow, I'm sorry for those who cannot like, hear me well. I'll try to slow down and try to be a bit more audible for you. Okay. Here we go. We are going to, okay. Here we go. For the Ipareda prerequisites for you to build on an Ipareda platform, you need to have some, you have to have like a ton of packages installed. So I think, I don't have, I don't have, I had presentations for this event, but after evaluating what we are going to cover and how we are going to approach it, I felt like maybe we should give it another approach so that we can allow everyone to like experience real time development process of the, how you can develop on your own, how you can test out things on your own, how you can try out things. So for that reason, I'm going to like use the, I'm going to use VS Code. I'm going to type, I'm going to make, I'm going, we are going to type along. We are going to like utilize this platform for those of you prefer using the terminal, you can use the terminal. For those of you who want to use VS Code terminal, you can use it, feel free to like explore any possible avenue to learn this and try to develop here. So first things first, before you start developing on, for Ipareda Fabric, you need to have certain, softwares and script files installed into your system. So first you need to install Cal. To install Cal for those who are running on Linux, you normally use the, there are a ton of ways to install it, which are available. You can Google them, but the most common one is their advanced packaging tool which is APT. You can install it by typing in to your command to do after installing Cal. That should install for you Cal. I think also there are more instructions on Google, you should have Cal. You should have Docker installed on your system. To install Docker, you should have to install Docker. I can do that. That's the command to install Docker. I'm not going to install it because I think I have one of the versions installed. Yeah, I have one of the versions installed. Thirdly, thirdly, we need to install just a minute. Sorry for keeping you waiting. Yes. You can install Docker using this command, sudo apt install Docker. Then you can also, you also need Docker Composer Compose. You can install docker-compose. Here is the command to install that. For those of you who want to follow along using the Hyper-Edge Fabric documentation you can go over to the website and check that out. It's available how to set up your environment. That's the command to install docker-compose. Also, you need to install Go. Hyper-Edge Fabric is still using Go. So for you to run it, you have to have Go installed on your computer. You also need npm not installed on your system. There are available resources online on how to install npm, you see npm package npm installation procedures. You need to install Node, you need to install Python 2.7. For those of you who are using Ubuntu 22, Ubuntu 18 and above, they migrated to Python 3. So you either have to downgrade it or install Python 2 alongside Python 3, which is possible. There are procedures on how to install those ones. Yeah, those are the prerequisites you need for you to develop on Hyper-Edge Fabric. So if you have any questions, any questions, you can check. Or about the voice I'm using, I'm using Linux, I'm using Ubuntu Preva, yes. On setting up the environment, yeah. The second step is on how you can set up the environment to like run this. We are going to use the commands, I'm going to list here. For those ones who want to follow along with me, I'm going to help. For those who are trying to install the packages and for those ones who are still trying to install the packages, trying to set them up, I think it's not that hard to install with the correct internet speech, the same with Docker, with Docker combos also, and then take some time to install. So I think I will take questions in the meantime as we like, if those ones who are trying to install NPM and Python or trying to downgrade Python 2.7, yes, also you can develop, you can do hyper-register fabric on Windows, you can go to the Linux app system in Windows, Activate it and install Ubuntu. I think that that will give you a chance to like develop hyper-register fabric on Windows. Yes, for those who have questions, I'm taking questions you can post them over on our chat section, yes. So, because this recording will be available after this meetup, you will find it on the hyper-register YouTube from channels. You can go and revisit some of the concepts that we're going to cover here. So just a recap, you have to have kind of installed on your laptop, Docker, Docker combos, go NPM, node Python 2.7, then now we're going to set ourselves up for how to download a script, how to run it and how you can start developing on hyper-register fabric. So the first thing is we are going to manage our Git commands using the foreign command. I think I'm going to type it into our chat. I'm going to type these commands to our chat so that they are available for everyone so that you don't need to struggle typing them from from the keyboard from... Okay, okay, I will try, I will really try to... I'm going to really try to be a bit slow, yeah. Those are the commands we're going to use. So you can think for those of you. First we're going to change our keyboard or the CRF. You need to set that to false. We set that to false. We also set the wrong parts to true. This one is going to, for those ones of you who may be not be aware of the commands that we are typing in now, this one is going to handle GitHub has some default links, default ring-length. Some parts can be pretty wrong, like the part to access an online source can be very long. So sometimes you have to tell Git that one of the parts we are going to follow might have wrong characters and for that you have to instruct it what to do. So for this case, we are telling it, if you get wrong parts, it's okay, go ahead. That's what we want. So from here on, I think you will follow along with me. The first thing you are going to do is to make a directory, which is pretty much easy, make a directory, you can name it any name you feel comfortable. For me, I'm going to name my hyperranger. So then I'm going to change directory to that directory. Then to check it's empty. So after you have created the directory, you are going to change that directory, then you are going to get this script from this link. We're going to just copy and press this ring here. Then you press enter. I think we have a typo. I think we have a typo. So we have a typo, yes. Once you grab that typo, I am going to copy and paste this to our chart section. Copy, there you go. It will start downloading that. Once you have downloaded your files, you can head over to that directory. Once you are there, you find these files, fabric samples. Once you are into those samples, you can change directory into fabric samples. Yeah, yeah, there we go. For those of you who want to follow through, the first thing you do is you create a directory in one of your folders. You can create another one. So we created a directory called hyperager. We crowned this receipt, repost into the hyperager folder. It downloaded fabric samples, which has these files. Once you have those files in your local computer, you can change your directory to, change directory to, no. In the terminal, you change directory into testnetwork. Testnetwork, then you can ls that. Then you can ls that to make sure for, we are using hyperager version. Not sure of the version. Let me confirm the version. And we are using, I'm using the latest version. Let's try to see which version it's downloaded. I'm using the most recent one, version 2.4.9. That's the version we are using. 2.4.9. We are not using version 2.5. Just a word of advice for those who are new, or maybe trying to find their way through. We have different versions. For me, the most stable one is version 2.2. That's the one I'm using for. My projects and the other things I'm doing, yeah, yeah. And for those who are into security like me, version 2.2 offers you diverse development capabilities, which are pretty much stable in every aspect. For someone with exploring, when I started off, I didn't even know about versions. It was, what am I trying to do? Then I go out there explore. But once you go into production, you are not going to have like, as much as you have the freedom to use any version you want to use, you have to like know through the faces or through the stages of versions, what does the present one offer that the previous one didn't offer. That gives you the power to know or to decide what and how to do to manage certain aspects of development, like what does my project need? What are the security programs I'm going to use? What, how is my network going to be managed? How many organizations do I have in my networks? How many channels do I want between the organizations? All that stuff you have to like really understand all those, all that infrastructure comes together infrastructure comes together to be a secure, reliable network for your business. So our next talk, yeah. You change the directory to test that network. This is a test network for your pareja. Initially it was called my first network. I can remember, build my first network. Build your first network, yeah. That was the name, then it changed to test network and that's the current name for those ones who are concerned about the file rights and other stuff. You can LL and see what can I do with my files for those of you who understand how to give permissions to files, how to like, which files do you want to like write? Which ones are you like a bit rigid that you don't want to tumble with? You can disable like their, their right privileges. You can just keep them as, read only that protects you from, even if you end up in the wrong file, even if you try everything, it can't edit, that protects you not only in the pareja ecosystem but also in your development, if you are a programmer and you're working on multiple files and that one file that normally people say, type that one, we are all in fire, you see. If you are, if you have developed in a while, let's try one file, if you touch it, you have to like start over again. Like me, when I started developing, I was really scared about editing files. So sometimes you can, you can, there are files that you don't tumble with. So for this one, you can learn, then you can change mode, you can try different stuff if you are good in Linux, gives you more freedom to handle certain things. So we are going to check what is in our network scripts. It might not be very visual but I think you can see, let's see where it starts from. This is the script that you used to like, this is the script that brings up I pareja Fabric Network for testing smart contracts. So this is the script we are like, it's your boilerplate. It's EIS we are like, it's your I pareja Fabric L world. The same way you, when you're learning a new programming language, the first step you, the first thing you, the first program you write is Iro world. And now for the I pareja Fabric Network, this is your Iro world. It's not really an Iro world because normally Iro world is a bit simpler, smaller, but that tells you the power that comes with it. I pareja Fabric because if this is the Iro world, then the real thing is the real thing because it gives you freedom to manage your consensus, to manage your security, to manage your nodes, on you manage how your nodes will communicate. Nodes will communicate. It gives you a chance to write smart contracts within the ecosystem using Go, Java and JavaScript. Or it's your choice, which one to like write your chain coding. Or and by the way, chain code is the fancy way of saying smart contracts in I pareja Fabric. So for those of you who are into the web 3 space, chain code is like saying smart contracts in AVM. Yeah. Yeah. So yeah, we have these, this tells us which, which it like gives us more information of what this script does. We have also the docker versions, the docker files going to use how to generate. There are also other aspects that comes into development on the pareja Fabric, which among them is the Cryptogen. Cryptogen is how the network identifies entities within the network, how it authenticates the devices on the network, how the genesis block is created and how it's obtained through the network, how peers within the network communicate through the set. They are okay. I want you to get this. Within the pareja Fabric, there are different aspects within its ecosystem. First we have organizations, the main entities within the network. For instance, there's the IBM and Google. Google are two different organizations, but they are resources that they share. Like they are available on Google, they are not available on IBM. So they can exchange resources between the two organizations. Again, within the two organizations, there are other organizations which are peers to this organization. And these organizations share common regions from where they share common source of truth. That gives that the path through which they share this information and resources, it's called a channel. And within the same, within these organizations, there can be different channels. There can be channels between organization A and B. And if C comes into play, there's a communication between A and B, A and C, B and C, which are independent of each other. But for the resources that A and B share, there's a channel for that. But for resources that are shared between three different organizations, they are a different channel to that. Then the current state of each organization, where if a resource comes available in one organization, the other organizations don't know, they can use the one state. The one state gives them a chance to get the current state of the chain. Yeah, again, also there can be, people can be asking questions where they get this information from. And that can be made available through the transaction log, where it keeps track of all the transactions that have happened within that organization. I think it's all about creating a common source of truth using identity, using cryptographic algorithms to make sure that the information shared between those, within the network in a way that there is trust. Someone is asking if I can actually share from the start Yes, I will share that. I think after this meeting, this recording will be made available. You can go back and check that one out. We'll see, you can check that one out and know what we have covered. Or we also have the config transaction generator. This one in full is the configuration transaction generator is a tool used to create the genesis block. For those of you who don't know the genesis block is the first block within the blockchain. Like if today, the day Ethereum started, there was the first transaction on that block, that's the genesis block. It's the first block within a blockchain. Yeah. It uses the config, yeah, more file. Thus, those are pretty direct because we cannot just be on the scope of this video because that's a big technical for us to go into. But I will also take you through the file structure of these. So let's try seeing this file structure. Yeah, now you're going to try to simulate this network. Okay. We might not be able to actually simulate or to bring up the network because of obvious reasons which I will share with you. One of them being for those of you who use Docker locally, sometimes Docker or I run on my machine, I will try bringing up Docker. It will freeze my computer, I think, yeah, to freeze it. So for you to simulate the network, you have to generate the network using the command where you run the script then you generate the network once it's trying to ask for, yeah, using Docker and Docker compose. It's trying to ask if I have Docker and Docker compose training. I can run Docker and Docker compose, yes, but if I run them now, will you try to run them in one of my, what? I will try to run it in one of my online resource computers which I don't want to use for such tasks later in this video or in my next videos. But for today I think, if I try running it, it will freeze my machine. So you have to bear with me. So we have app, to app the network, you use the flag app, which brings up the Fabric Order and PSNodes. And when you bring up the Fabric, we don't have any channel created. We are going to have just how the PS will be stuck in the network, but there will be no channels. There will be no communication between one node and another. Generate, it's a flag that I think that generate flag, your question is best answered in the test network script. Okay, I think for the sake of time and what generate does, what generate does, it's when you tell this script to create a test network from certain instructions. Like when you tell, okay, you tell a program to use the instruction that are offered within the script to generate an instruction stack for certain tasks. So for this case, for this script, for those who have been, who have distracted the script and gone over through it, you can realize that when you generate using the script, it creates two organizations and two peers for each organization, but it doesn't create channels between the organization and response specified by the creator. So basically what generate does, it creates two organization, two, let's say, two nodes, which have two peers each. Yeah, that's fine. We have, we can bring up like the network using the flag up, we can add the script and tell it to up the network, we can also do a two, we can shut it down also using down and also like you can try to, you cannot generate two networks. Or at once without shutting one. So you have to like shut one down for you to create a channel, you have to up and create a channel. Like as I told you earlier, when you generate a network, it doesn't have channels. You have to specify the channels and create those channels. Also like you can update the channels using the test network script, but also you can create your custom channels using your create channels and also deploy them over to your script using deploy to see. And for you to like bring up your network, you have to run the script and up the network. It will require now for you, it will use docker and docker composer for you to run, but for today because of the of the processor speed of my computer, the resources that docker requires, they really suppressed the ability of my computer. So basically that's why I haven't started it, but it's possible that I can start, but it might lead to other problems. Yes, you are running the first network, the file structure, I think I shared something on that. Also now, yeah, yeah. The surprise community gift, this one is available on, let me, one of that is, this one, yeah. For the surprise gift for you, one is that the, I put in the mentorship program is here for 2023. It's available, you can head over to the ring that I've shared, you can check out the requirements, you can, you are going to get great mentors, we're going to guide you. It has very great, it has really good advantages for you to like explore, learn, learn and maybe, end up working one of the projects. Yes, because I prioritize an open source platform where if you come with a good idea, there are groups that are willing to support you to help you grow and help you learn. And by the way, I might be not a very good orator, but I know with the terminal, the, the, call the editors, there's so much that one can do. You might not be able to like share about, but you're able to do a lot with the hyper-region community because they have a ton of projects out there. Those projects are made by people like you. People are willing to change the world. So it's a time to like get people who share a common goal to come together and work together. I think for those who are interested in this, you can check out the link, see what it has also. Secondly, I wish you were all from Kenya because for our Kenyan community, we have like, I have, I have, I have stickers, I have pens, I have t-shirts for the Kenyan community, which I will make sure for those who are present, and those who are unable to attend, who are willing to get those t-shirts, I will try as much as possible to communicate with you in our community channels on how you are going to get them. Then again, I'll try and make this more graphical. I, I had a graphical presentation for this one, but I traveled a little bit, I had a graphical presentation for this one, but I traveled and I couldn't travel with every resource that I had for this event. I, I had planned to get this postponed, but because of obvious reasons, it was postponed from Feb to March, and I didn't want to postpone it anymore. It was supposed to be hosted by someone else, but I had to take over because it wasn't available this week, so I think we will have a pro max session in the near future when it's available. Yes. For those who are asking about if they are available related projects, they are, they are a ton of them. It all depends on what you want, but you can head over to the Hyperagia Fabric website and try to check out the project. They are community groups, groups, projects, and I think you're going to like learn big time course. We have like from version one to version 2.4. We have previous events. Let me share with you coffee. I'm going to share with you the, we have the releases, the related projects, the specific related projects. I will consolidate a list for you all and share with you all the related projects to the Hyperagia community. Yes, I'm going to want to, I think, the dimulted one. You can raise up your hand, you can, yes, you have the freedom to unmute yourself. You can ask a question, make an inquiry.