Sam Curren (TelegramSam): Welcome folks to the may 11 areas working group call.
Sam Curren (TelegramSam): We have some cool topics on the schedule, today this is hyper ledger meeting, so the antitrust policy and the hyper ledger code of conduct are in effect.
Sam Curren (TelegramSam): The agenda.
Sam Curren (TelegramSam): can be newly found in the chat you're welcome to make any adjustments that you'd like including adding something attendees list.
Sam Curren (TelegramSam): Anyone new today that would like to introduce themselves.
Victor Martinez (SICPA): After afternoon everyone.
Victor Martinez (SICPA): I know we wanted to say, like we are here with.
Victor Martinez (SICPA): lemon on myself Victor we are working on.
Victor Martinez (SICPA): yeah I hope we can have like 510 minutes time, so we can present our plugins that we wanted to contribute to hyper ledger.
Sam Curren (TelegramSam): Yes, i'm planning on giving you a little bit more time than that, if you would like it.
Sam Curren (TelegramSam): So we have we do have time today but but God go glad to have you both here.
Sam Curren (TelegramSam): anybody else.
Kolby Kunz: i'm here just i'm a new contributor to Aries mostly been working on probably more javascript so.
Kolby Kunz: Having to learn some more about the project and see what this is all about.
Sam Curren (TelegramSam): Welcome call me.
anybody else.
Sam Curren (TelegramSam): All the new people on the same day who's perfect.
Sam Curren (TelegramSam): Totally to be fair, not totally new for some, but glad to have you anyway.
Sam Curren (TelegramSam): All right, I don't have any announcements on my announcements list should I have something on there that isn't.
Sam Curren (TelegramSam): All right, any projects, want to share release status or work updates.
Timo Glastra: For Ericsson with javascript we merged issue credential feet, to support still working on some interoperability issues with occupy, for example, but it has to be merged now so i'm working on yeah adding tests in areas agent desktop to make sure we didn't break anything.
Sam Curren (TelegramSam): fantastic.
Stephen Curran: that's awesome congratulations.
Stephen Curran: Very work.
Sam Curren (TelegramSam): Alright, I know there's lots going on and lots of work appreciate everyone's efforts we have two topics on the list today.
Sam Curren (TelegramSam): And we probably have room for a little bit more if if there's stuff that people like to bring up or talk about or issues they'd like to surface.
Sam Curren (TelegramSam): We first layer from Stephen about load test to generate a results and then as Victor mentioned there there's a number of repositories is sick, but is interested in contributing to.
Sam Curren (TelegramSam): The Community and so we will have a review and a discussion of those stories um anything else on the agenda that we should change or add or modify before we get gone.
Timo Glastra: Maybe in the end if there's time time left, we we can do a quick.
Timo Glastra: go over the issue.
Timo Glastra: I made on.
Timo Glastra: migrating to fully qualified dates and some issues i've encountered with like i've been trying to start working on a bit in Ericsson with javascript to see like what's possible and I think there's a few limitations that would be good to discuss.
Sam Curren (TelegramSam): that's excellent, this has been an ongoing conversation for those not here the last couple weeks, and that would be that would be excellent to have a continuation of that so that's perfect you know we'll have that.
Sam Curren (TelegramSam): any others.
Sam Curren (TelegramSam): Alright, Stephen why don't I turn this over to you do you want me to share do you want share.
Stephen Curran: No, I can do it i'll just wanted to highlight a few things.
Stephen Curran: There we go oops.
Oh.
Stephen Curran: I see what I doing.
Stephen Curran: Okay um.
Stephen Curran: So one of my roles is to do the area's quarterly report and the indie quarterly report, which was due and completed last week, these are done for the hyper ledger technical Steering Committee.
Stephen Curran: And one of the things that I.
Stephen Curran: highlighted in there was some work being done around performance load testing and things like that so that's one of the accomplishments this quarter and.
Stephen Curran: I wanted to put in some some evidence of exactly what have been accomplished, and I realized, what I want to look at the links that I found.
Stephen Curran: sort of a set of really, really cool things that have been done in the Community, that I wanted to highlight that I thought it would be worth mentioning it at meetings like this, so it's a it's a combination of efforts, so one is this area's cloud agent generator that was created by.
Stephen Curran: Some folks.
Stephen Curran: In Germany at.
Stephen Curran: At let's see an ID Union at IBM, and what this is is a method of running areas cloud agent Python.
Stephen Curran: In a controlled environment to load to performance tested so basically a scripting setup docker compose running on a vm where you can control all sorts of parameters relating to the test how much load, are you putting on it, how many clients are you putting on it, which.
Stephen Curran: Are you using revocation what ledger you using so you so you've got a whole set of parameters and you can run tests and.
Stephen Curran: This came in at the perfect time, so one is it allowed us to sort of get an idea of where we were with performance but a second one was a number of issues were reported early in the quarter this year early in.
Stephen Curran: early in the New Year, that that showed that under under load conditions bad things would happen and it wasn't clear where these errors were coming from and they weren't easy to reproduce, and so the second thing that happened was that.
Stephen Curran: Paul who created this load generator was able to use this to replicate the events and then add debugging capabilities into this environment so that he could turn that over to.
Stephen Curran: The developers on occupy, including and Whitehead and and Andrew could then recreate the problem and with the debugging capability sort of figure out what was going on under these extreme conditions so second big thing.
Stephen Curran: So, first we have this test environment to do next, we have a way to use that to reproduce really difficult to.
Stephen Curran: To create problems are really difficult to fix and we got those fixed and we wanted out with the the problems being identified that were happening like 2% of the time under load.
Stephen Curran: readily reproduced and then corrections made and enabled to prove that they were corrected so that we could run the old code run the new code under the same conditions and show that it was corrected.
Stephen Curran: that's The second thing then The third thing that I wanted to highlight was just the stability and the difference between.
Stephen Curran: occupy running with the indie SDK versus running with Aries Aries asked car, which is the shared components, the replacements that have been in work for basically a year and a half, two years.
Stephen Curran: To replace the indie SDK and what we realized in looking at this, this is the summary of the indie SDK.
Stephen Curran: A load test and then i'll show you the ask Ottawa and the important thing to see is this which is this is the.
Stephen Curran: transaction rate of the of occupy running so there the test was to try to accomplish.
Stephen Curran: 200 transactions per minute through this and what you see, is it runs for a while, with 200 transactions for a minute and then performance kind of drops off.
Stephen Curran: And varies but but tends downwards and and it's you know, a quarter or less of what we wanted, which is the 200 so that's under the SDK we also have you know, a fairly high rate of error 2500 out of 18,000 iterations that's an awful lot of error.
Stephen Curran: When we ran the same test same parameters.
Stephen Curran: Under.
Stephen Curran: At with ashkar in it so basically changing a single parameter, which of course underneath changes, a whole lot of stuff so you're now running within dvr as the connection to the indie.
Stephen Curran: ledger running with credit X implementation of a non credit which again both of those things, all three of these in the running ask are, which is the persistent storage and key management component all of those are.
Stephen Curran: evolutions of the indie SDK separating them into separate packages and then.
Stephen Curran: adjusting them so, for example, there's not a central queue and things like that, but what you see here is we're trying to achieve 200 transactions permitted and we achieve that.
Stephen Curran: continuously throughout the entire in this case six our test we had a total of 24 errors over that time 68,000 iteration so what you're seeing, there is the third item I wanted to highlight, which is that ask are.
Stephen Curran: And, and the components, the shared components are really getting extremely stable and it's now to the point that it really looks worth.
Stephen Curran: A more aggressive transition from the use of indie SDK underneath the areas.
Stephen Curran: You know frameworks and and replacing that with with ask are in the shared components So those are the three things I wanted to highlight, I believe this will be transferred this area's out agent low generator will be transferred.
Stephen Curran: i'm hoping to spend a bit of time with it and get it set up in my own world, so I can use it regularly right now I.
Stephen Curran: Send discord messages hey Paul, could you run this test for me, but I really want to get this so that we become one with it and make use of it and try out different scenarios and see how easy it is to use at different scenarios, but this is invaluable tool.
Stephen Curran: And then, as I mentioned, with the new version of occupy we're going to recommend that that people use ask are as the default specially for new projects.
Stephen Curran: And and move away from India SDK at this time for for those projects, there is not a migration script yet to move an existing implementation from ask are from India SDK over to ask are in the shared components, but but we plan on working working towards that.
Stephen Curran: So that's what I wanted to share I see.
Stephen Curran: A.
Stephen Curran: couple of questions.
Stephen Curran: yeah the load testing.
Stephen Curran: Low test transaction, in this case is a issue and a and a received so both both the issuer and the holder are running as.
Stephen Curran: Multi.
Stephen Curran: Multi sorry.
Stephen Curran: Multi container images instances.
Stephen Curran: So both are spinning up multiple instances of occupy the issuer is and the holder is and your and then there's a driver that is pushing as many transactions, through the issuer as possible which correspondingly causes the.
Stephen Curran: holder to collect as many credentials as it can so that's what a transaction is, in this case.
Stephen Curran: So pretty nice stuff, this is the output of the load test generator and lots of really good information, you can see things like.
Stephen Curran: http response times in requests.
Stephen Curran: The one I wanted to highlight little lower down is sort of showing.
Stephen Curran: yeah connections here was that sorry i'm not sure on that one.
Stephen Curran: But cpu usage things like that are showing So these are all of the agents issue or agents and holder agents get monitored and we sort of see how much load it's putting on the system, and so on.
Stephen Curran: yeah the team of the last thing to mention is is the improvements, the asghar the.
Stephen Curran: The cleanup relatively small number of fixes and things, but the cleanup was incredible the evidently there was an 11% performance increase and all of these load errors were corrected in that time so very cool stuff.
Sam Curren (TelegramSam): Stephen question.
Sam Curren (TelegramSam): Is does this using occupy to generate the load.
Stephen Curran: i'm already a controller, yes, I mean it's agents and then there's a controller script that is basically generating the load itself.
Sam Curren (TelegramSam): Okay, so this is, this is a controller, on top of back apply that to make that actually happen is.
Sam Curren (TelegramSam): Yes, so presumably you could actually use occupies the load test generator but a with that controller, but a different areas agent.
Stephen Curran: That would be awesome would be to be able to swap out, I mean basically it's it's docker compose and the agent running is that, so the controller script is probably I assume it's probably a bash script sending.
Stephen Curran: You know request to the API so what you know just like we do with the areas agent test harness we probably could swap out.
Stephen Curran: provide a generic API and and wrap the instance in.
Timo Glastra: I think I to quickly take a look at this because I was also interested in it for air stream of javascript and they have it's written in.
Timo Glastra: Java, I believe, and they just have like a Java interface, you would have to implement, for your agents and I think they wrapped it for occupy, but you could also make rest calls to another agent, if you would like, by implementing that interface.
Sam Curren (TelegramSam): Very cool.
yeah.
Sam Curren (TelegramSam): Stephen, thank you for reporting on that and I that recommendation to to switch to ask our has been.
Sam Curren (TelegramSam): I know folks in the Community, I know we'd in DC or already.
Sam Curren (TelegramSam): have been testing that but are are expected to accelerate our efforts to switch over nascar's the underlying library so very cool any other comments questions for Stephen.
Sam Curren (TelegramSam): awesome victor.
Sam Curren (TelegramSam): Your comments are.
Victor Martinez (SICPA): No, I just wanted to say also that.
Victor Martinez (SICPA): Maybe another thing also take into account, with a nascar is that it's a I think is non blocking.
Victor Martinez (SICPA): meaning in a high availability scenario where you can have multiple occupied runs I think here the performance improvement can be even bigger we haven't tested, but I would be curious to know if someone has has this feature as well.
Stephen Curran: yeah I mean that was one of the core things.
Stephen Curran: That we did just under the covers and I don't know too deep a detail on this, but basically with within the there's sort of a common.
Stephen Curran: queue for all features across all of the components of indie and so that leads to a sort of centralized processing of that Q once once the once the item on the queue gets it gets passed off into different threads, but it is still a central queue.
Stephen Curran: and add some tasks take longer than others which blocks that cue.
Stephen Curran: The idea idea originally was to keep them all, as short as possible, so that's one of the things they did was to separate all everything into separate queues and things like that, so the separate components each have their own queue and and.
Stephen Curran: A lot of work was put into.
Stephen Curran: Only having blocking where where the blocking was necessary, so so trying to prevent scenarios where just to be safe, things were blocked as opposed to because they were necessary, and I think that's where a lot of that performance is coming from.
Stephen Curran: But over to you, Victor for new repose I think we're on a.
Victor Martinez (SICPA): On the next top okay.
Victor Martinez (SICPA): So let me share my screen here.
quickly.
Victor Martinez (SICPA): so well in a nutshell, what we wanted this to we already open source three plugins that are useful, a along with occupied on one is the two first plugins are.
Victor Martinez (SICPA): Adding connecting the universal resolve or adding let's say remote resolution to occur Python and we have implemented two plugins one.
Victor Martinez (SICPA): thing on http interface to connect to the universal resolved, and the other one is a big deal protocol so you can connect from occupied on to the universal result will.
Victor Martinez (SICPA): Be on the protocol, this is that they wanted they wanted to present now, on the other, one on my my colleague Clement is gonna present it's a plugin to a Kafka cues in occupied on by default right, and right now.
Victor Martinez (SICPA): The cues are in memoriam by default, but now the idea is we wanted to what our systems and re a liability adding adding are persistent queues so now there is a possibility to do.
Victor Martinez (SICPA): After plugin to that works, along with a Python on well all these three plugins are already open source and you can find it under our word are rebel.
Victor Martinez (SICPA): But the idea is, we thought that would be maybe interesting to donate these plugins to.
Victor Martinez (SICPA): hyper ledger so first contextually they are sitting near to walk a bite on and maybe it's easy for people if they want to use it and.
Victor Martinez (SICPA): And also later to have better visibility and maybe welcome other contributions, so let me quickly explain the let's say universal resolution, our plugin ID is actually a button has a quite sophisticated resolution for wc credentials in occupied on you can trade.
Victor Martinez (SICPA): Based on this diagram that you see here native resolves native resolve as means the the Ad resolve others that are implemented in Python within like a Python.
Victor Martinez (SICPA): But also let's say if we want to leverage other project like the universal resolve the idea here is when the plugin comes into place, you can use the two plugins to.
Victor Martinez (SICPA): connect automatically to the universal resolve it and do the ID resolution using the universal resolve and, as I mentioned before, there are two types of there are two plugins once adding on http interface, and the other one using the.
Victor Martinez (SICPA): The the the resolution rfc Arias over data on.
Victor Martinez (SICPA): The idea behind the bitcoin protocol is, as we know, I mean if you deploy your occupied or your your agency within the same infrastructure or maybe it's fine for you.
Victor Martinez (SICPA): To also deployed on the universal resolve as part of your infrastructure or maybe you don't have any.
Victor Martinez (SICPA): Trust insurance so for this may be nice to have an STD it's it's completely enough to have an http interface but let's say in that case like I don't know you want to do the universe have resources deployed as well or not, under your arm.
Victor Martinez (SICPA): Not or under your dmz that the idea is to water, the.
Victor Martinez (SICPA): interface so to to enhance that that trust, because, as we know, you know resolving this is something very important.
Victor Martinez (SICPA): So yeah, this is why we decided to implement this did come protocol and that's it, this is the day to play games that we wanted to contribute to to hyper ledger I don't know if you have any comments, otherwise Maybe my colleague Clement I can expand you more about the Kafka plugin.
Stephen Curran: If I could.
Stephen Curran: Just jump in for a bit of context on this section what we're looking for.
Stephen Curran: Members and people anyone really is invited to contribute repose to.
Stephen Curran: To hyper ledger as appropriate, and so one of the things I wanted to make sure what in in asking Victor and climate to present is to.
Stephen Curran: Ensure that they have Community support for that contribution so that's part of what we're looking for here is not just to let you know these exists, but also for your opinions, if any, on on these being contributed hyper ledger and being added to the hyper ledger.
Stephen Curran: Family of repose and capabilities within areas so just keep that in mind, as you listen to this at the end will basically say any objections.
Stephen Curran: sorry about that go ahead Clement.
Sam Curren (TelegramSam): No hang on Victor I got a question on the last one.
Sam Curren (TelegramSam): what's the.
Sam Curren (TelegramSam): what's the structure of this you've you've added the universal resolve is there's an agent presumably running there is that occupiers that is that a different agent suffer.
Victor Martinez (SICPA): yeah Let me share my screen so.
Victor Martinez (SICPA): let's see the idea behind me is, if you see here the architecture, we have a compassion running.
Victor Martinez (SICPA): So this plugin What it does is really at this blue box here to add an http remote client resolve, so the idea is we are a Python when you do the the resolution.
Victor Martinez (SICPA): If there is no native resolved in Python as a fallback is going to contact the universal result will be a http and he's gonna try to do this, the the resolution, this is the the idea behind now regarding the discount plugin.
Victor Martinez (SICPA): They did the idea of this plugin is implementing both sides of the protocol is.
Victor Martinez (SICPA): Implementing the resolve our side of the protocol and.
Victor Martinez (SICPA): yeah the receiver and the result, but I don't know how to say it so actually what the new tech has on his they are this resolved agent that you see this this Gray.
Victor Martinez (SICPA): box it's actually like a Python running and with our plugin but a just talking one side of the protocol, and then, on the other side, you have as well, I got by tone, but in.
Victor Martinez (SICPA): Implementing the other side of the protocol, so the idea is like i'm the new tech is planning to add these did come interface in the universal universal resolve using up a Python and the plugin that I that i'm explaining now did I answer your question.
Sam Curren (TelegramSam): Yes, here's the question, maybe, maybe between you and Stephen is there a reason why this doesn't just get adopted straight in as a feature of occupy.
Sam Curren (TelegramSam): It seems like really universally no pun intended useful.
Victor Martinez (SICPA): um.
Victor Martinez (SICPA): You know.
Stephen Curran: So you're suggesting that rather than making a plugin make it a core element of of occupy.
Sam Curren (TelegramSam): yeah and perhaps you know that it's via some arguments, so if you have some reason to not enable this you could, but it seems like this is a sort of.
Sam Curren (TelegramSam): would be a highly desired feature for folks running occupy anyway.
yeah.
Stephen Curran: Okay.
Sam Curren (TelegramSam): Well that's my that's my thought responses that rather than maintaining it as a separate repository.
Sam Curren (TelegramSam): Having this be sort of a core feature might be just really insanely useful.
yeah.
Stephen Curran: And then basically just an argument to configure it.
Sam Curren (TelegramSam): yeah.
Stephen Curran: And then, presumably the plugin already has, though, so it's.
Stephen Curran: Okay, Victor let's let's discuss that.
Sam Curren (TelegramSam): I.
Sam Curren (TelegramSam): i'm not trying to like.
Sam Curren (TelegramSam): not have a repository contribution here, but I just.
wondering.
Sam Curren (TelegramSam): If it's a separate repository it's going to have you know there's a higher burden of maintenance if it if it ends up being part of the regular occupy repo then, then it has it has a greater chance of regular maintenance over time yeah.
yeah.
Victor Martinez (SICPA): yeah, I think, maybe, what we need to evaluate a little bit is all the configuration that is needed to configure this plugin, because if we integrated as part of occupy maybe we are going to add more configuration but yeah i'm fine with it as well.
Stephen Curran: there's a lot of configuration already.
Sam Curren (TelegramSam): I wonder if there isn't a there is a lot of configuration, I wonder if there isn't some way of having sort of a bundle of of configuration that applies to the resolve over such that it doesn't necessarily have to be mixed in, in parallel with all of the existing occupied configuration.
Stephen Curran: Well, one of the things act by has is that you can have multiple Diablo files with them all separate so.
Sam Curren (TelegramSam): So maybe out of practice we just shove, all of the.
Sam Curren (TelegramSam): The.
Sam Curren (TelegramSam): Did resolution stuff into one yammer file yep.
Timo Glastra: I think there's a buyer has a slogan config file and that allows you to specify a plugin and there you can provide a DEMO configuration for the plugin, I think, maybe that would be useful for that.
Sam Curren (TelegramSam): yeah cool okay sorry.
Stephen Curran: Okay okay yeah.
Sam Curren (TelegramSam): Clement you're up next, I think.
Sam Curren (TelegramSam): Unless Stephen you had something.
Clement Humbert: Good and.
Clement Humbert: i'll give you a quick overview of.
Clement Humbert: The plugin.
Clement Humbert: So just to frame.
Clement Humbert: Okay, I can share my screen without restarting so let me rejoin this meeting.
Stephen Curran: In case you're wondering Clement has a MAC.
Stephen Curran: We can always tell when someone has a MAC oh.
Stephen Curran: it's their first screen share on zoom.
Stephen Curran: yeah both has a MAC and does not usually.
Stephen Curran: use it, I.
Timo Glastra: Think it's a limitation of.
Timo Glastra: Like some Apps to allow to not restart, so I think it's it's possible for me to not require it.
Stephen Curran: might be a zoom thing yeah.
Clement Humbert: Okay.
Clement Humbert: so quickly to frame the plugin we wanted this to be able to scale a bison or recently in our agency, and we, we have a message based architecture around around Kafka and credits to Daniel and Adam the actual implementation of the thing.
Clement Humbert: And what's in the plugin is an implementation for an inbound and outbound you and a way to emit events through through Kafka and we can enable or not enabled the plugin independently for each of these of these spots, so this is what.
Clement Humbert: It looks like when using the plugin.
Clement Humbert: occupy sources it's messages from Kafka, so it is long queue instead of http.
Clement Humbert: And boosts it's the responses on Kafka, and this means that you need some kind of interface to convert your direct messages that are an http to.
Clement Humbert: To Kafka messages and you can either have a transparent proxy or, as we do have a mediator and like a pie that's configured with an http inbound and Kafka.
Clement Humbert: And then same for the actual delivery of the responses, you have to have something that's capable of picking up Kafka messages and posting on http.
Clement Humbert: looks.
Clement Humbert: Complicated like that, but then I think, is that you can scale each of these three parts, independently of the others.
Clement Humbert: So this is for the little message messages flow and the separate feature is the evidence and web hooks have occupied.
Clement Humbert: And we can configure a bite to post web hooks on Kafka instead of http.
Clement Humbert: And we can configure.
Clement Humbert: The destination of big.
Clement Humbert: With parameters, like the protocol and it state.
Clement Humbert: So you can dispatch connection events to a topic and issuances to another.
Clement Humbert: And the payload is not only the event it's wrapped in an envelope with submitted a static ID the protocol, the State and that we can category, so we can further.
Clement Humbert: The compose your topics, if you want to have the topic educated to a single wallet, for example, for segregation, or whatever, or if you need this data to consolidate with data from your agency, we choose the wallet ID to cross the reference data with customers data, for example.
Clement Humbert: So to wrap up what's in the report is the actual implementation of the plugin so the inbound not want you and Evans dispatching.
Clement Humbert: but also a proof of concept for an http relate to pick up the messages and posts on Kafka and an http deliver to pick up Kafka messages and post them.
Clement Humbert: Post them to the recipients, with some retry mechanisms, we also have a couple of docker compose to demonstrate how the whole thing together works and whether you're using a mediator or an early so you have the whole setup with a mediator or really a CAFE.
Clement Humbert: In multi tenancy mode and the developer site.
Clement Humbert: You can find all this here i'll post, the link in the chat for us to protect it, so in the more you have what I just said, the docker compose with the relay automated.
Clement Humbert: And curious the actual implementation, if you want to look at this.
Clement Humbert: And that's it.
Sam Curren (TelegramSam): um can you talk about the effect of using Kafka as to offload inbound and outbound messages.
Clement Humbert: The effect on well i'm presuming there was a reason.
Sam Curren (TelegramSam): You did this right and and it seems like offloading the the inbound process or the sort of the receiving in the transmission of messages was was what you're going for so just curious sort of what the overall effect is on the on the execution of the of the APP, for instance, yes.
Clement Humbert: um what.
Clement Humbert: It makes it easier to scale up your capacity, since they will pick up messages from the same pool of messages with the give you that you want.
Clement Humbert: You want to make sure that a single protocol execution is handled by the same consumer so we use keep partitions so each message is his kid with recipient key so you ensure that the single instance with process holding centuries from from single location even more more than that.
Clement Humbert: So this This allows to share your incoming load among multiple CAFE pretty easily and for dispatching.
Clement Humbert: And in my opinion it's great to have it decoupled from occupy, because then you can implement retry strategies or as complex or easy, as you want them without.
Clement Humbert: without putting all these coding unica pricing directly and you can scale up or down your your outbound developers independently okay bye.
Sam Curren (TelegramSam): So Stephen you've done clustering of occupy, but I believe the difference here is that when you've done it before a message may arrive at any of the occupied instances, and what they've done with this allows for the reception of the message to then.
Sam Curren (TelegramSam): be pinned.
Sam Curren (TelegramSam): To an occupy instance such that the State doesn't actually have to be shared between the occupy this is in order to sort of keep things straight within within an execution, am I understanding that correctly.
Clement Humbert: Yes, yes, and you ensure that you have no.
Clement Humbert: Good nice slides.
Victor Martinez (SICPA): Yes, Simon i'm sharing their screen it's exactly what you say, the way we see our or Python so far, so far we we want to have we have use cases for high availability, meaning.
Victor Martinez (SICPA): We want to scale aka fighter and have more than one bite on arm, you know in within our agency and the idea is.
Victor Martinez (SICPA): Like a Python is stateless meaning, you know you have an incoming message, then these triggers you know, a protocol, then you execute on all lot this this the state machine and then you execute the protocol, and then you persist again your state machine.
Victor Martinez (SICPA): So, at the end of the day, the way we see it, is located a cop Python is a stateless protocol executed and.
Victor Martinez (SICPA): We have incoming messages and outgoing messages, and this is why, where we have very a lot of expertise in in.
Victor Martinez (SICPA): In Kafka also that we have another another like microservices a not only a couple items so for us everything makes sense, but at the end of the day is like.
Victor Martinez (SICPA): I got by the new stateless it kind of scale horizontally on a combined is executing protocols on is let's say consuming messages on producing messages, and this is a lady under the hood.
Stephen Curran: But I think.
Stephen Curran: i'm worried there's a terminology.
Stephen Curran: mismatch here.
Stephen Curran: I think.
Stephen Curran: an instance handles a protocol message, not a protocol.
Victor Martinez (SICPA): Protocol message this is right.
Victor Martinez (SICPA): Right.
Victor Martinez (SICPA): Oh, this is why the way we do the long the lot but i'm seeing of the messages is based on the recipient key because the the operation of opening on a wallet is very expensive yeah, so this is why we try when you use yes that's it.
Stephen Curran: yeah so you're trying to use the same instance as much as possible, and you make it possible, but it doesn't have to use the same instance.
Victor Martinez (SICPA): Exactly exactly.
Victor Martinez (SICPA): Of course here, there is another improvement, which is the state machine.
Victor Martinez (SICPA): This in memory state machine right now, it is not share across multiple instances of our Python but ideally, the next step would be to have like this, a good memory like readies or mem cache where even occupied multiple items can share the same.
Victor Martinez (SICPA): distributed memory.
Sam Curren (TelegramSam): Very cool.
Stephen Curran: Use me again.
Though.
Stephen Curran: I wasn't clear on that, so in that state memory.
Stephen Curran: Is that the entire protocol, or just the the message that you're processing at this time.
Victor Martinez (SICPA): So my idea or well the way understanding is like a copyright on it just a less meaning.
Victor Martinez (SICPA): In between from sections is a is persisting the state machine.
Victor Martinez (SICPA): But this is the machine is either he'd rotated is that the name or it's rather the memory.
Stephen Curran: yeah yes so so you're saying you can improve performance you think if you can, if you can make it that that memory sharing lighter weight.
Victor Martinez (SICPA): Exactly So if you lose on distributed memory cache Oz readies where this memory, right now, it is isolated for each instance of occupied on can be shared across multiple instances of occupy time okay.
Victor Martinez (SICPA): and
Stephen Curran: The other thing to add is DC gov has done a rattus implementation that more or less matches this and so um the the.
Stephen Curran: occupy itself.
Stephen Curran: enables the use of cues but doesn't have an opinion on which to use and then these plugins you can use Kafka or you can use rattus or you can create another implementation, if you want so that's kind of how this works and and by default, if you don't use anyone.
Stephen Curran: occupy continues to use in memory.
Stephen Curran: In memory cues for these things, with the risk there that.
Stephen Curran: That you can have a an instance.
Stephen Curran: An occupy instance fail and you lose your in memory cute so that's why we want to go to these persistent cubes.
Stephen Curran: cool.
Sam Curren (TelegramSam): Thank you, I love this.
Sam Curren (TelegramSam): Is it the word proxy keeps showing up in my brain right like it's common to run an http server behind something like engine X that does things for you and this feels like a similar concept obviously not identical.
Sam Curren (TelegramSam): But the.
Sam Curren (TelegramSam): The, the only thing that i'm wondering about is the repo name itself, and that I don't get the proxy nature of what's going on, via the name of the repo I know it's an occupy plugin and it does something with Kafka but it doesn't really.
Sam Curren (TelegramSam): It doesn't really convey that that that's the case and is my only real feedback on this, I think it's wonderful work, but I wonder if we come up with a way to describe it a little bit better.
Sam Curren (TelegramSam): That that it could work part of the reason why i'm bringing this up, is that the.
Sam Curren (TelegramSam): we've had folks that were interested in using Kafka before as a dead calm transport, which is not really what you're doing here.
Sam Curren (TelegramSam): And, and so.
Sam Curren (TelegramSam): I think it may be, and maybe it's not a repo change but but but, like a clear description of the top of the readme in the repository that that helps make it clear that this is about using Kafka internally to add to an instance or to an agent instance, rather than.
Sam Curren (TelegramSam): Trying to promote Kafka as a as a as a transport generally speaking.
Victor Martinez (SICPA): sounds good, I mean we are happy to.
Victor Martinez (SICPA): suggestions and I think also our stiffen arm, we need to.
Victor Martinez (SICPA): align on the naming for both rapport so.
Sam Curren (TelegramSam): it's consistent.
Sam Curren (TelegramSam): But also be helpful.
Stephen Curran: yeah, so I think a couple of these topics will shift.
Stephen Curran: over to the aca bug meeting on.
Stephen Curran: Tuesday, this coming Tuesday, hopefully Victor and climate, you can make it because i'd like to take a couple of these Ian Ian is going to be leading it and i'm actually back channeling with him right now to say we need to go through a couple of these.
Stephen Curran: discussions that are coming out of this.
Sam Curren (TelegramSam): cool it's already named with Aries occupy in the prefix which makes it easy to associate with occupy.
Stephen Curran: yeah we need we need that but your Captain needs to be in there.
Stephen Curran: But after that we have to figure out what what we might have.
Sam Curren (TelegramSam): Well, and if this is a general concept that occupy has been making sure that it's named and clearly communicated that this is about sort of internal agent processing, rather than a transport I think would be helpful.
Stephen Curran: I don't.
Sam Curren (TelegramSam): confuse someone that thinks oh calf, because the transport now generally speaking in the dead calm world, I mean it kind of could be but it's never really been promoted, and so I don't want to cause confusion there.
Stephen Curran: and
Stephen Curran: i'm thinking.
Stephen Curran: i'll leave it, I will.
Sam Curren (TelegramSam): cool excellent.
Sam Curren (TelegramSam): Okay, we had there were three repos there.
Sam Curren (TelegramSam): And it sounds like two of them are the universal resolve or and the resolve that uses the did come as a transport, so those were involved in same conversation.
Sam Curren (TelegramSam): cool all right anything else from the from the sequoia team.
Victor Martinez (SICPA): Knowledge thanks.
Clement Humbert: Thank you.
Sam Curren (TelegramSam): So point of process here the.
Sam Curren (TelegramSam): there's there's the discussion about the resolve or piece being absorbed into occupy, we can revisit that here if we need to.
Sam Curren (TelegramSam): It makes sense that the occupy plugin and remains a separate repo, I think, from the from the architecture that we've described does anyone opposed to receiving that into the body of work inside of inside of areas.
Sam Curren (TelegramSam): This is a you got to speak up if you don't like it type of process.
Sam Curren (TelegramSam): Alright, I think it's sufficient Nathan, has been passed so whenever the either a rename or whatever happens, then, then that repo has been approved for transition.
Sam Curren (TelegramSam): The when it comes time to facilitate that transfer.
Sam Curren (TelegramSam): there's the the folks that hyper ledger usually take care of that we let them know what What moves and then they have a process that they use to move the repository.
Sam Curren (TelegramSam): That that's cleaner, if you move it then then sort of starting a new one, so that all the history and all the issues and everything else to transfer over as part of that.
Sam Curren (TelegramSam): So excellent, thank you for your work, this is great stuff.
Sam Curren (TelegramSam): And next on the agenda Timo do you want to do on a shared team, or shall I.
Timo Glastra: And I can share.
Timo Glastra: And you see my screen.
Sam Curren (TelegramSam): yep.
Timo Glastra: cool.
Timo Glastra: Okay, so i've been working a bit on like how we could migrate to fully.
Timo Glastra: Qualified dates and we've had some initial discussions before and just for context, if if people weren't at the previous meetings is.
Timo Glastra: Historically, in hype let's erase we use debts without full qualification, so that could either be and sovereign debt that.
Timo Glastra: Used know debts off prefix or did you list of that software effects, but you don't know which ledger it is registered on and and we also had did bear debts which historically were fully unqualified so now that we have a formal specification of how beard it should work.
Timo Glastra: It would be nice if we could update our legacy debts to qualified debts, and I think this is mainly needed in preparation for supporting did comfy to where our messages will indicate which that you're sending from.
Timo Glastra: and
Timo Glastra: We could yeah you would need to be a debt, so we need to qualify it.
Timo Glastra: But to be able to update it, we would need to have some process that both parties know, like all right, we have this old debt and they document and how do we transform it into.
Timo Glastra: The state that we wanted to be and.
Timo Glastra: i've written an initial draft of the rfc.
Timo Glastra: And it still needs a little work wording and clean up but it basically describes how can we qualify an indie debt, which is quite simple it's just you need to prefixed identify or with that indie and then the network so that's something you would have to know.
Timo Glastra: The more complex part and that's also what I would like to discuss here is like how we could qualify beard it's.
Timo Glastra: So first my initial thought was like it would be great if just the two agents could independently that they they're stored.
Timo Glastra: They document to one that supports the latest state standards so public key is renamed verification method and chances like that, and then generate the data peer identifier from it so both parties would know the new identifier after relationship.
Timo Glastra: But as I started like thinking a bit with it in Arizona with javascript.
Timo Glastra: It turns out to be quite hard.
Timo Glastra: First limitation is that you should choose a new alco.
Timo Glastra: If you don't want to negotiate from like how are we going to do is you would need to enforce an hour ago, and if we choose did pair to.
Timo Glastra: It means that document will be static and not sure if that's something we want to enforce if we choose despair one and it it's almost impossible to determine the old it based on the debt, which in in when we're using Community coordinated updates.
Timo Glastra: can be quite hard, if you want to dynamically that they did when they come in, and it would be quite hard to correlate them, so it would require like an upfront migration, so you already have the new identifier, and could link it to the old identifier and.
Timo Glastra: And another limitation I ran into is that the did bear spec as know can localization or normalization scheme, which means that the way the Jason will send to you is really important for the actual date that will be generated and the bear one will create a hash so if.
Timo Glastra: The first if you've got accent with ID property being the first element in the json body but somehow to, we have to have an airframe javascript true serialization decentralization it ends up as the less per meter that generated debts will be.
Timo Glastra: Not equal despair to is less prone to this, but still that the surfaces are encoded.
Timo Glastra: basics before encoded I think SS so if the idea of the surface or the type is switched around, even though the value of the documents are semantically to save the date that is generated from it.
Timo Glastra: will be different.
Timo Glastra: I mean, this has been.
Timo Glastra: A limitation, or like something we had an issue we had to deal with an F g.
Timo Glastra: Any way because.
Timo Glastra: Jason by default you can't assume on order so it would have been a lot easier if the bit pear spec would have defined the normalization or cannibalization scheme and.
Timo Glastra: But yeah that isn't there, so my question was a bit like.
Timo Glastra: what's the approach we should take care, we could define a protocol that you would share to transform big document with the new debt, so one party does it the other party verifies it and, but then we're basically creating the connection Protocol itself and and i'm not sure what the.
Timo Glastra: yeah the what we gain from it and we could maybe look at some in between.
Timo Glastra: Ways using a decorator or something i'm not sure, but I just would like some input if, like i'm completely missing some approach that that would work here.
Sam Curren (TelegramSam): So I was wondering, in my mind Timo about the.
Sam Curren (TelegramSam): Protocol form of this wondering so so obviously if we have a an easy way that we can all sort of interpret the same thing you know and accept either the older, the new form it's easy.
Sam Curren (TelegramSam): When it isn't it might be worth actually having the parties just be responsible to tell the other folks now The good news is it's a lot simpler than they.
Sam Curren (TelegramSam): I believe, then, the connections protocol, because you already have a secure way to communicate you already know who each other, are so there might be.
Sam Curren (TelegramSam): More or less two messages one is you know hey How would you like to upgrade unqualified did X.
Sam Curren (TelegramSam): And the and then it response which could also be sent without the question which would be here's the you know the here's how I am going to make this happen right.
Sam Curren (TelegramSam): here's here's the here's the fully qualified form to compensate for the other one, it is a little bit more complex in the implementation, in the sense that.
Sam Curren (TelegramSam): You know, we you've got to be make sure that the other suffers capable of receiving the message prior to you actually sending it otherwise they'll just ignore it, it won't make any difference.
Sam Curren (TelegramSam): But that is probably in my mind when they're when they're there's variability in what's going on that might be the clearest way to make that happen.
Timo Glastra: yeah I was thinking about it, but then I was thinking like well anybody actually implement it and, as this is only going to be an issue with did compete to and did country to as a quite elegant way of doing rotation of dates.
Timo Glastra: I was thinking, what if we just don't write a protocol and the first time you'll send messages and get comfy to you will.
Timo Glastra: Use the new dates or a completely new that new keys and from prior field will contain the previous dates and maybe it's it's something like that, if we want to prefect said that legacy, fair and then we have the old identifier, and then you're done with native difficulty two.
Timo Glastra: approaches which I was thinking like Is this really worth the effort is anyone going to implement it.
Sam Curren (TelegramSam): You raise an excellent question because I was thinking, the same thing if we had to cover to right now, this would be almost a non issue.
Sam Curren (TelegramSam): Because of exactly what you're describing.
Sam Curren (TelegramSam): But the other part of me would feel so much better if we are able to get this cleaned up prior to really having broad use of did come V2.
Sam Curren (TelegramSam): So yeah we are about out of time and I don't want to run over this meeting, immediately following us.
Sam Curren (TelegramSam): So Timo so number one excellent work and, and this, this issue is in the areas rfc repo, and so we could talk about this.
Sam Curren (TelegramSam): i'd encourage you to go and share your thoughts there so that we can figure this out team has done a wonderful job sort of guiding the discussion, but, but we need input.
Sam Curren (TelegramSam): And feedback from, particularly from software implementation about doing this.
Sam Curren (TelegramSam): And because that's this is going to whatever we decide is going to mostly fall on those doing the actual coding work in agents right.
Sam Curren (TelegramSam): And so, please go and and and share your opinion there on issue 735 and the areas rfc repo and then Timo let's let's bring this back up next week as well this this ongoing conversation I feel like we get smarter every time when we bring the topic up in our in our regular weekly meeting.
Sam Curren (TelegramSam): So appreciate your good.
Sam Curren (TelegramSam): appreciate your work, bringing this along and Claire and just in articulating our choices so well.
Sam Curren (TelegramSam): Very cool Thank you to Joe and those of you that are here for the next meeting just hang out and the rest of us will vanish we hope you have a great day and a great week and we'll see y'all later.
Sam Curren (TelegramSam): Thank you, the host.
SeanBohan (hypeledger): Stop recording before the next.