George Mulhearn: Hello!
Patrik Stas: Oh,
Patrik Stas: can you hear me now? Yeah, I can hear you. Yeah, let's uh, let's see if uh somebody's gonna to come back to that
Patrik Stas: A few more minutes last week. It was one that show.
Patrik Stas: Uh it was just me I was it? Oh, it was fine. I just turned it into kind of a podcast. But I found out uh that I think the recording was not actually uploaded from that week, so i'm not with somebody from a hyper ledger.
Patrik Stas: Okay, so
Patrik Stas: sorry. Has has some of the agenda from that week being pushed to this week because of that? Oh, yeah, not really. I just covered the the last week. It's in that, you know, sort of on my own uh assuming that it's recording, and uh somebody will watch it later
Patrik Stas: there wasn't so many points.
Patrik Stas: But yeah, I was talking about a bit about the transport return route, which um was asking before about. So as for that I I I came to a conclusion that that there might have to be a bit of a
Patrik Stas: like restructuring, and the the State mission lever level done to make the Api be more granular. Uh, because right now there's on the on the
Patrik Stas: on the State Mission level. There's some
Patrik Stas: There's not. There's a state transition. But there's also like networking calls, which is not completely clean, I would say, But yeah, it's it's ten ten o two, so i'll like officially start now. Uh: so
Patrik Stas: um, i'll share my screen.
Um:
Patrik Stas: Okay, I'm using a different Uh Pc. Now. So
Patrik Stas: I need to give uh access
Patrik Stas: access to the screen
Patrik Stas: for for zoom.
Patrik Stas: Hopefully, I don't have to.
George Mulhearn: Yeah, I went. I went through this struggle about a week or two ago, the new computer for my permissions around. I I feel like It's gonna ask me to yeah to reconnect. So i'll be back in a second.
Patrik Stas: All right. I'm back here. My apologies for a hiccups.
Patrik Stas: Okay, Um.
Patrik Stas: Okay? Well, it's a two of us for George. Uh, we'll come to that uh two thousand and twenty to eleven ten or is the six minutes go um obligatory. I have to uh um
Patrik Stas: to go through the anti-trust policy of hyper ledger, so
Patrik Stas: our Linux on
Patrik Stas: by no competitors and this intention of Linux foundation to conduct all of its activities in accordance with applicable antitrust and competition laws.
Patrik Stas: It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable us State
Patrik Stas: federal or foreign, into anti-trust and competition laws. Examples of these of types of actions that are prohibited at Linux foundation meetings and in connection with
Patrik Stas: Linux foundation activities are described in Linux foundation. Antitrust policy available
Patrik Stas: at the link displayed on the screen on the screen. If you have questions about these matters, please contact your company and council, or if you are a member of Linux foundation feel free to contact Andrew up the for all of the firm of Justmer up the graph llp which provides
Patrik Stas: um Yeah. Legal counsel for a legal Council to link foundation. I I saw that it was my Internet connection or something like that. But luckily i'm still here.
Patrik Stas: Okay, So uh. So now we can go through the agenda. So
Patrik Stas: uh we haven't actually uh get so much stuff emerge, or since the since the last week.
Patrik Stas: Uh
Patrik Stas: um,
Patrik Stas: but uh, as we speak uh, we had. We had a bunch of updates previous week. I'll just remind that we had release uh zero point four, five, which includes, like included bunch of refactoring and some new Apis
Patrik Stas: um, and like new features and improvements.
Patrik Stas: Um,
Patrik Stas: But for this week, yeah, probably the only sort of uh pr we have managed was uh
Patrik Stas: from middle style. Uh, and it was uh it was additional apis
Patrik Stas: uh which are more relevant for the issue or like institution uh role. Uh,
Patrik Stas: and this i'll see the Pr.
Patrik Stas: Um.
Patrik Stas: So the one was uh
Patrik Stas: the one this Pr. Over here
Patrik Stas: uh is basically
Patrik Stas: uh, well, if I open up the Api, so it's it's clear
Patrik Stas: on the live Vcx level. It will be quite
Patrik Stas: clear to see. Uh. So yeah, So we've added new Api to um create connections from connection requests. This Api is a bit more uh general than the the the original V one which you have now, uh deprecated
Patrik Stas: in favor of the in favor of the V two Uh. Originally this Api was uh requesting this agent handle um
Patrik Stas: object uh abstraction. Um, But uh, yeah, we kind of generalized it, and we only required a minimal set of info
Patrik Stas: uh to Bootstrap. You connection from from collection request that, being a pairwise info, which is a did and verify uh which uh
Patrik Stas: which the um Let's see
Patrik Stas: um, which has been used by um,
Patrik Stas: the
Patrik Stas: which has been, which has been included in the original uh invitation, whether that be on the ledger, or like out of band
Patrik Stas: uh.
Patrik Stas: So there there. There is a test in a node. Js: which uh kind of shows how this can be used.
Patrik Stas: Um,
Patrik Stas: that purse.
Patrik Stas: Um!
Patrik Stas: Just a just a moment, a little uh technical.
Patrik Stas: They can go stop uh
George Mulhearn: the um, The V two doesn't refer to the Protocol version right? It's just saying this is the second version of this Api.
Patrik Stas: Oh, yes, yes, that's correct. Uh is my My share is my screen being shared again. Oh, yeah, it is still shared. I just the video right there we go.
Patrik Stas: Oh, yeah, yeah, it only refers to um like a new new new uh function uh.
Patrik Stas: So arguments as function signature uh, I see we don't actually have is a really uh showed case in the wrapper. I see I thought we did. But uh it just the Api's edit,
Patrik Stas: or maybe but at least it's clear to see what we've added. So yeah, we've we've
Patrik Stas: we've created this uh this new uh way of processing connection requests that's typically receive connection requests on the institution side.
Patrik Stas: Uh, And then we had added, uh unpack uh V. Six unpeg methods uh this is uh,
Patrik Stas: uh, this is to
Patrik Stas: you know, th. This is something all those included in there is, we see itself, but we propagated to it to the live Vcx. And in particular uh the node's viper uh, which enables simply just uh decrypt encrypt message and get us the you know it. It returns uh the crypted message and the parabolic key of the sender. So this is again useful on like the institutional side gives you a bit more
Patrik Stas: uh control over uh processing incoming messages Uh: basically previously the kind of to go uh way of receiving connection requests as a public entity was to
Patrik Stas: receive those uh requests on the visa agency a mediator. But now, with the additional apis we've added uh it. It enables uh implementation of of institution agent which can simply receive the messages directly
Patrik Stas: uh, and as a encrypted message on some endpoints.
Patrik Stas: Unpack them. Ak: They dec the the message, and i'll do something. Do something with it. I'll probably reply to that.
Patrik Stas: Uh, Yeah. So this is this Pr. Uh Additionally, there was this uh one more improvement, one more like a new Api exposed on the lbcx. Again, nothing new on Aries Vcx side. Really
Patrik Stas: uh, just uh added methods to uh read the
Patrik Stas: value of a service attribute from the ledger um
Patrik Stas: to the Nodejs Api. That's about it.
Patrik Stas: Uh, yeah, coming back to the agenda.
Patrik Stas: Uh yeah, There was not no other work uh since uh in the past week. But we have a bunch of stuff in progress. Uh, we are very close uh to uh finishing the F five removal. Uh there's a Pr. Open for it
Patrik Stas: from Artem. I know he's battling right now with some failing tests.
Patrik Stas: Uh: but uh,
Patrik Stas: yeah, it's. It should be very close, and the pipeline is passing pretty much everything. It's load of uh modifications. Uh, but most of these are in the in the
Patrik Stas: uh, in the
Patrik Stas: uh. If we take a look at source.
Patrik Stas: Oh, yeah, the the most of the modifications will be here
Patrik Stas: uh, usually basically converting the fi calls into uh, just
Patrik Stas: direct
Patrik Stas: uh flip around the dependencies. So we are no longer using the ffi wrapper for Libindi, and instead just talking to that to Li live in this Vv. Our tools create uh directly
Patrik Stas: uh, it seems like it's uh adding bit more lines. But uh, definitely, it makes uh, like the code more readable and more easily explorable, and uh, also differently faster.
Patrik Stas: Uh, there's some notifications in other files, too, but it's mostly just a modified import. So
Patrik Stas: hopefully it won't be too much conflicts uh see? Some? Yeah is also just
Patrik Stas: uh some testing changes. Uh,
Patrik Stas: so it comes in as a as a consequence uh optim has run into um some some issues with running tests. So I believe he uh changed uh
Patrik Stas: uh the strategy.
Patrik Stas: Just one one second. Um,
Patrik Stas: yeah, I I believe he uh I had to do some uh
Patrik Stas: changes in the related to testing. I don't know how uh
Patrik Stas: extensive that he is, but it's Yeah, it's more of all.
Patrik Stas: Um.
Patrik Stas: So test infraction, test infrastructure changes. So whereas before we've created this initialization object. Uh: Now, instead, we are running the body of the test inside of a closure,
Patrik Stas: and uh
Patrik Stas: and uh, and and this and this uh testing object is kind of just wrapping it and making sure that all the resources get cleaned up afterwards.
George Mulhearn: Uh, right previously, the clean up would happen uh on drop right?
Patrik Stas: Yeah, yeah, exactly. But uh, that's also leading to some issues after the changes which actually has done I since I we don't have at him here. I can't speak of like precise technical reasons why why this is better. But, uh,
Patrik Stas: uh, he iterated to this as a as a better solution. So
Patrik Stas: um,
Patrik Stas: let's see how this works. Um:
Patrik Stas: No. Speaking of like basically this, Pr. And George yourself, with the changes you down like these are currently the most significant pieces of work, and like biggest pieces of work
Patrik Stas: uh being done. So uh, yeah, I just maybe we can like hoping to your Pr. And also kind of in relation to this. Pr. Is just wonder, uh,
Patrik Stas: uh, what's your progress? And uh And if you think you're gonna have, you know, conflicts with that. Perhaps the changes changes you are seeing here.
George Mulhearn: Um,
George Mulhearn: yeah, that this is definitely gonna be conflicts. Um. But uh, nothing. I can't work around um like I definitely in the past week or so. Um uh sort of got back onto this work um, and
George Mulhearn: to fix up integration tests I've been modifying, like the setup wallet pool, and uh something else as well, modifying it slightly. Um, so that it works with
George Mulhearn: uh Indie, or you know what modular dependencies. Um, but
George Mulhearn: I think I think I understand what he's doing, and uh,
George Mulhearn: I guess if
George Mulhearn: his Pr. Goes in first, then I can.
George Mulhearn: I can fix it up.
Patrik Stas: Um, uh, could you? Could you? Uh open the Pr. And then, you know, we we will
Patrik Stas: see better, uh, perhaps, which one makes more sense to merge first or uh, how, how, how extensive the the conflicts between them are.
Patrik Stas: Yeah, yeah, sorry. I've been mean to get around to opening up the uh, but you know, even if it doesn't pass, and even if it's not complete uh it'll be still good to just to see like, where, where is W. To compare the both of streams of work.
George Mulhearn: I got you all in to get that done soon.
George Mulhearn: Um: yeah. But yeah, I guess I guess my project uh my progress is that I've been mostly just doing integration tests. Uh, I I believe they all passed. Now. Um, you know, running them locally. Um, it took me a bit of time to set up the local environment.
George Mulhearn: Um, I ended up having to like deploy my own Vaughn network uh in my own like public virtual machine. Um, Did you manage to get it to work with the whole network?
George Mulhearn: Yeah. So I had to add to put a on network into, you know, A. A. A. Vm. With a public ip, and then pointed at that. Uh,
George Mulhearn: but yeah, just because I think to get it working on my laptop, i'd have to run the tests within the same docker environment as the on network, so that the network or sinks.
Patrik Stas: Um. But yeah, I go to working, and you know, booted up the mediator as well, Luckily and uh, are you so? How how do you? Uh, Uh, Perhaps I can like advise in this area. Since we're talking about it, we have time on the call. So how do you currently like Um,
Patrik Stas: what? What's your testing? Set up? You, you you you! You run the desk uh as dcx test from docker.
George Mulhearn: Um no, no, i'm running them just from my machine, from my Mac machine. Um! But when you, when you start up uh create the test pool uh it, it looks for an environment variable for test full, Ip:
George Mulhearn: So I've been pointing that at my own semi-public von network. Instance. Uh, but like I can't you like uh like um
Patrik Stas: when you start the whole network, it's
Patrik Stas: you you run the bullet working dog for, I suppose right?
George Mulhearn: Yeah,
Patrik Stas: so. And the docker is exposing some ports for the nodes right?
George Mulhearn: Yep,
Patrik Stas: and uh,
Patrik Stas: oh, and and probably like in the Vaughnet, for, like full genesis file, there's some there that's the question. Basically like what is in the the genesis, What the pull a Genesis transactions look like
Patrik Stas: in this one network. What kind of Url or Ip is pretend is, Is that something what's configurable that you, the network where you kind of want to on both kind of address, or url. You want to
Patrik Stas: expose the network, or
George Mulhearn: so, I guess, when I was doing it locally, when you boot up the bond network with the script, and it starts up all the docker containers. Um, you do type in. You know the ip that you want your nodes to use uh and be reachable on, and then that ip is what's in the genesis file.
George Mulhearn: Um, and then
George Mulhearn: you know your your local version of that genesis file has to exactly match. Um what the nodes understand as the genesis. Far otherwise you get um
George Mulhearn: uh merkel tree errors, and it it doesn't validate. Um. So yeah, I was just running into issues trying to have that set as a local. Ip: um. And
Patrik Stas: so what I was doing a lot when I was kind of running this kind of stuff uh,
Patrik Stas: or usually like when I when I run what's the area with sex integration test? I run the in the pool like just with the you know local host, or one one to seven zero zero one, but uh another like trick I used to be using um
Patrik Stas: is that I would basically set up. I would. I would, for example, run the network on
Patrik Stas: some custom url name like, uh, I don't know uh
Patrik Stas: in the network uh, and I would set this up in my slash, etc. Slash host as a kind of alias, you know, to override
Patrik Stas: con content of the genesis file. And also my computer wouldn't try to go to the Internet to resolve in the and for it will take a look at the etc. Host, and and and there it will be pointed to one hundred and twenty-seven zero zero one. So in the end you know, my local computer would resolve
Patrik Stas: that particular name. You know you are all name
Patrik Stas: as a as a one hundred and twenty seven uh zero, zero, one pointing to the docker. Actually
George Mulhearn: right? Okay, that that's really smart. Um. So your host machine you put in the etc. Slash host a mapping from some domain name to you know your local Ip
George Mulhearn: with with the phone network?
Patrik Stas: Yeah, Yeah, Exactly. So yeah, Just so. I I don't actually have it on like this is different. Computer i'm using right now. So I I don't have a bunch of stuff I cannot really like show show show it. But just to make sure that, like, uh, I'm, I'm coming clear.
Patrik Stas: So I would have. They will be like as Dc. That's let's say, running on my local computer. Then I have. Then I would have like um
Patrik Stas: the
Patrik Stas: uh the container with
Patrik Stas: uh in the pool pro like the kind of default container we just
Patrik Stas: provide like with the instruction to be found on um in the Sdk repository, for example. But yeah, I would build that computer
Patrik Stas: uh i'll build that uh that in the pool uh image uh saying that I want to run on in the let's say, in the network
Patrik Stas: as a as a url, so this will become a part of the genesis file for all of the nodes.
Patrik Stas: And then, yeah,
Patrik Stas: on my local computer, I would say into the network
Patrik Stas: where it's not working,
Patrik Stas: I would say, into the network,
Patrik Stas: and
Patrik Stas: and this will be in a select et cetera
Patrik Stas: and
Patrik Stas: one hundred and twenty, seven, zero zero one.
Patrik Stas: And yeah, this will be just simply uh. As for the docker configuration, i'll be running this all network host
Patrik Stas: uh meaning that uh, basically all of these endpoints, all of the ports exposed by the the docker is usually something like nine, seven, zero, zero, two, nine, seven, zero, zero, four, three, something like that.
Patrik Stas: Uh, with that configuration uh that'll be exposed those those services on local host, right? And then, if in my as V six test, or whatever kind of like agent in the application, I would say that Yeah, I I would basically just um
Patrik Stas: uh copy that genesis file from the from the pool itself. It's the most reliable way to obtain genesis file.
Patrik Stas: Uh, I will just copy it out of the container and make sure it's the same. And then you know the environment. It would try to like. Okay, then, as a result into the net, or oh, well, that is one hundred and twenty-seven, and it will just end up in the docker. So this is kind of how I
Patrik Stas: uh had kids sometimes.
George Mulhearn: Yeah, that that makes a lot of sense. Um, What were you running this on A on a Mac:
Patrik Stas: Yeah, I'm running on. Mac: Yeah. Okay. Okay.
George Mulhearn: Yeah.
George Mulhearn: Because this
George Mulhearn: okay, does Mac
Patrik Stas: handle network Host: Well, Um or yeah, it it? Well, uh,
Patrik Stas: I think there's a problem. The the only like trick
Patrik Stas: within that, I think network host is something, I think, when you are in
Patrik Stas: in one container
Patrik Stas: and you try to go to local hosts. Let's say from here you try to reach local hosts
Patrik Stas: nine, seven, zero, two, i'm not quite sure if the Mac works in such a way that it actually kinda gets out of the container and then goes back into it. Yeah, like if the local host means the host machine, or I feel like
Patrik Stas: it actually just kind of loop itself like this, and it doesn't then doesn't make sense
Patrik Stas: uh, and then yeah, they have lost something. Host Docker Internal. I I know I've been dealing with this
Patrik Stas: uh special url in past. Yup, Yup, I think you run into this. Yeah, So I think I think in uh in Mac, the way you tell the docker that it should loop through your own like host, local host. Uh,
Patrik Stas: if you actually, if you want to do
Patrik Stas: did this sort of
Patrik Stas: if you want to do this kind of look,
Patrik Stas: I think you need to tell the doc her that you want to go to host her internal, and then it kind of works the way you you wanted it to work
Patrik Stas: It's it's it's cool, because then even the notes. The notes themselves Don't really have problem to reach each other because they try to result in the dot network and
Patrik Stas: well on the on the container itself. It sounds like, Well, we we don't know what the heck this is. We'll try to it's. It's gonna be resolved through the host machine, and I think the whole machine first always looks at the etc. Host. So then you end up um.
Patrik Stas: You end up Going back to the other docker container. Would you
Patrik Stas: try to reach
Patrik Stas: right? Yes, the the the network host setting
George Mulhearn: probably means that the nodes themselves will look in the host machines, etcetera,
George Mulhearn: when they're resolving,
Patrik Stas: Yeah, Yeah, basically that it goes through your host machine and then tries to like
Patrik Stas: basically uh
Patrik Stas: results into local hosts in context of your host machine. Yeah,
Patrik Stas: yeah, yeah, that's cool. Thank you. I'll try that.
Patrik Stas: Yeah, I tried the alias. I I think that should work pretty well. I I had a good experience with it, and it basically same end up working the same way in both on Linux and and me. So you don't need to have like special handling for both of them.
George Mulhearn: Yeah,
George Mulhearn: hello, sir.
Patrik Stas: All right.
Patrik Stas: Um.
Patrik Stas: Is there anything I don't know anything else uh regard the the the you are doing, or any any challenges or any I don't know updates with you,
George Mulhearn: maybe change. Or yeah, I I I did have a couple of questions, but um! Is there anything else in the agenda.
Patrik Stas: Uh: well, yeah, maybe so. If if we finish the work in progress, kind of at at uh to the, to the not uh depth, but to the to to the wide Uh. I have
Patrik Stas: I initiated some work uh on the migrating tests
Patrik Stas: from Aries, Vcx. Well, in particular integration tasks from as Vcx into to migrate them on top of as V. Six agent layer, so it's A. It's just like very initiative initial phases.
Patrik Stas: No conflicts to worry about. Um.
Patrik Stas: I don't want this to like. Hold neither of you or add them in work. So this is just something i'll do like additionally on top of on top of that work.
Patrik Stas: But yeah, basically I'm trying to, or I want to. It's really just one of work has been done. But um. The intention is to the take the test from over here. This is integration tests,
Patrik Stas: uh, which they typically use. This kind of abstraction of favor, and at least representing two parties. And and
Patrik Stas: basically it doesn't really makes like it Doesn't really make sense to have this kind of abstractions anymore, because we have now like generalized something very similar into the slash agents slash, or is v. Six agent
Patrik Stas: uh into this project?
Patrik Stas: So this is something like this: this this this right right here is basically like generalized uh, Ellison Faber. So yeah, I want to take this test away, and instead of using some custom, build favor, and Ellie's, which are part of A. Is V. Six testing module right now. Test utility.
Patrik Stas: Uh: I would simply use this uh this as six agent abstraction uh, it's a source agent.
Patrik Stas: Think agents direct.
Patrik Stas: Now, this is like the new general Ellis and favor basically it's. It's a struct which uh uh keeps the list of connections and basically list of the
Patrik Stas: the conversation, every's conversations going on. And then it can resolve that the
Patrik Stas: the correct conversation based on a threat Id and update the State machine. The same thing like this: Alleys and paper. One
Patrik Stas: uh structures implementations are doing So this is going to be the work. My strategy is uh like not change anything here like this. Can people living for a bit more? It just simply start migrating them. Maybe just a bunch of tests at first
Patrik Stas: uh making like copies of these tests in the Um Aries v. Six agent uh Test Directory,
Patrik Stas: and then, once, you know, once those ones will tests are basically duplicated in those both places. We can slowly start removing from here and just uh, just uh uh go with the fact that they are implemented elsewhere, and they are pretty much covering.
Patrik Stas: Uh: yeah. So this is. This is always for the like work in progress uh
Patrik Stas: the planned work. I think, like nothing.
Patrik Stas: Well, there! Well, there, no, actually I'm wrong. Uh that I will. Uh, there is like upcoming work,
Patrik Stas: and I think Well, first we actually started looking into something you mentioned, George, before uh
Patrik Stas: so recently just yesterday. We're trying to update No. Js on our on like Nodej's version, for our Nodej is right for no just infrastructure there. Uh, from no just twelve, which has been deprecated six months ago.
Patrik Stas: Uh
Patrik Stas: to no just eighteen, and it's uh with some. We you updated bunch of packages,
Patrik Stas: and it works. The problem is that it's like magnitude, or they're slower. So uh, of if a five call, which previously called, which took, which takes with no just twelve,
Patrik Stas: twelve milliseconds. Now it takes two hundred and fifty milliseconds, or something like that, so it's like ten to twenty. X is slow down uh it's quite terrible. So we are now. Uh, we are now looking into like how to how to how to
Patrik Stas: well maintain the no just capability, but also not lose all the performance. Uh, and as as uh
Patrik Stas: as uh
Patrik Stas: as a part of that, we also started considering to leverage the uh, the libraries you mentioned before, particularly. Uh,
Patrik Stas: yeah, the node rs or unif sfi uh rs,
Patrik Stas: as it to two packages we are considering. We also find something called coffee. Uh, that's purely on the Nodejs a level
Patrik Stas: uh
Patrik Stas: It's a library
Patrik Stas: uh very fresh. So i'm a bit worried to uh Mike right to this. But actually uh, it looks kind of nice. It's It's uh, according to the benchmarks, it's much faster. But uh, either way I feel like It's gonna be quite a bit of a Rev. Right?
Patrik Stas: Quite significant changes for the No jazz. So i'm wondering maybe just it. It just makes sense to kind of, instead of
Patrik Stas: investing into new fi tool in Nodejs. Maybe we can just invest our time to that if better ffi
Patrik Stas: on the Ross layer, and therefore get like uh the fis, for you know Js. Or other languages.
Patrik Stas: Um, as a
Patrik Stas: as well, it's it's coming with it.
George Mulhearn: Yeah, let me consider? Not. Yeah, Yeah, it You unify ours. It unfortunately doesn't have, you know, node uh rapper Ffi: um stuff. It's just so. Yeah, you need something else.
Patrik Stas: Oh, so we do need if I I still um still have to deal with the fi. My solving. Oh, genius, right? It Doesn't:
Patrik Stas: it is. Yeah,
George Mulhearn: yeah, Colin and Swift at the moment. I'm not sure if that's planning on doing node as well. Um, But yeah, it's pretty. It's pretty good unify um, because you know, you can pass entire structs across the Ffi layer, and you know, keep everything typed.
George Mulhearn: Um. But you know that's a pretty drastic change.
Patrik Stas: Mhm. Yeah, I I I would probably
Patrik Stas: that they would be definitely interesting to uh kind of explore,
Patrik Stas: at least to try some small example right now. I don't really have much go about like both of these. Uh, but my understanding is that we know the Rs.
Patrik Stas: It can actually generate like something else consumable from from O. Js: kind of straight away.
Patrik Stas: Uh: Yeah. So this is kind of what we are looking into. Possibly so possibly we would be
Patrik Stas: uh
Patrik Stas: do rewriting the node Js like uh rapper in a coming future,
Patrik Stas: but uh, probably still trying to keep the Apis intact without much modifications. Just flip around the internals around the Fi.
Patrik Stas: Uh And yeah, actually, maybe one more point as to the upcoming work.
Patrik Stas: Um,
Patrik Stas: I think what we need to look into uh, quite importantly.
Patrik Stas: Um,
Patrik Stas: Well, we got a
Patrik Stas: We got a Pr. Open from Paul just yesterday. Uh, this is adding support for messages uh which contain like, did so for a fixed dids
Patrik Stas: uh It's very tiny. Pr: uh, surprisingly just few lines of code added. So we'll have to look at this. I think maybe we need to add some tests. Um,
Patrik Stas: uh, but yeah,
Patrik Stas: so we'll we'll go through this and review it. But uh, so, but this simply, this is something like a step forward. So it's uh better interop. But uh, what I was uh trying to get into is
Patrik Stas: uh
Patrik Stas: is to implement uh, basically what's kind of fleshed out in this issue right here.
Patrik Stas: Uh.
Patrik Stas: So I've written down like a
Patrik Stas: a few stages how we could uh improve, interrupt with ours. Vcx. And basically like, we can think of it in like uh from two perspective. One is the perspective of the like Ares Vcx based mobile client. We just trying to interrupt with, uh,
Patrik Stas: usually some other institutions. Oftentimes those will be occupies, I suppose. Um. And so
Patrik Stas: to
Patrik Stas: to enable this particle interrupt, we, the first kind of stage would be just
Patrik Stas: assume that the the service attributes on the ledger are in the following form: uh simply adhering to that did so. Um specification.
Patrik Stas: And this should be like pretty like smooth to to
Patrik Stas: uh consume.
Patrik Stas: Uh. And then, if that fails just for the sake of interoperability, we like, you know, current state
Patrik Stas: of the code uh which, which, on the institutional side currently would ride this sort of stuff on the ledger. So, as a fall back, you fail to resolve this, Then we will try to assume. Okay, Probably it's in the legacy format, and we'll fall back into that. But I suppose it most of the like people,
Patrik Stas: it would always uh enter the branch of code, we just consuming the proper format.
Patrik Stas: And then in the next stages uh, we would.
Patrik Stas: Yeah, uh, we would kind of improve the
Patrik Stas: Oh, i'm running out of battery because I don't think it's gonna last for twenty minutes more. So just a second i'm right back. Okay,
Patrik Stas: the underestimated
Patrik Stas: uh,
Patrik Stas: maybe overestimated my battery, I suppose.
Patrik Stas: Alright,
Patrik Stas: there we go.
Patrik Stas: Yeah. So then, in the next stage uh this would be more of the the interoperability. Uh, where
Patrik Stas: there's like in the role of the institution,
Patrik Stas: there's A Aries Vcx based institution. And in the role of
Patrik Stas: client device there's some different mobile framework, for example, A. Ofj. So the A. Of obviously cannot currently read our legacy format. So
Patrik Stas: we need to make uh like steps uh towards uh writing the correct format on the ledger. So I was thinking in the first kind of step. One point five uh we would
Patrik Stas: uh simply fix the formatting as the as a simple change. So, instead of having service here with the right endpoint, and the
Patrik Stas: service endpoint becomes endpoint uh. But the problem with this format still is that the did solve a method uh doesn't
Patrik Stas: assume that, uh people going to write their own recipient keys, and it simply assumes that the recipient key is the very key of the did
Patrik Stas: um. So then in the the stage two we would simply remove the rest Pinkies
Patrik Stas: uh we'll stop writing that. And uh, basically we would end up with this kind of structure, which is exactly uh, you know what the what the mobile do, I will. The A is V. Six Uh. Clients
Patrik Stas: are properly expecting as a format
Patrik Stas: to be found on the ledger. But yeah, the the the basically the I think for for um people using mobile clients. This stage one is the most important one, and it's also easiest to be the easiest to implement. So it's kind of we in there.
George Mulhearn: Uh: So I think, Yeah, this is like, uh, I'll. I'll add it to the
Patrik Stas: so. This list as a bit of inter of work.
Patrik Stas: Uh, this is something I want to look into
Patrik Stas: in the coming time, and I think there will something else
I was there.
Patrik Stas: Oh, maybe not. Uh,
Patrik Stas: uh, yeah, I think the interrupt and the Fi:
Patrik Stas: And yeah, we already have a bunch of stuff in progress right now. So we'll have to get those get those things merge first. I think we have plenty of time to think about what should be the next
Patrik Stas: Yeah, sort of steps
Patrik Stas: Uh: yeah. So now I mean we. We went through all the points, but I think we still had some when we were discussing the your piece of work. I think they will still
Patrik Stas: something uh you had to to mention right? Um,
George Mulhearn: I guess. Uh, before that another question I had is with the Vdr tools if I removal. Um. Does that mean we don't have to have
Patrik Stas: uh, you know, Indie or via tools built directly to? Oh, yeah, exactly that. That's one of the sweet benefits. Well, actually, actually, that's the case even today. Uh, even on the May, it wasn't maybe a month or two ago uh you had to like
Patrik Stas: you had to check out the Vdr tools, repo, build it, and build the
Patrik Stas: a so like or dilemma library. Put it on somewhere on slice users, slash local leap path, and then they would finally can actually use the Vcx. But
Patrik Stas: um,
Patrik Stas: but uh, yeah, for like as a thing stands today, you just check out the repo, and you don't have to. You don't need to know that uh live in the exist at all, and the Vdr tools
Patrik Stas: uh it, just around cargo built or cargo on, you know. Cargo test, and it just works. It's a over out kind of automatically builds the Vdr tools and everything around there.
Patrik Stas: Uh.
Patrik Stas: So it's already like that. But it was a recent recent improvement.
George Mulhearn: Yeah, I think I started my work when you did have to have it installed. Um. And yeah, we based everything since. Yeah, I didn't even notice the change. So it's working smoothly.
Patrik Stas: Yeah, that that was those uh worry contribution from our team uh
Patrik Stas: just a second
uh drink as well. One:
Patrik Stas: Okay, perfect.
Patrik Stas: Okay,
Patrik Stas: Um: yeah, yeah. There was a contribution from Artem. It was basically he um starts cleaning up on, like all the kind of build infrastructure and linking, you know, static dynamic linking.
Patrik Stas: Uh
Patrik Stas: and uh, yeah, this was one of the effects that, like the basically, the pro build process, become much simpler as you didn't have to deal with the Vdr tools anymore, and also
Patrik Stas: the amazing side effect of that, although maybe, since you are using like different approach for the mobile uh, George, maybe not like super like relevant for you. But the size of the
Patrik Stas: size of the artifacts, for Android was decreased by then like ten times. So from one hundred and fifty Max to
Patrik Stas: uh fifteen or twenty, something like that that was really nice.
George Mulhearn: Wow, Yeah, that's that's awesome.
Patrik Stas: Um,
George Mulhearn: uh. So I did have another question. We have time.
George Mulhearn: Yeah, um. So
George Mulhearn: working on the integration tests. Um, and you know, with my changes, there's kind of two modes that you can run Vcx in there's with all the Indie dependencies. Um, or with you know the modular dependencies, so via ndv. And credit, et cetera. Um, So
George Mulhearn: I've been trying to think about a clean way to,
George Mulhearn: you know, test both in the integration test, and
George Mulhearn: i'm not sure of the best approach to do that with the beta,
George Mulhearn: you know. Move the test into a function, and then
Patrik Stas: call it twice with the different modes
George Mulhearn: at the moment I have it set up so that you know when you build Alice um it, it checks
George Mulhearn: for a feature flag, and then, you know, if it has a certain feature flag, then it'll run it in the special mode, otherwise it will use Indie Um. But that's just my own local testing. Um, I assume that you'd want to be testing both modes in the integration test.
Patrik Stas: Yeah, So we probably that's what we would want, because we still want to support
Patrik Stas: in the Uh. Vv. Our tools for for a while.
Patrik Stas: Uh and no, We still like people like you, and like anybody who's freshly starting with the
Patrik Stas: I think the the the
Patrik Stas: the in the new approach would be like the first choice for anyone who who can to who has the luxury of choosing. Uh, but if for the legacy reasons, we want to still support the old approach as well, uh
Patrik Stas: and uh I, for for the like specific technical approach. How to run both Um, I don't really know, like what's the good way? I think, if you,
Patrik Stas: if you simply found some way how to, you know, enable testing both
Patrik Stas: uh and it works, and it's run both place. I think that's fine, and if there's like, possibly A. But if there possibly exist a better approach to do it, and it can be improved anytime. But whoever is bucked enough to commit to improving it.
Patrik Stas: So yeah, as as far as it works, as far as we are testing both, I think, like technicalities of how particular we gonna do it. It doesn't really matter that much in like the first iteration can be improved in any time.
George Mulhearn: Okay, Yeah. Because at the moment, yeah, that feature flag which you know, just means when you type cargo test, you add in that extra flag to use like the the custom profile. Um, I guess if I kept it that way. Then,
George Mulhearn: uh the Ci could be updated to run cargo test twice with the different features. Um, or I could change the test to, you know, just
George Mulhearn: by default. Run both.
Patrik Stas: Um: yeah, Whatever works, I mean, we can like we can have um just. We can just add more jobs to Ci, and this is open so as an open source project.
Patrik Stas: Uh, you know the Github actions are for free, so we don't We don't need to worry too much about the C. I time. So it's It's nine.
George Mulhearn: Okay, Great um
George Mulhearn: cool. Um. The other thing I was wondering about. Do you know if uh with the recent changes. You know the switch to Vdr tools, Rs
George Mulhearn: and all of that stuff. Do you know, if there was any changes to how uh panics uh
George Mulhearn: handled like a panic hook or some type of suppression, just because i'm finding now, uh, after those changes when I run tests, and I have a panic uh it. It won't, you know. Show me the stack trace for that panic,
George Mulhearn: is it?
Patrik Stas: Um,
Patrik Stas: you? You are running some tests on on this on this branch?
George Mulhearn: Uh, yeah, you know, running cargo test against an integration test? Um, with no capture and everything. Um, if if I have a panic somewhere in the code um
George Mulhearn: it one,
George Mulhearn: you know. Print out the back. Trace it It it's a small thing, but it's just a little. It was a little annoying.
Patrik Stas: Well, I know that out of them was saying that we should remove um failure create because it's uh actually It's actually archived uh and uh like, not actively maintained anymore. So there's like new alternatives in the around ecosystem. Now,
Patrik Stas: right,
Patrik Stas: remove the failure from it as a question is, what kind of
Patrik Stas: if he perhaps did some, or he updated the version.
Patrik Stas: I I can't honestly actually answer this question. I don't know.
George Mulhearn: So good. Yeah, like I I I found a a work around to, you know. Have this sort of macro thing which
George Mulhearn: captures the panic and prints it for me just while i'm testing. Um. But yeah, it was just a little hiccup I ran into. Well, maybe I can. You can. You can describe the issue in the the thing about the stack trace on the discord, and i'll uh,
Patrik Stas: i'll. I'll get out of him there, and I he he can, you know, get some feedback for a big explain like what has changed in this regard. Something cool. Yeah, um. I kind of kind of got it down to like uh the minimum. I needed to reproduce it. And
George Mulhearn: basically
George Mulhearn: I was just calling unwrap on a on a none just to produce the panic. And it was really weird. If I call the unwrap immediately in my little test function. It It shows me the back choice, which is good, but if I pull it one line after I open a an Indie wallet
George Mulhearn: there's no back. Trace. It just says that. So it's really weird. Um: But
George Mulhearn: yeah,
Patrik Stas: yeah, I mean the stack trace is definitely desirable.
Patrik Stas: Um, Now let's see what that has to say about it.
Patrik Stas: I think it's not on discord, but i'll get him there so I can discuss it.
George Mulhearn: Um! And uh
George Mulhearn: Steven Steven Karen as well posted about a non-credit irs.
George Mulhearn: Um, So I I I might try migrate to that as well he he was saying that it's basically the exact same as credits. Um, but it's a dependency change. Uh
Patrik Stas: they'll they'll be again amazing. Well, maybe you can be like in a two steps, but if if it's small change, and you can do it. Uh, sure, I don't have any uh nothing against doing so just uh in in, in one, in in that pr your
Patrik Stas: uh planning
George Mulhearn: cool cool.
Patrik Stas: I i'm a i'm a like a big fan of like small it's like it's fine to merge things which are not perfect; and and uh,
Patrik Stas: as far as the the changes provide value, it's always reasonable to merge it, and then, even if it's not the most beautiful, call it can always be improved even like next step, some refactoring, right? So
George Mulhearn: yeah, yeah, especially with, you know, so many changes happening so quickly. It's good to get it in.
Patrik Stas: Yeah, yeah, I was in kind of a big, big big big. So right now, on the way it is hard to make them
Patrik Stas: sometimes are just difficult to split out into something smaller. I can see the as far removal and your work. These are exact prime examples of that
George Mulhearn: cool. Yeah, Yeah, I need to get that.
George Mulhearn: That's my next call.
Patrik Stas: Uh, I'll put it here. So uh the discussion of of opening
Patrik Stas: uh
Patrik Stas: George, and so you can to conclude the stuff we discussed. Oh, yeah, we were also talking about
Patrik Stas: about um setting up the ledger. So running of on
Patrik Stas: network.
Patrik Stas: Uh yeah, Then you're asking about building V six. So basically no longer to
Patrik Stas: explicitly three builds Vv: our tools anymore.
Patrik Stas: And then the we were briefly talking about the testing approach.
Patrik Stas: And yeah, I guess
Patrik Stas: I guess it's it. We have like one minute, but I think we can stretch it out uh the longer. Is there anything anything else on your mind.
George Mulhearn: Um, yeah, I guess
George Mulhearn: One more or more comment I had was um uh spinning up the mediator locally. Um,
George Mulhearn: i'm not. I'm not too sure if the the Docs were exactly up to date. Um,
George Mulhearn: I did. I did struggle a little bit. Um,
George Mulhearn: Maybe Maybe the setup was more obvious to other people, but
Patrik Stas: you know, knowing to spin it up and then run migration scripts to set up. Uh, yeah, Okay, all. So how how far did you get, but I mean it's a good point. Probably it it should be. It should be if it was difficult for you. I'm sure it's also difficult for other people. So it's something to improve. But still, how how far did you manage to get through with that?
George Mulhearn: Maybe either I I have it. I have it running locally. Um. Oh, you have it. Yeah, it's all working. Um. But yeah, you know, I have to do a lot of debugging uh, you know certain tables don't exist. Um. But yeah, I guess I'm: i'm not much of a a database guy. So
George Mulhearn: yeah, there is also this like, not really well documented feature, which is but, however, very useful
Patrik Stas: uh about uh notifications. So when you're running uh, you know your if you are a mobile device, and you are using uh this exaggeration for mediation,
Patrik Stas: then, like you need some way to find out that you have received a message
Patrik Stas: one on like the simplest implementation, but not desirable, is to just do polling like you Check your messages every once in a while, but that's not really good approach. So instead, uh, there's implemented uh like long polling mechanism
Patrik Stas: uh be on top of like readies
Patrik Stas: uh. So you can call this one. I'll just open it right now.
Patrik Stas: Uh and yeah, it's something we should also looking on better. It's kind of a hidden with. But i'll just open up the endpoint. So maybe in the meantime we just kind of can look. Look at it or try it out. It's actually like very simple endpoint uh slash api slash
Patrik Stas: messaging
Patrik Stas: no slash
Patrik Stas: agency, I think
Patrik Stas: uh, we still have like this. So there was a old version slash, experimental, and then we have a a new version. And that point is that if you know the the id of your agent, you can call this endpoint,
Patrik Stas: and it will simply hang for thirty seconds, and after thirty seconds it's a you know, returns response, or it might return earlier than within thirty seconds. If you happen to uh receive a message,
Patrik Stas: you know, while you are waiting for the phone. So you just open the you know Http call, and if you receive a message that endpoint returns uh with following payload
Patrik Stas: uh it's gonna have an act timestamp and the body, and then what you have to do If you try. If you then try to call this endpoint again, it will return the same response, like immediately, just on the basis that you have received the message with some timestamp,
Patrik Stas: you know, at some in some point of time. All this point of time, and you didn't like it since this time stand. So what you have to do is call this second endpoint where you basically are saying like, Okay, Um. I acknowledged that there has been a message
Patrik Stas: Uh, there has been some one or more messages which have a right before this time, and you know, if there, if you call this endpoint with, let's say downstream
Patrik Stas: for illustration of value five like, Okay, that means you have act all the messages which have time to, you know, five or less.
Patrik Stas: But,
Patrik Stas: uh, you know, currently the current time.
Patrik Stas: Maybe the current time right now is ten. You are acting five.
Patrik Stas: And yeah, maybe you act some messages.
Patrik Stas: But, however, if there has been messages,
Patrik Stas: you know, between five and ten, even though you add the five, you call this endpoint, you'll just get the new timestamp. You have to act again, sure that your device is notified as soon as possible about that
Patrik Stas: fact that there's a messages, and uh, maybe to get like, also glimpse of uh, how this works even better. There's integration tests implemented So source uh no, it's going to be in test
Patrik Stas: uh, not units.
George Mulhearn: So do you have to be running the reddest um container for this?
Patrik Stas: Oh, yes, you need to run the and you need to in the config um in the agency. Config uh, you can look at this local Ca: Uh: It stands for like client agency, you know for the in the role of agency for like mobile devices.
Patrik Stas: And yeah, here we are set. You first have to say that agency type is client. It's like for mobile devices. And if that so, if you set up this value, then uh this, this, this url, and you ready. Zero notifications become uh, I think the required
Patrik Stas: uh it just forces you to set it up.
Patrik Stas: So I think this one is the legacy one, and we can soon remove this. And this is the the new. This is for the new Api.
Patrik Stas: Uh. If you take a look at the code, I i'm sure you'll kind of figure out which variable in to set up. But
Patrik Stas: um!
Patrik Stas: It's just those two. It's just you need to provide a uh ready's url. But what I wanted to also show you is the test, and i'm sure where to go.
Patrik Stas: And then we have,
Patrik Stas: uh, I suppose,
Patrik Stas: long for V two
Patrik Stas: and yeah, here's a bunch of tasks,
Patrik Stas: a few tasks which are demonstrating the features. So
Patrik Stas: basically,
Patrik Stas: do we start a long poll
Patrik Stas: here? Then we sleep for a bit. And yeah, and this is like, you know we are not.
Patrik Stas: This is a synchronous function, but we are not waiting here for it in this test, so we just keep on going asynchronously. We are sleeping or a bit, and then and then
Patrik Stas: uh, yeah, we we like manually like here, You know, we kind of simulated that the new message has arrived on some agent at some time.
Patrik Stas: Uh, we sleep some more.
Patrik Stas: Uh
Patrik Stas: uh, yes, and yeah. And this point you we take responses which is here is some uh shared. We just yeah, The responses was injected into the resolution of these promise. Right? So whenever this resolves uh uh,
Patrik Stas: yeah, here after we flag the new message.
Patrik Stas: Uh, it just appears to be, you know, in the responses right away.
Patrik Stas: Uh
Patrik Stas: yeah, and it doesn't change at the end, and there's few more things like
Patrik Stas: simulating similar scenarios
Patrik Stas: right here. So maybe this is even better test, because at first we start this long pole. We check that there is no responses yet. But
Patrik Stas: uh, okay, this is working with the dime out
Patrik Stas: right Here's no messages coming. Basically So so after certain time, I' It just returns like you know, and kind of empty response, like nothing has arrived. And so there's There's this issue, and there's also
Patrik Stas: uh
Patrik Stas: so these new messages
Patrik Stas: uh one of these just suits is more high level than the other one. I don't remember which one of them is it? But they are both seem like, Yeah, this looks more high level. Actually,
Patrik Stas: uh,
Patrik Stas: I guess,
Patrik Stas: is on the service level.
Patrik Stas: Yeah, both of these, both of these set. The suits are like relevant to to this long pool feature. I think it might be useful for you.
George Mulhearn: Cool. So you you do the long poll uh, and then eventually something will get returned. Uh, and if it's within the thirty seconds it's a message, and then and then you act it and then lung Paul again. And then is that how it works? Yeah, Yeah, yeah, exactly. So you are. You are basically your You are like on your mobile device, like constantly are running this long, long polling loop, and whenever it returns you check the response. If
Patrik Stas: it's returned, because there's a new message or just return, because nothing has right within thirty seconds. And if something is right, basically you you send this act request and probably
Patrik Stas: on a sideways, you know. Uh you start downloading, you know you start actually downloading the messages from agency. Start processing them in some way. And again you you restart a long pull again, and i'll check for any new messages, and we just keep on going like this.
Patrik Stas: So it saves a lot of, you know. So performance for agencies, especially.
George Mulhearn: Wow: Yeah, that's really cool, cool.
George Mulhearn: Um, Okay, One One more thing. If you have time.
Patrik Stas: Yeah, for sure. It's fine.
George Mulhearn: Um. So I think I think in the last meeting I was in maybe two weeks ago. Um! There was talk about
George Mulhearn: uh making the connection handler, not as dependent on,
George Mulhearn: you know. Mediator uh agency client.
George Mulhearn: Is that something
Patrik Stas: you guys have worked on or thought about since that meeting. Oh, I see now. You remind them me That was the point which I wanted to pull into the upcoming work. So yeah, exactly. So uh, uh remove uh the couple the couple of
Patrik Stas: um mediation uh yeah, We we tend to like uh want to do that, and and the the Stav with Jamiro has done in a middle class has done in last week is gonna some of the relates to that. It was like.
Patrik Stas: And then we know that, like Ob is in the first side. But, uh, basically
Patrik Stas: uh,
Patrik Stas: it, it led to some like general
Patrik Stas: generalizations which we want, which are kind of good
Patrik Stas: preliminary work to actually start it as non mediation. So
Patrik Stas: uh,
Patrik Stas: well,
Patrik Stas: actually the the the the the reason for a Meta styles work. Was that because um we ourselves, you know, as uh consumers of Aries Vcx, we want to.
Patrik Stas: Uh, we wanted to first get brief of mediation when the receive message, you know kind of messages
Patrik Stas: uh
Patrik Stas: addressed to our institution did so. Somebody results our did, uh, or some of the results are um video
Patrik Stas: uh from the ledger uh based on our did and wants to send us connection, request, establish connection with us.
Patrik Stas: We want to enable
Patrik Stas: uh for this like message flow to be non-mediated, just simply arrived to our institutional agent, and therefore we had to adjust the the create connection from connection, request to make it a bit more general and uh, just enable this non-mediated workflow
Patrik Stas: uh basically And this is like uh we're kind of deploying this now, And uh, yeah, getting the connection themselves to be non-mediated. This is uh, this is a second step for us. So
Patrik Stas: But yeah, it's it's definitely important, and it will make the still library much more like
Patrik Stas: usable, I think, because you are not forced to use some particular implementation of the agent, the mediator.
Patrik Stas: Yeah, it's It's on the roadmap, I I think. Like maybe not. Uh, not this
Patrik Stas: uh,
Patrik Stas: not not sure exactly. When maybe this week or the next week we might be starting actually this piece of work. We are kind of uh on the Fans, whether we should first invest into the If a fire research or the uh. This connection Meditation decoupling
George Mulhearn: Very cool,
George Mulhearn: very cool.
Patrik Stas: All right. Well, uh, does it cover uh, like your questions, or do you perhaps have uh something more on your mind.
George Mulhearn: Um, no, no, that's that's it. I think it's my questions.
George Mulhearn: Thanks for answering.
Patrik Stas: Happy to do.
Patrik Stas: Uh, all right, Then Then I guess we can wrap it up with a little bit of overdue. But that's fine. Um.
Patrik Stas: So
Patrik Stas: I guess so. The next meeting that will be the next Thursday, seventeenth uh
Patrik Stas: same time as usual. Uh,
Patrik Stas: yeah, George, I'll I'll I'll be uh if you, if you just uh yeah open that, Pr: you know. Until then there'll be like, uh, really awesome. And i'm really excited to to just see it and see all the magic coming together from all of you at him. It's going to be huge improvements.
Patrik Stas: Um: yeah. Until then. Uh,
Patrik Stas: I wonder if there's anything to say or wrap up with any particular statements.
Patrik Stas: Yeah, it's It's gonna be a big Pr. For you guys through. It's fine. We'll We'll get through it, I guess. Uh yeah, I guess So Let's Let's Let's get to get through on this chord like together we do an option. Let's open the Pr. And uh,
Patrik Stas: probably today or tomorrow we'll kind of either start working, uh, you know, mid of Falls kind of capacity will be either directed towards the If I kind of research for now,
Patrik Stas: uh, or may it be going into one of these two uh both of them are important at the same time we have the the Pr. Open from Paul. It looks like small Pr: so we want to get merge that.
Patrik Stas: Yeah, lots of things uh lots of things we have on the table.
Patrik Stas: And just
Patrik Stas: so soon soon coming together.
Patrik Stas: Okay? Well, i'll i'll. I'll be looking forward for if if you join our next week i'll be happy to and um, and maybe some other people might join as Well, uh let's see next week. Um,
Patrik Stas: thank you, George, for coming. It was. It was good to connect and to discuss all this stuff together.
Patrik Stas: It's better than a one-man show
Patrik Stas: alright, injured day. Thank you for coming late. I mean it's light for you. So
George Mulhearn: good evening, and cheers next time cheers. Thank you.
Patrik Stas: Thank you.
Patrik Stas: Oh, man, I think I didn't record it.