 I'm sorry, I was muted. I was saying you're live. Okay, thank you, Dave. We, the Hyperledger chapter, have a monthly meeting of the most open meeting of internal discussions about the chapter, okay? And besides that, we have some policies that we follow, especially the policies where all the people here are welcome and accepted in the way they are, and we also follow a policy of antitrust. For the knowledge of all these sessions, we are being broadcasted live on YouTube, so any information that is discussed here will always be public and restricted. Our next meeting will be on the next Monday, 8.30 p.m., in the same address that you entered today. Everyone is very welcome. We must close the first semester, talk a little bit about the topics that we are discussing, about what we intend to do in the second semester, and, as already announced, in July, we will take a short break and return to our regular schedule in August. Okay, guys? So, once again, all of you are very welcome to today's theme, which is the mini-fabric. We hope to see you in the next meeting, on the next Monday, 8.30 p.m., and I would like to pass the word now to Marcos to introduce our guest and start the day's exhibition. Thank you once again. Marcos, it's up to you. Once again, thank you, Renato, for the partnership. Thank you, David, for your support. Today, before we introduce our speaker, some details of our presentation, those who have any questions to ask the speaker, please write in the chat, Renato and I will review it after the presentation during the panel. Today, it's an extremely important theme, especially for blockchain developers, who need methods and quick protection tools to learn quickly. It's an extremely interesting theme that will be presented by him, who is a blockchain developer, ethereum, Solidity and Hyperledger Fabric, an associate researcher from Ecolemes, an ITS-RiU-I researcher, and an IT-RiU researcher in computer networks in the UFPA. Now, I know Alain Veloso, my friend, he's with you. Welcome, Alain, once again. Thank you very much. Good evening, everyone. I'm glad to be here. Do you have any questions? Yes, everything is fine. You can answer. Perfect. I'll share my screen here. Yes, yes. Perfect. Good. As I've already presented, I'll try to talk a little bit quickly. I'll try to talk a little bit about the Minifabric tool. It has the intention of being a tool that can start quickly in the instance of the Hyperled Fabric network. This ends up being very interesting, especially when it comes to protection and fast development. We have a tool that does this quickly for us, and we can see that. Well, from the moment we have contact with it, we can see what it proposes. A quick introduction is what Minifabric would be. Well, with Hyperled Fabric, it became, I think, the main... one of the main platforms for the blockchains installation. But its traditional installation requires a great disposal to do this. There are a whole series of processes that are necessary to do the traditional installation. So Minifabric comes as a tool to minimize the amount of configurations necessary for this. I think the first time we think about Minifabric would be a smaller version, but it's not. It's a robust version, with traditional methods of installation, but it minimizes the amount of configurations necessary to do this extension. And it's a tool that manages the whole cycle of a Hyperled network from creation to demolishing the network completely. And how does it work? Well, the main... let's say... tool to create Minifabric are the Ansible scripts. Ansible is nothing more than a tool that automates certain functions of TI. So it is used within Minifabric to make this automation of all these processes that build a network of factories that exist. And all of this is encapsulated within Container Dock that I think is... or became the main containerization system in spite of giving up others. It was very widespread, so I use it as a base. Both Minifabric and its components are distanced within Container Hyperled. So Minifabric enables the installation of networks, and these networks can be made distanced in a single... a single machine because of the separation that it makes directly. So instead of having a machine, it can have several nodes in the same machine and the separation of directories. Of course it is necessary some precautions that need some time to be in the same... in the same... in the same container, the same machine. And the resources that it provides to be used, both in the implementation of the network with a database of specifications to make the network in contact to operate the channels to make the creation, the authorization between other... other functions of channel manipulation. Operate and code the installation the approval, the confirmation among other things. Consult the transfer blocks and it returns a very simplified formula to verify the transfer blocks. It supports the private storage. It... in its own code it is possible in its own time to distance it is possible to pass as a parameter a database to be distanced which makes it very practical. It generates connection profiles and it automatically generates several profiles to use in folders for SDKs of Go, Go, Lang, Node, Python as well as to put some extensions for VS Code. This part I didn't get to move. Verify the methods of integrity of the network as well as the status of the network and it also has a very practical way of integration with the Hyperled Explorer and the Kaliper which is the monitoring of networks for the Hyperled. Well, when we take the Minifabric which is a network we have the whole process of doing that distance using the traditional methods. In the case of Minifabric in the case of a network for example, one that has two organizations each with two peers and each with one CA to be managed by another organization in addition to a channel which is an abstraction that is made in the Hyperled Fabric and the installation of Team Code, this has a whole process involved in the Hyperled network. But when we take the Minifabric repository to show the power of synthesization to minimize this amount of configurations right when it does the installation which is a command that it takes a script shell and puts it into a executable called the command line with Minifab. The first command that we show is to show that it is very simple Minifabup this complete network of two organizations with peers and coordinators it does this only with a command it goes up this network in a root with all these specifications in the case of Team Code it is a standard code that it installs which is the SIN, if I'm not mistaken that it is possible to make transitions of units from one to the other using the contract and to take down the network simply a clear up of course as we are talking about the same Hort in the same directory this will work, in the case if we need another organization another directory it is necessary to use this clear up so it takes down the whole network in addition to clean everything that has the installation of the network it has some requirements but it simply excludes a directory that it turns off these requirements and what I want to show you is this whole process of lifting a network this Minifabup it does all this process from the creation of the channel but it does everything in a way some of what I'm going to talk about is kind of string chat and this command of Minifabup with to lift the network of the organization, create a channel add a new organization this network and install and interact with ChainCodes why is it important that I show this to you because when it is developing in a very fast way Minifabup sometimes after hiding so many things it ends up causing problems that have no idea where it is so when you make a command in the case of Minifabup it gives a summary of the other commands that it is using along with the command so it is important to see this because when it appears in the log the error you already know exactly where you have to go to solve that particular problem so the first thing we will want to do is like that in that other network we will have two organizations each with two piers one CA and three coordinators to raise this network and to raise this network as I said before it is necessary to have a directory in this case the directory is separated for each of the organizations and in this case the specifications of this part of the network with the piers and the CA these specifications here so we create a file with these specifications just copy and paste these specifications inside the file of this file that is spec.ial and give Minifabup then passes the organization that will want to do that lever of the network that in my case we will want organization 0 to do this and passes the first address of the door in Minifabup we just pass the first address that it goes jumping to other doors in the case of the first the first or the 7000 so the first pier it will be in this door while the second pier of the organization 0 it will be in the door 7100 and it jumps to make the extension of the organizers of the CA so one of the most important things of Minimization that Minifabup has is that he has many many parameters standards to install the network for example the organization 0 is a standard information so I can hide it the name of my channel what I want to give to my channel it also gives a standard of my channel but of course it is also impossible to pass it through parameters when we use the match up another important thing that minimizes the amount of past settings Minifabup is that he keeps the context that is if we specify for example what I am working what I did the lever of the network in a channel called it will store these information and the next commands that I am going to do it will always do in this new channel and this is also worth any other information of the organizations, contracts all this it will do and will store in its context after raising the network it is necessary to create a channel a channel to do the interaction organizations in this case we will create the channel which is the standard channel which is my channel to create this then it does all the extensions all the process of extension to install the channel to pass the information of the channel it does all this and after that we need to enter this channel this is another command that is used MinifabJoy as I said this one if you use this command after having created a channel this information of context stored under MinifabJoy you always need to pass the information of which channel but of course if you need to enter another channel it will be necessary to pass this minus C after that we need to put the anchor pairs I think most of you must know what the anchor pairs are for those who don't know they are pairs that are known avoiding what knows all pairs a certain understanding that is if we do not need to know all pairs we must know the anchor pairs and to see these configurations after having raised the channel and put the anchor pairs just this channel care with the channel information that it generates a file of channel configuration and all the information of that channel are stored there and as the IP of the coordinators of the organizations in the channel in addition to the policies of the endorsement of the channel this file it is used to make the configurations of the channel and it is necessary to do another steps that I will not address here to do this after alteration it is necessary to do this update and inside the minifabric it shows these steps that are even very simple but one important thing to talk about these configurations is that the more more more information is being added in this network the greater this file is as it keeps only one sometimes it is impractical to manage only for it we have already created the channel now we will need we want to add a new organization to this channel for several reasons it may be that this happens in case we have added organization 2 with 2 peers to add this new organization as I had said before as it separates the director we will do it in the same way it is necessary to create a different director which is usually the case to create in 2 different computers and use bm to see how this process is how it is simple to do this network session it is interesting to do but in this case we will use the same the same host as previously just edit the specifications putting the information the organization's peers and then give a mini-fabric with passing the door as I am using the same the same host it is necessary to be careful not to overimpose the door as I installed 1 in 7000 this one will be in 7200 and in this case it is necessary to pass the information of the organization in the case of organization 2 as I had said the organization 0 it can be hidden because it is one of the of the mini-fabric although with this command I have started the network it is not yet connected to the channel this connection for this the mini-fabric it generates a standard file called join-pass to be sent to an organization in any way by email to add that channel to the network and in this case this network this node has not been constituted with the traditional method or even the bevel it is necessary that this file is built and is sent to the organization to accept this new organization so we have the join-quest file but when we send it to the organization that will accept our new organization it is necessary that it alter the name for this standard name of the mini-fabric the new org join request so it will make a command which is the command org join it will take this file and will do the whole process of adding it to the channel to the network and other commands that are hidden in this command org join I tell you to give this org join when you want to make a tutorial for you to see when it will start it will give you information of how many commands it will do to to make this org join this is one of the main benefits of the mini-fabric is that there are already some commands to do certain certain certain operations in the network and the channel and the community itself will see that you can add these commands to other commands and new commands will this is the case of the org join basically what it does is that in the previous process which is recently this this command was added is that that configuration file of join request we took it and added it of that file of the channel and then went down to the channel and did all the updates then went up the channel basically that's it in a rough way we added the organization on the network but it still doesn't know it doesn't know where the coordinators are and that is only one organization has information that that organization is part of the network so for the new organization has the knowledge of the network itself it is necessary to create the profile files within these profile files there is what is called endpoints and these information as well as the request to enter the channel it has to be sent to the other organization in this case to the organization in the channel after it pass the new organization put these endpoints inside of a directory that is the main directory or the only directory of my factory which is Elvars we add it inside this directory and give a import node that will import all these configurations for that node of the new organization but as despite it knowing where the information is the peers are not yet inserted inside the channel so it is necessary to join to enter all these peers inside the channel then if we want to verify that this this peer is there just verify that in any of the organizations within the group of organizations it will be there something that also minimizes the amount of past information is this command basically the the commands as he does this command classification this also avoids a lot of repetition in certain verification functions each one of these of these commands that you execute he does a verification before executing the command itself they these commands he he avoids that makes these verifications several times so this is one of the main artificial to minimize the amount of necessary configurations but a problem of this is that in certain situations you are executing a command a set of commands you can not find where the error actually happened if it was in the join or in the loading port now to install and interact with a chincode to install chincodes as I said the main directory is the vars there should be this bar here and there inside this directory there is the directory called chincode and there inside this directory puts the name of the chincode and in this case it is different from the language also puts in which language it is this command it is important to make this in the time when you are going to upload a chain a chincode automatically then it passes the information of the chincode and the language that you are going to use in this case we are going to show how to do the simple cc it uses a very simple command ccaf there are several commands which concatenate the commands in the case of the ccaf it installs the commit in addition to initialize this discovery is important because it seeks policy of endorsement especially for the contract these information are important to do some other operations in the future so after doing this installation with this ccaf it is necessary to go to another organization that is on site 1 in another directory and do the installation again and approve again so that there are no problems of disagreement when doing confirm some transaction this installation and approve it is necessary that the organization the other organization also does this approve and this discovery commits again so that the organization that does that installation can do part of the person who can interact with the chincode and to do the interaction with it is very simple we add a variable a certain value and verify to verify if this value is the value that was stored does this invoke taking the get this generally at least what I have worked I used this to do test to see if everything is working the network well how how the mini-fab is development, there are some limitations that we discovered in the ct blockchain which is a committee that I do parts that we do the network extension to use to do tests and we were using mini-fab which was the simplest alternative to do this, but we hit a limitation using all these commands which are standards of mini-fab to build the network and add new organizations to the channel we hit a limit of four we could not make a mistake we needed these steps to be able to add more organizations other than these four of us and to do the other thing that I recently discovered which was someone who discovered which was until Jax who sent an installation of chaincodes in javascript I had not hit any problem that I always used the GoLang and I think it is something that should be worked on in the mini-fab which is a problem that is having to do an installation of chaincodes in javascript and some considerations which is a very simple input door to do the installation of mini-fab it is a tool that is still in development but which has a lot of potential to disseminate the mini-fab that many people use but it is necessary for some configurations that occur inside the mini-fab which is necessary to explore a lot the script because there are some configurations for example if I want to do an installation of chaincodes instead of a majority it is for anyone this inside the mini-fab which is not there yet so it is necessary to have this evolution of documentation in addition to the evolution of the tool itself because one thing that happens is the evolution of the tool but the documentation many times it uses a very old command and it works the same way so it is necessary these contributions for the approval resolution one very interesting thing that I noticed inside the mini-fab that I do not know if it happens in others is that the person puts the issue to solve things but the person it solves the issue it is more difficult to see a person putting a problem in the repository in the next steps as I do part both of the CT and in my research laboratory we develop a lot of work with the mini-fab so we are researching more the mini-fab both with other network formats formats only for the mini-fab using the integration with different methods of installation like the hyper-led-fab it gives a tutorial to do the fabric to put together a mini-fab but it does not have the counter to put together a mini-fab with a mini-fab name and a mini-fab so besides making comparisons with other methods of installation which is something that my team is developing which is to make this comparison with other methods of installation of files is to do with each one of them for the mini-fab to come out in this matter of ease but it is interesting to see other requirements to talk a little bit about some of my associations in TS as I have already said in the UFPA I do part of two research groups which is GERCON which is a group of computer networks and multimedia communication which is where we do these research these methods of installation and it is also worth mentioning that it is part of the artificial intelligence laboratory PECADA there in GERCON we have a partnership with a company that is Amatins which is a startup from here in Belém and he uses blockchain to be able to deliver sustainability to the network of business, especially with agricultural producers the CET blockchain which is this technical committee which is coordinated by INP which is to be able to develop the blockchain here in Brazil to be able to do these tests with a network a little bigger than only these domestic networks so we will have a network with several institutions and it can be tested which will be with the Fabric I leave the invitation to you which we develop and also research especially bibliographic research to provide these information for other researchers who are interested and this is my social networks speaking on Twitter Instagram on Facebook and on LinkedIn and Alain Beloso on GitHub I would like to say some thanks which I think without these people I would not have been able to do this presentation which is Billy Pinheiro who is the uncle of Amatins who inserted me in this world of blockchain, he showed my effect to us and a member of my team which is Murilo who does all this research especially of the official installation methods of HyperLED Fabric these are some references in case you want to access which were used to build this presentation that's it, folks Alain, thank you very much can you share later with us this presentation so that I can put the link of this reference for people to look for these details and these special references I like it Before we start I know that Marco will start with a question as always I would like to make a small invitation for you if you are interested I talked to a doctor from Campina Grande in Paraíba who would like to talk about mainly this issue of networks and distributed systems I really liked the work you did if you could expand the work that we are doing about the blockchain and the goal of this doctor is to work with a distributed network and I really liked the work that you are doing I think there is a lot to see and especially you pass your experience to him to develop this in a work that he can bring back to the community Alain, thank you and let me pass now to Marco because I know that he always has a question in the manga to do before the people here in the community Today I have several questions you will make my first quick in the characteristics of the mini-fabric which of them did you like the most in your development journey I think this simplicity of doing several commands in a single command so I came from a blockchain background not permissioned so for me it was very simple to do this extension of a hyper-led fabric network that when I started to see I started by non-permanent I thought it was super complex so how I was working with a DAW in time I preferred to go to the ethereum but then I need to return now to the doctor because of my research and that was very simple to do this installation so the group, together with commands to do installation of networks using the fabric method in a quick command if you want to give a mini-fabric it goes up a whole network to do it I'm going to start here I have a question I'm going to start with David there are several questions David Faust is a hyper-led fabric specialist naturally his question is a little technical he asks if the flux deployed to the chain code that will install the public omit has to be executed to each change of the chain code if it already uses the chain codes then it has the ability to go up with the development mode let's start with the first part the first question the first question of the deploy of the chain code package is approved commit it has to be executed to each change of the chain code yes, it has to be used to each change of the chain code always inside the documentation of the mini-fabric it always uses to make updates it gives this CC app and makes updates but of course in other organizations it is necessary to do this process too cool it uses the chain code as a service like an external builders I don't know how to say I don't know how to say if the PIAs have the possibility to go up in dev mode I don't think so at least in what I explored it doesn't have this possibility its dev mode is the what it does for production let's say so let's move on to the next one Jack Salvin sorry if I was wrong he asks if the mini-fabric is still being maintained on the GitHub because there is no activity and apparently according to Jack Jack's version 2.4 is not working with Node yes, this is a very interesting thing that I have tried to contact to try to answer some things I sent this I tried in that old chat that existed from Hyperled it was difficult some people did it was very frequent but it still has little how can we say it has little flow to keep keeping the mini-fabric and in the case of Jack's that I was exploring recently unfortunately I couldn't continue with the exploration of Node JavaScript which was a problem that I had not yet seen because I had never worked with JavaScript and it is very interesting to put it in an issue to see if people respond instead of not next question is from Anton asking if you have already looked at the micro-fab I have already listened to the micro-fab but I didn't get to move it I only saw it but I didn't get to move much with it let me ask you a question if you had to choose I already know the mini-fabric for a while and I understand a lot of limitations but if it were for you to choose what would be the function that should be with the urgency put into the mini-fabric so that the development as a support tool would help us advance with the blockchain I particularly with the mini-fabric the way it is I don't have many problems with it I don't know other people for it is very practical of course for production it is an alternative but in the way it is and I don't know if his proposal is to become something of production but it is very practical in the way it is I think a problem that I have a lot with it is the documentation that they are disabled they don't follow new functions that are integrated with the default of the mini-fabric that is their documentation this is a theme you touched on a point that for me is a point that makes you want because in a way the mini-fabric walks side by side with the examples that are developed with the demos that are developed and this is a very chronic problem within the Hyperled there are some examples well defaced basically what you learn is trying to do some of the demos that are there there is no separate documentation like the Hyperled Fabric talking only about channel only about channel talking only about building the network talking only about the chain-coach this doesn't have it will take time to learn what is there the mini-fabric is a business that takes advantage of other things but it was not made for that I'm seeing here on the discord channel there is no a specific item of the mini-fabric there are several I think there are I think in the labs down there let's continue well we don't have a clock of someone this clock is cool because it's from David from David Reis our specialist saying that his presentation was very good it was cool to see the operation Jacques Salve asked a question that we have already answered if the mini-fabric is appropriate to build to manage a production network how do you imagine finishing the production in mini-fabric migrating to a distributed production network excuse me Marcos, could you repeat? how do you imagine a migration if you finish your production and then you imagine how do you think leaving the mini-fabric or suddenly using the mini-fabric for some elements if you imagine putting it in production it's a discussion that I think until Billy raised what I commented there are different levels of need of organizations for example there are organizations that are completely possible to use the traditional methodology of the hyper-led-fabric there are even I think the system the most complex installation that is with Bevel I came to look I don't know if you've already seen because there are a lot of pre-requisites pre-requisites are giant but there are institutions that need this because it facilitates a lot distanciation of different hyper-led-fabric and there are smaller ones that need this ease but to be part of a network that already exists so this type of tool is possible to enter this type of small organization that doesn't have a quantity of human resources to be able to enter this network and it's very simple just use a few commands and it's already part of the network I think it has a lot of potential but I think it's a mini-fabric but I think it's still a little explored very cool David, who is not David Faust who unfortunately already had to enter gave congratulations for the presentation and asked if you could share some case where the mini-fabric was used to solve some problem in this case we are trying to use a CET to build a test-bed but we always dismantle some impasse of the mini-fabric that we are solving but it ends up being stopped because research in Brazil is a little complicated so there is little financing so there is a lot of work that we had in this case in my team I forgot to comment but he is no longer in my team so I can't count on him anymore so I think we lose a lot of it so it's complicated just by contextualizing the invitation was made for Alan and for Murilo Murilo is here so I'm grateful that you can be here talking to us could you open a little more about what you are doing? at the beginning we were in an exploratory phase we made an evaluation of tools to build this test-bed and the mini-fabric was the simplest in a presentation we already knew how to build to be part of a network so it was the warmth that followed to make this construction the test-bed case it needs to do a a contract test and just stay there in that environment who there ends up not mirroring what would be something in production so having this test-bed having this experimentation environment it's possible this environment to make this test in a larger environment a larger scale thank you very cool well, following this line Jeff Sonsousa is giving you congratulations and asking about the difference of performance and I also follow because you said that there is the possibility of integration with Caliper if they used it or if they did some other test of comparative performance in mini-fabric and using the normal fabric I know Jeff Sonsousa and I will indicate to make a presentation about Caliper that he explored a lot of this using a mini-fabric and he has a great knowledge about using the Caliper together with mini-fabric Jeff Sonsousa you are already climbing to a meet-up with Caliper you are already kindly invited very good here there is a point that I wanted to discuss that you commented about the deficiency in language to deploy how much impact today in your project this monogamy in terms of language this was a problem that I recently saw that Jax sent me an email about it that he had this problem with the mini-fabric that he couldn't deploy with javascript but I had never taken javascript to deploy to fabric to make a code for the fabric then I went to test one to see then I was making a mistake I think it's a problem in their script to deploy with javascript I didn't get to see the background even one thing I'm seeing I wanted to take a look I think it would be interesting to see that including Jax is commenting that up to 2.3 he can use 2.4 in advance that doesn't have a problem he had even put an equal question it was a problem with the fabric 2.3 no, no, in the mini-fabric to use the mini-fabric from the version because the mini-fabric follows the version of the fabric yes I thought it would be confused by what I was going to say I thought it would be in the version of the hyper-led fabric but it was in the mini-fabric that's it I wanted to ask if you can run away from the topic but not so much this is a developer ethereum solidity what are your comparisons passions preferences between fabric and ethereum I think there are two two different worlds they are two different blockchain technologies but they are with a different purpose ethereum because it was the first that I had contact so I have more knowledge for ethereum solidity that's one of my repositories for contributions of solidity and now that I started to develop my goal but I'm thinking of emigrating to Java because there are some facilities that I can take advantage of some things that already exist to make my development but the fabric I think the fabric the hyper-led fabric in general I think is very versatile what is possible so we have a range of configurations that the blockchain is not permitted is not you have in this case would be private but to build fabric for organizations and questions that need this but you can't do it and it's not permitted to take it it's very very good to have this control in a certain way this control over the network this control among others but I find it very interesting and I think I see it very potential in the fabric in the hyper-led fabric in a project of the hyper-led as a whole and I hope it continues like this to contribute to our excellent I think that's it Marcus for today friend, thank you very much it's very interesting I think we rarely have so many questions a lot of people are interested even more about the technical theme absolutely technical and it was cool thank you very much Renato, thank you thank you Marcus, thank you Alan your last words please I just want to thank you for the invitation for Marcus I had already seen him there I'm sure when he appears there and I thank Renato I try to participate in the chapter of the hyper-led but the meetings usually take place in the second and sometimes I have a meeting of planning at the same time then it gets complicated to participate but I'm very happy to be here and I hope to see you soon and be able to contribute more to the chapter just remembering next Friday at 6.30 we have our internal meeting of work where we talk a little about what we're doing all are welcome thank you once again for the presence and see you next time