And: Uh, okay, hello to everyone. My name is Andre. Uh. Do you see my screen?
Victor Gridnevsky: We do.
And: Okay, Uh, Thank you. So I I suppose that you are. You will hear me as well.
And: Uh, okay, uh, so um, I'm. Hurry a little bit, so i'll try to do it as fast as possible. So, uh one of the uh last requirement to provide to to To finish this internship is to provide uh,
And: uh, but let's Let's finish this um b b bureaucracy. I I think that, and I hope that uh this presentation will be valuable for for for most of you, if someone is not, uh,
And: if if someone done doesn't want to to to to listen it, so please his job, because this is not a required uh okay, So uh going back to the presentation. Uh uh, this is the Pdf.
And: On the left, uh, on the right side. So let's start with the presentation. Uh. So uh, this is the the title, so the title of the Um. The This uh task which I was uh, or project which I have been working for the last few a few weeks. It was the uh, just about implementing the uh uh library uh for Hyper ledger uh for the first session,
And: and there are some metadata uh like uh, my name is, and my my surname, and the mentors and the Hyper Ledger Project. Okay, What's what's next? Uh? This is the description.
And: Uh, so uh in general. Uh the the project was about uh implementing uh the the external uh library uh in C for for uh for Iraq to handle the Api calls. And uh,
And: uh, okay, What's next? Uh projects uh project objectives. Uh, honestly, I I I use the one of the template of this uh slides. So it was one of the the. This is one of the topic of the one of the slides. So I just copy and paste this, and you know, uh, so what out the project the object is for me. I need to feminize with the You know how code base
And: erez agmoni, and learn and modify, if necessary, uh protocols, because I haven't I have never been working with protocols, so I had an occasion to to learn how it works, and how it looks like one hundred and one.
And: Uh, what is this? The protocols? Now, I think that i'm much more familiar with the proctopath after this. Uh, after implementing this project uh what's nice is Implement the C in the library for Hyperlger. That's why I said, you, they are uh get to know architecture of Iraq, how it works
And: and provide some documentation and and examples. Ah, okay, Ah, yeah, Project very variables. Um implementation. And that's usage examples. Uh:
And: provided a few slides on how the the library works. So uh, uh, in in a couple of minutes I will show you the example, and uh, I will try to to to provide a short demo. How it works uh? And the documentation was is is updated, was updated.
And: Okay, So, as I said before, um, I think that it will be better for more available for all of you to to to focus more on that code rather than the the slides. So uh, let's jump into the code.
And: Yeah, I will start from the you Knowah cli module, which is not my module which I i'm not working. I was not working on this module. But I started uh from this module.
And: Yeah, And so I will start with this one. So this is the you know uh the world, the repository. This is um uh this, my branch.
And: Uh
And: I use the queue to as you can see uh, so uh as as a first step. I'd like to show you the flow of how to create the example Transaction at the uh, some Some, some commands to the transaction, and um uh, at the signature to the some transaction. Then sign the transaction, and then send it to them, eh? Itoh! Hut! So the iter has server. Uh, so I will go, and I will go through the will, pipeline, or maybe not pipeline, but the the full flow of the
And: you know, see a lot, because I think that this is quite valuable. Um. So as most of the C uh projects or programs, there is a main, of course, and
And: and, as you can see, this is a quite long I mean a source file, and in my opinion it could be um
And: um. It could be uh refactor a little bit, because we can. You can split it into a smaller um. Smaller functions, a smaller piece of codes, I would say to to
And: it, might be, speed it to to smaller functions it just as a
And: erez agmoni. So I think that's we can simplify it, or because when I was reading it for the first time. Honestly, it was quite a hard to read, or even hard to understand. Now i'm. I'm much. I think that I understand all of these lines but one hundred and fifty.
And: Uh yeah, it's a lot. Let's let's uh focus on the crucial part of this uh this source file, and there is an interactive Cli and I will show you how how it works, and there is a run. So interaction uh interactive cli. I go to the constructor of this.
And: Uh, it's uh in texting
And: My, My My computer is super super slow, but I didn't I haven't I configured the you know
And: the computer where I have uh more more perform my computer. So uh, honestly, I need to use this one. Uh: okay. So in this interactive cli we have it a transaction. Cli: um
And: field. So let's go here. And this is the first implementation of a user of of a transaction in in Iraq interact interactive transaction Cli: So let's let's copy and paste it, because I will show you in a in a few minutes how many implementation of this such a transaction is,
And: and is so that's supposed to Let's focus on, for example, the first method pass at a asset quantity and go to the source uh file
And: uh. So here,
And: and as you can see uh, the the execution of this method. It's uh one of the value of the common handlers, which is the common handlers, is, uh
And: uh it's a an orthetic map. So what is this standard uh container of C. Uh, like dictionary in Python? Something like that, and let's go to that Um.
And: And these commands. So command handlers. It's here
And: here and
And: and here. Uh okay. So uh, we have a handled pars.
And: Um, and the first argument is parser map. Uh. And now we have this find in handle map and the parser. And as you can see this, a function handle parser uh parse. Uh, returned the something like that. So it's hard to to read. But uh and um, this it means that uh this function, this method actually uh returns the
the key as a name of the function, and the value as a parameters which should be passed to this function.
And: Uh, so I think it it is. Uh, it is quite uh hard to
And: to handle it, and then we have a command. So the result of this function go to the uh, to the commands, which is the
And: uh, which is the standard uh vector in C.
And: So it's here.
And: I'm going back here,
And: and it is
And: So we We put this results uh the value of this results to the commands, and where it is uh it's, and it's here. So uh
And: hmm. So now we have a a pars Santo. So now we have the um, the crucial uh method of this uh implementation of this, you know. And as you can see uh in that line, we are uh actually generating the transaction.
And: So we have it some generator, and we are going to generate the transaction. So let's go to the uh generate transaction, and
we are here.
And: Um generate transaction, and here we have
And: another implementation of of transaction. Hpb: and so let's uh copied uh, let's suppose here. So we have. Uh, we have two implementation of transaction.
And: Um,
And: let's go to interactive
And: from the vector. And so what we are doing next. We are signing this transaction, but we assign it not the proof of transaction, but the you don't have transaction implementation, so we can go to
And: um, All right. Okay,
app: I'm: Sorry Um, I need to. Um, so we do have time beyond um. One o'clock
app: um I would recommend trying to focus on the main features of how you would use it um less on how it works,
app: how a person would approach
app: using it
app: unless what you've done. Okay,
Um
And: workspace, you know um,
And: and then we have. So this is my implementation of, you know, Library. And yeah, so I will full screen it. So this is the the the C mic and uh,
And: uh, this is the folder with the examples. Let's go through them
And: lost in the crucial uh part of this uh implementation. So we have a source files, and the header files uh trpc client, As you can see. This is very short. And, uh, in my opinion, simple uh uh, uh, we have uh free our
And: actually every a bunch of
And: in a different implementation of sent uh some method, we can send the trans transaction and single transaction. We can send a batch transaction, so we can send a list of transaction so like a batch transaction, and we can send a query. And uh, the last uh method of this that you are busy client is that uh is
And: uh, to get the State those current status of the uh of the transaction. So if you have a a hash of the transaction, you can that you get the status. Uh
And: and yeah, And as you can see, this is, uh, for example, this is the sentence method, which uh, uh, in a as an input, that argument, this is a transaction. And this is uh, this is a protocol uh protocol transaction class. So uh i'm, I use uh,
And: Hmm! And then I use the Tory. Uh. So this is this: this library is a support. It's it's support it's it's support It's It's supported by by Google. I i'm not sure. But I think, okay. Let's go to the model. Uh. So uh another Cmac. And you know how it like uh lead models.
And: Um. So we have a constructor here, and we have, so we can open the the documentation.
And: Okay, go to
And: notation Api
mhm
And: here uh, so I recommend it to the change to the develop uh part. And, for example, uh, you can
And: Let's put it on the left side, and uh asset quantity uh at asset quantity. Uh, then we have, for example, up here. So we have up here, then at signatory uh at signatory. So I um focus on I um pay attention to have this uh
And: in order. This functions on the left side will it be,
And: uh in sync to be consistent with the the with the documentation. Uh: okay, So uh, so
And: of we can get into go into this implementation. So, for example, we have a generator. So I put the implementation of the um
And: of this certain particular method to to the generator.
And: Um, and as a i'm uh retaining the I'm. Showing the the actual current object. And uh,
And: return the the reference
And: here assign and add signature. So we have a signature i'm creating. So
And: in this class uh transaction.
And: We have a protocol of transaction, which is the uh, which is the uh protobuff uh object. So i'm uh operating on this on this project. Uh, Okay,
And: uh, let's go to the assign and signature.
And: Sorry. So uh, as you can see. So we have here signature. So we have uh put up of add signatures, um proto signature, and so I'm. Retaining the prototyp of transaction, which is, uh, which contains the signatures, and which is uh, which is already signed
And: and exactly the same. There is an uh transaction transaction batch uh quite short a class and a query uh. So if you go to the queries uh this exactly the same thing. Uh, for example, eh? Accounts account detail. Let's check
And: account detail,
And: get account, detail. It's here, and it is implementation on uh in the library. It's on the left side. Uh: okay. So there is another Uh
And: generators which I use. Uh here, for example, query generic, or this is query generator and transaction uh transaction contains the Cmd channel. It commons generator, which is here. Okay, let's jump into the example.
And: Uh: So we I I created a a few examples of the first one, which is the simplest one. Is that a transaction example, then the the correct example, and the batch example. So let's go to the this Tx. Uh example. So it it means. This is the transaction Example?
And: Uh it is it? It should be removed, of course, but but just for the uh demo, I put postes. I put it to the explicit uh this this function here. Um, but let's go to the run
And: uh. So I sent the sample transaction go here uh, so I put the account in it in uh uh Ip. This is the uh, the uh, the uh, the the the, the, the the the uh, the
And: This is actually I'm creating the a transaction account time keeper, and then I have a create domain, create asset, and uh, i'm uh calling this assigned, and at a signature. So this is the uh, the the method which we already covered in in short, of course,
And: uh, so let's go to the generate transaction. So we have uh that it uh transaction Proto. So this is actually the uh Protocol transaction, and then I create a Grpc client in order to send this a transaction to to the euro Hot?
And: Uh sorry.
And: So I provide the as I said, uh Elohas, the server address. Uh that you know how a set of report and send the uh the transaction. And this transaction is that pro uh, as I said, is a protocol transaction. This, uh, this is very important for me, and um last thing i'm getting the transaction hash,
And: so it is the the method which is the one of the it comes from the util. This is only one, but very powerful A line of code. One
And: uh adds: After all, i'm creating the transaction status. So let's go here, you i. P to the and the transaction hash, and when I run it I have the transaction. Hash status, name, status, code and error code. So it's. It's here. And now we can run it, I hope for,
And: uh, okay, So uh uh Don't Care: P: as minus a Okay, there is no docker uh,
And: uh, yes. So at first we need to around a a postgres uh really relational uh rdbms uh uh the the database, and then I need to round the
And: sorry I need to go My, to my that project, you know. Uh build a dean and around the you know. Hop.
Uh, this is the command on how to run the hero Hart
uh,
And: and then we can go to the Temp uh block store
And: to do around the the this example. So let's do this. Uh:
And: my fingers crossed fingers.
And: Okay, And I think that it's It's done. So
And: uh, this is the the first time it's the
And: is. It is because, uh,
And: because of this. Uh, this is, I will remove it after the presentation. But and what is important is the transaction hash. This is the transaction transaction has hash, and we have a status name enough signatures, eh? Collected status quoes nine. I actually I don't. I honestly I don't remember what is what doesn't mean. I need to check it in the in the documentation and error code. It's zero. So now we can check if the uh
And: uh, let's put it. And as you can see,
And: this is the
And: Okay. So don't Don't domain Sample V one the my sample v one. I asset name sample, view one. It's here so, and create your account Id admin test. So
And: it's here uh this is the
And: the others of the and Of course this is the alcohol, as you can see that. Um as you saw it. I run it on a local host, and this is a port. Yeah. And
And: there is a another example for queries,
And: you know. Pro Proceed with the queries and batch, and also about another example with with batch. So more than one transaction. As you can see, there is the first transaction transaction, the second transaction, and then I create an object of box transaction. I put it
And: sorry this is A.
And: I put it to the constructor of these transactions because this is a vector And then I sent this V and Grpc. To the Iroha.
And: Uh: okay, uh. So let's go to Let's come back to the uh presentation. It. So we go through the demo
And: in this this guy can. Um,
And: uh, reflected this uh, this module um main. Okay, uh, define one consistent way of using namespaces. Okay, Yeah, Because there are more than one uh way of using the name spaces, I would recommend it the uh rename, the class names, or the fine names uh to
be more
And: um to correspond to It's class names. But this is my thought. Uh, as I said, or maybe yeah, and it it it it it transaction Ccp: Uh: So from Cpp or the this this class can be a refactor. Um
And: uh, for example. Yeah, because it should be open for accession, but close for the modification. And there is a very, very useful syntax in in in Python.
And: Uh: Okay. So someone who has who you have a time to to read this presentation, I will. Uh, we will familiar with this this code. Uh, actually, I use this code because I use the the library, for from Google this this story
And: uh the documentation. Yes, I think that we can provide a video on how to configure, build, and run it from scratch for the new joiners, because, honestly, when I was starting uh,
And: it took me about. I don't know. Maybe if you three or four hours to to to to run it uh. So it would be benefit to have a video. Maybe that's maybe.
And: Yeah. So at first we need to run the docker uh post address. Uh, then we have to run the and then we have to run selected, for example, as as as you as you,
And: and the last one of the last thing um is tools and technologies used. C. Make docker, blockchain tutor with Gcc.
And: It is the version front of us. G. Rpc: get, of course, and uh
And: adult
And: uh dot, and add more commands to that. For example, uh create another domain. Uh, then uh
And: type more uh one more dot and create role. So uh, i'm very happy of of of doing this. That did what that way. But I i'm sure that this is not the uh, the best. The design of this in in a library is not that it's not perfect as we are, the developers of the engineers
And: more information that might request other pull requests. Uh yeah, in some case uh keep it simple, stupid Don't Train right there, Will. And this is the last uh two slides are how to generate a regenerate, C plus protocols.
And: Uh, I know that you know how to do it. Uh, but uh, I um put it into the the um. This presentation uh for someone who are not familiar with the protocols, or even with the Euroha. So for the white audience. So this is uh two to two slides, with the example on how to how to generate a originally the the protocol from from scratch. This is the example with the person.
And: Yeah. So this is this is all. Uh, you can stop the recording. Thank you,
Victor Gridnevsky: uh, sure, Greg. So there are no other presentations. Right?
G.Bazior (baziorek): Yes, there there is one more presentation from from another Intern. But if you could stop the recording. And
app: well, we've stopped the recording. Um.