 Hello. Hi there. We have a hyperledger wiki down today, barely was able to scrap the link for the Zoom meeting. Luckily Mira saved me, he had it, I successfully connected. Did you say the hyperledger wiki was down or something? Yeah, it still doesn't work. Oh geez. By the way, I see we have a newcomer here, hello, Innocence Autopilot. Let's give it a minute or two more and then we can start. Hello. Hi Nayan, we're just waiting for everybody to connect and I'll be starting in a short moment. Okay, all right, yes, I wasn't hearing anything, so got it. Yeah, yeah, it's your first time, right, so it's all good. I'll see how it goes, actually it's an unusually rich meeting in terms of people connect that. I think this might be the historical record, it's usually not that nine people. Oh yeah, and Swapter is asking for a link, so we'll have one more person coming in here. Okay, so I'm just reading what is this Innocence Autopilot writing to the chat. Apparently it's a bot, which is taking notes, and it seems like some sort of app. I don't think we need this, I think the recordings from Hyperledger are already automatically transcribed, so I'm gonna remove this bot if it's possible, it doesn't look like it's possible, so I guess we'll just have to leave it that. All right, so let's get started, I'll share my screen. We don't have, we don't have the Viki working, so I'll just, am I still here? Yeah, I'm here, I'm sorry for confusion here, I confused myself, there we go, sorry. Okay, okay, here we are, just a second, I'm really apologies for messy start, all right. Here's the screen, there we go. Okay, and I can't get rid of this screen right here right now, yeah, we'll just move it here. Okay, so starting, starting with the Hyperledger and try this policy notice, I'll just give it a short moment to read this, all right, I think that's good, so yeah, welcome to 29th of June 2023, ARIZ 6.1, today we have an offline agenda here in a notepad, so I see that we have some new faces here, new nicknames, what would you say? So if you would like to do a short round of introductions, just go ahead, if you would like to stay under a shade of anonymity, you can just stay quiet and just leave it. So if you would like to introduce yourself, you can do so now if you are connected for the first time. Yeah sure, I'm Myself Abhishek and I'm representing Instant Organization from Myself and I'm trying to understand the VCX framework development in iOS and Android, so that's why I joined this call. Awesome, thank you. Thanks. Okay, let's go ahead, so yeah, the second point in the start meeting discussions, Livy6 notice, I just saw some discussions pouring out on Discord about the Livy6 iOS and Java, I just wanted to like put it out there one more time, kind of verbally on this meeting if somebody's watching on YouTube, I just wanted to make sure that everyone involved is aware of the status of the Livy6 iOS and Java and that there are like different recommended ways how to how to proceed nevertheless, I left a Discord message, maybe Abhishek, it might be relevant for you, perhaps like before we like dive into other stuff around kind of a more mundane part of the meeting where we discuss like the technical stuff about work we've done and work we're planning, we can talk a little bit about Livy6 because it seems like that's the main point of your interest right now, how to build iOS and Java applications, so have you tried to work with Livy6 yet or are you just looking around, what's your kind of status? Actually, I downloaded the iOS sample demo from your property and I was able to run it in Simulator in Rosetta mode and now I'm trying to understand how to provide the config, so for example all the IP address and wallet key and credentials, so I'm trying to understand that how to provide the exact values or how to run the mediator in public IP, so that's where I'm at the moment. Right, yeah, so I guess you had some of the, did you post any messages on the Discord? Yes, yes, scroll a bit down, a bit down, yes Abhidhar, this one Abhidhar, yes Abhidhar, oh okay, I see, right, so you are using the demo from, as was done a few years ago by SK Telecom in Korea, so we are actually successfully run this, correct? Yes. Oh I see, I see, I'm not sure what version of VCX is being used here, it might be it might be it might be kind of old but I guess it's still possible to run this, but yeah anyway just to just make sure that you are aware, like surely you can run this and I guess like if you want to use VCX you know and build, start building for now, iOS slash jam application on top of that, I think this can be a good starting point but just be aware it's been done three years ago and since then there has been, I think not terribly a lot but some breaking changes in the API, so if you would then go ahead and update VCX in this demo I guess you would run into some instances where some issues where you would have to tweak the APIs and kind of just update the stuff to use the latest version. Yeah, okay. And what's your thoughts on the UNI FFI if you have any or if you have time to kind of consider it because basically you know the approach we recommend as we state on the main page is to rather use you know if you are kind of committing like long term to build some sort of wallet application and you want to have it native there's much better approaches to use UNI FFI every VCX but that's really just in diapers right now so like if someone decides to go with that like there's significant investment which must be done to to kind of you know get this to more production ready state and actually we have a we have a mentee you know as a part of the mentorship program Swapnel is on the call with us who's working exactly on this kind of taking the UNI FFI wrapper this POC from POC state to something you know at next stage maybe not production ready right of the bed but definitely something more a demo demoable than just POC because currently it's very early early stage did you have a chance to have a look at it yeah I saw it yesterday but there is no documentation or anything for there yet I know that it is in progress so once it will be in stable stage then definitely I will try it out but currently there is no documentation or steps to use it at the moment like this yeah it's more like you know it's kind of just the first stepping stone in building it and like basically if you want to if you would want to go down this route you would have to literally you know that would be the part of work to be done is to actually build a documentation and kind of just figure it out how should it work and design the whole stuff and and build it but it depends on your you know and kind of end game and and and your resources and stuff like that it's definitely easier to kind of get something I guess done with libvcx today but yeah it's not a great long-term investment so it just it just depends on on your situation right correct so I guess I should do the libvcx for now to brush up my fundamentals first and once I will be comfortable then definitely I will spend better time on unify areas so yeah for a few days I will be fixing the libvcx issues and trying to implement the working demo with the wallet and as a long term I understand that I should use the unify areas v6 so let me clarify some of my fundamentals and basic steps then I will be able to contribute in the unify areas v6 all right all right if you would have you know if you would make actually improvements to the you know this v6 demo iOS it will be amazing if you can update it you know if if you update the version or do some improvements like this being kind of you know under and it's now under layer of dust nobody touched it for three years so if there's improvements you do to this it'll be valuable if you can contribute a pull request here it's under it's under uh it's under this Korean organization I'm not sure if you maintain it if you if even yeah I'm not sure but maybe if if they don't you can just fork it and you know do a new version then we then we could link it from the main repo like hey this is updated version for for libv6 demo hey I was I was wondering as well hey I'm George by the way I was the one responding to your discord messages I was wondering where you got the provision values from you know the IP address and and all that is that something you're running oh it's not running for me at the moment so yeah I'm following your suggestions so I will I need to create some I need to use the mediator first I start mediator first in some public IP and then only I will be able to get the correct IP address and all the credentials so for now I just copied some of my you know from my invite URL I copied some data from there but it is not working so now I'm trying to and generate some means use the public IP and run the mediator on this IP to okay to catch the all the required parameters cool yeah it sounds like that would get it going but then yeah there's all the issues with the maintenance of it and whatnot yeah yeah is there a question for Patrick but is there a public instance of the mediator running anywhere yeah we definitely had it and I'm not 100% right right now if it's currently up and running but that might save save a lot of hassle to people trying out the first time so I'll check that and I'll check that right after the meeting and update on this card so if yes Abhishek we could we might actually be able to provide you a kind of you know a functional deployment of the mediator so you don't have to bother running it yourself at least for the starter yeah that would be helpful yes thank you all right let's go let's go on Amira at least the EC2 instance which runs the the agency is running I'm not sure if it's like for exposter working I think all right we'll check that so I'll put like a to-do to-do note here after anything to check okay yeah so next up we have like mentorship update so we have started the mentorship program about a month ago and since that like kind of onboarding transition and stage and we're putting together the kind of project plans so we have two projects mediator which would be Aries compliant mediator written in Rust kind of kind of basically written from scratch um and we have second project um UNIFI we already mentioned the UNIFI wrapper Ariesv6 wrapper and we have the the respective mentees on the call as well so we have an IAN for the mediator and softnail for the UNIFI so yeah if you guys can just like give a short you know to one like I don't know 30 seconds or one minute two minutes whatever you want kind of upgrade update on what's your what's your status you know what would you been up to so far in terms of the the project and the mentorship and and what's kind of like you know your next steps going ahead yes hi I'm Nayan I'm under this mentorship at Aries with the X team I'm working on the Aries mediator project which is I think previously also called agency their similar roles basically it's a Dropbox kind of service where people can drop messages for you which your agent can later pick so for example mobile devices can use this to get messages when they're offline or when they face network interruptions or when they're switched off so they can just assign a mediator and the mediator can store messages for them so Aries VCX currently doesn't have a Rust based mediator there is a Node.js based mediator VCX agency node I am building a fresh Rust based mediator for the Aries VCX project that's my task for this mentorship so over the last two to three weeks that's when we started our mentorship me and Swapnil so I've been up to a few things firstly there was onboarding from Hyperledger and the Aries VCX team then I also personally was trying to get comfortable with the Hyperledger ecosystem I attended random meetings and just popped in and tried to get an idea of what people do at Hyperledger then on the development side the last two weeks we have been busy trying to set up the VCX development environment it starts easy at first building the project and running the unit test but with integration tests it gets a bit tricky so we were a bit stuck regarding that for a while but thankfully with Swapnil and the team's help we finally resolved those issues and I think yesterday I got greens on the integrations test so yes now I think hopefully we are in a good state to start working on the Aries VCX I've also been looking into and researching frameworks that would be suitable for the project since the mediator is a web service I've been looking at Rust-based web frameworks for this project which satisfy the requirements that we have for Aries mediator so Patrick described some requirements which are mainly horizontal scalability performance and the ability to use web sockets so web sockets for being able to communicate with mobile devices using very less battery life or energy so these were the main requirements and I've been looking into web frameworks that satisfy these hopefully by next week we'll have a final selection so yes that's my status until now yeah thank you thank you that was very like clear and concise thank you for that um yeah maybe now we can turn to the other project Swapnil there is yours okay hi everyone and first of all thanks Nayan for a beautiful introduction it was very concise so I'm presenting working on the Unify front and I'm really glad that someone else the the bulk of this project will be helpful to at least to some people so I wish I think once we are done with this project I think we're able to supply some things that are helpful helpful to you so my project is is around developing an API around the Aries vcx that enables development for mobile devices and especially in Kotlin and Swift because that is what Unify currently supports and also Python but we're not concerned with that for the moment so for this project in these weeks building up for this project I have been working on setting up the development environment like Anand said that the integration tests are a bit finicky when it comes so so we have been setting up that and I think Nayan gave me some scripts that were able to that made that made things easier for me as well so and in the in the past few weeks I've been working on on a demo application using Unify and getting things up and running with the current state of Aries vcx Unify wrapper so building up to that I did a few templates this was inspired basically because the IntelliJ has the support for adding these these small templates that you can use for this project so I decided to do a couple of those so I will drop the links for those templates and for the application if anything finds that anyone finds that useful and that was my build up to presently where I am and the further in the coming weeks I will be starting developing the library itself and developing a demo application that will go along with these along with the development of the Unify wrapper so this will be my project awesome thank you very nice um yeah it's also it's also great to hear that you guys are like you know helping each other vacant for it so you are not only working with us but also help each other together as mentees and these two projects are highly related and kind of coupled in some sense I mean not coupled but definitely there's an integration point between them so so as a cooperation will be very can be very like fruitful and helpful for the for the final final state of state of things well that would be I guess sorry like initial initial meeting discussion and I now to the kind of the the usual usual program so just reviewing the work and thinking about what to do next and so we did not have like a tons of stuff tons of stuff I think since last week but we have completed the peer DID implementation I think maybe last week or the I guess talked about it I don't know is there is there something you would like to you know say about this work I don't want to repeat you know what you might be possibly talking about last week so yeah we have we have spoken about the motivation for this for implementing support for peer DID 3 previous or peer DIDs in general on the previous call and as you said like the the implementation is now is now done finished at it's about constructing, resolving, parsing, serializing, deserializing and like overall working with peer DIDs which will be which is necessary due to the like coordinated community wide move away from unqualified peer DIDs to unqualified peer DIDs so yeah that's about it like the implementation of course like it's not being used anywhere yet so it's just an initial implementation which may change depending on the on the use case when it's fully integrated into various VCX right and and did exchange specifically which which is where we will start which which will be the first place where it will be used and that that is another piece of work which is underway right now yeah that's right we have an item here it's a worry in progress as to the exchange protocol yeah we are we are also since we are at it kind of jumping back and forth a little bit but it's fine we are also doing that like following our new new state machine implementation guidelines so that implementation will be IO less and using the state pattern as it is now or also but it will be additional additionally using the IO kind of IO less principle so that'll be exciting lots of goodies coming with the DID exchange and so DID exchange will be coming with peer DIDs and if I'm not mistaken also integration of the of the new DID document right that's let's correct this right awesome okay now back to back to the main point we are going through the the work done since last week one more thing which is like largely done is like test refactoring I've been working on myself for well it's been it's been dragging out for a while then I went on the whole day and the work left undone but over the course of the past few days I I kind of drove into completion so there's a PR ready PR ready for review it has lots of things squashed into it but it's usually like small changes so the delta is quite high but I was looking through it like myself and honestly I think it's not too difficult too too too hard to review this is many of the changes are very trivial but to kind of like go over over the things which are down here and why I think it's cool is it's like so first of all previously there has been places where we have hard coded basically the the underlying implementation we use so for example we had in we have lots of ellies slash favor integration tests and previously I'll show you an example here just let's set up yeah we had kind of different ways of constructing ellies and favor and the different was that the ellies was kind of dynamically built this function always dynamically built ellies components her credex implementation like her unknown creds implementation and ledger client implementation based on the features whereas with favor it was hard coded so that previously where is it previously favor was I think always using the the in the the vdr tools implementations and so when you then run integration tests with with kind of credex feature flag then yeah you would run ellies with you would run ellies with credex but it wouldn't really run the favor side of thing with with credex and this pr is adopting the same approach for ellies and for favor so it's introducing similar like we had a function create ellies we have now create create favor and even more like even further and this applies for both ellies and both ellies and favor the way of building their their profiles they're using is is reusing the setup profile kind of testing to I know testing helper strike we had so so there's no like duplication there's only one way really we are setting up all of our integration tests previously ellies was being yeah ellies was kind of dynamically you know the selection of profiles dynamic let me find that ellies it's hard to find ellies there it is so when ellies was being built this is this is a new code sorry what I'm looking for is in this old seemingly deleted file input favor input ellies yeah so previously we had our own custom way here of like looking at the feature flags and then setting it up we had like custom function here so instead of that now when we build both ellies and favor the way we do it is that we always reuse this setup profile it's in this setup in this setup file is it this one yeah in this the setup we had this setup profile and that's literally the thing which is like looking at the feature flags and then constructing the profile accordingly combining the the library the components with the respective implementations and so this is now like literally used for all of the integration tests whether it is using ellies or not you know whether it's you whether it's ellies favor test or and whether it's ellies or favor or just just this is the the canonical way how to you know how to dynamically build the components for any integration tests so this was like one significant improvement in areas vcx testing just kind of unifying everything and like using the same approach and one way of initializing library second like significant thing was there are the changes in libvcx core and that's basically enabling libvcx core and there's for technically also the libvcx itself and vcx napi rs nodejs wrapper to run run run the library with different combination like different implementations this was more of a preliminary work to make that happen but there's another pr build on top of this which is harnessing these changes and let me let me find that i'll pull it up yeah so we have one more small pr on top of that which is introducing feature flags to libvcx and to the nodejs wrapper as well to kind of opt into whatever implementation you want to use and you can you can even select that granularity so you can you know you can choose to use let's say in the vvr ledger client let's say you know vdr tools ledger client and anon crates like critics implementation for anon crates or you know any other combination so yeah this this was now fairly easy to do with the changes layout in the previous pr and it's running in ci now with you know two different combinations the tests are passing so we finally like tested on a libvcx level as well kind of additional i guess level of confidence that things are working tested both with with critics and with the old legacy implementation vdr tools yeah so that's what i've been up to here and essentially what i'm still busy with i i still need to update libvcx to try to run to use in the vdr as a ledger client instead of vdr tools and that's most of the stuff we have here except migrations and for migrations that's in the hands of bogdan so how is going there as annoying as ever uh essentially i i remember that i've been talking with mira in the past couple of calls these past few weeks and i was so afraid i'm going to jinx this because it all appeared to be so easy um and i'm gonna jokingly say that you came around in the and spoiled it all up essentially the scenario that you proposed it was um it's kind of surfacing some stuff that i'm not really sure what why it's not behaving properly but it's not so it's a joke it's obviously a good thing that we caught this um so there were a couple of things um one thing was that in vdr tools the developers for some reason were storing the registry deltas with a non-intuitive key and it didn't seem like something important so i didn't include it in migration sorry in the migration um so that's one thing that surfaced but that actually came as i was debugging the previous issue uh or i realized that as i was debugging the previous issue and the issue is that after the migration is done um when credentials are issued something doesn't match in in ursa so and i frankly have little to no idea what because all the values are encrypted they're always changing and there's really not an easy way to troubleshoot what's wrong but it's i tracked it down to basically some check in ursa um and it it's mainly either related to how the credentials are issued and maybe something not matching there we're not getting generated properly which would seem fairly odd because when like the credits profile was not like that was already there it's being tested it technically works so when credentials are issued from credits like when you start the test from the credits profile everything works but when you migrate in the middle and you want to issue another credential essentially the credential gets issued but the proverd where the holder doesn't accept it because some checks some encryption checks fail um yeah and like i said i'm not even entirely sure why that is happening and i've been chasing this down for the past couple of days and today is pretty much going to be the same thing um but it feels like this is the last mile hopefully uh i don't want to jinx it more um yeah well uh i think so if it will be like if you know if it would be like uh really problematic or cryptic to like we cannot get we cannot get past this because it's not a scenario you want um like it's it's not even about publishing the revocation registry or the deltas so that's not the issue i tried that it's just that after the migration whether the registry is published or not or the deltas are published or not that credential check still fails so we cannot get past it and say that okay we're just going to push everything to the ledger before the migration and then do the migration and then move on with our lives we can but uh yeah there is kind of like you know non-technical solution to this um is that you say like the migrate we can say a migration strategy for for this is that after the migration you use you you know you can't continue issuing on top of old credential definitions and instead you have to like i guess just just build the new ones and start issuing from those and that way you don't really have to solve it you know on technical level but we will still definitely have to still support our vocations but perhaps we you know we can say like you know we don't support uh issuance post migration and given the fact that i think there's not so like i'm not aware of any other issuers other than ourselves right now i think it's like you know acceptable like solution as far as we can be ourselves can accept that and i i guess we might if it's too cumbersome to like figure out some cryptic uh or something awesome i mean the worst stuff is i believe impossible to figure out like that's the point of it right um but i don't know if shoving this under the rug is really a good idea um because like i said it might um in my point out that there's an issue within the migration itself or maybe when the credential is issued um so i wouldn't really just disregard this like that okay now let's give it some time then so try to try to solve it uh properly have you um i don't know if this will help it all but have you looked at the existing migration scripts um like i know akapai uh went through this migration at one point in time i wonder if they i did i did but i i haven't noticed that he did anything special right um so i'm i'm not really sure what the issue is which again kind of points or kind of makes me wonder whether the like the issuer issuing credentials is the problem and whether i messed up something there in the credits profile i don't know um there was there there's like there is a small oversight regarding the like dead qualification but it's not applicable here um that's basically something to take care of in the future maybe in the next PR it's something really small um but again it's not it's not the issue here um yeah no i'm i'm if you if you i don't think of any ideas i'm more than willing to listen so in the meantime i think i posted some message on on the maintainers chat essentially i'm gonna try and track down uh all those leads um particularly let me see if i can find that message um yeah so like i said it's either something that gets messed up during the migration itself which doesn't really seem like the case but who knows um and or it might be the case that something within the test environment like in the test itself um i don't know maybe there's some static stuff that kind of messes things up uh that also doesn't really seem likely but but again i i don't really know um and maybe a small small idea for myself here is like try if see if it makes any difference after you do after you do the migration you cannot issue the credential right so try to make a new revocation registry and try to issue against that and so maybe if it somehow if if there's a problem with migration which relates to revocation registry itself then maybe if you rotate it it will work you know i guess that could point towards something but then if it doesn't work regardless of whether you use new or old uh uh like uh revocation registry then it might be something to do with uh like credential definition migration perhaps or something more general or shared yeah it's not a bad idea i was thinking we're rather wondering um when we test then we set up the indie pool and whatnot but what if because i i believe that the credential data and the credential definition data that's static within the tests aren't they well yeah like some ideas and stuff i was wondering whether if i try to uh because i cannot decipher the encrypted values but um like if i clear everything out after i run a test let's say without a migration take note of the values and basically reset the entire environment and try to run it again with the migration i'm wondering whether the values might be similar you know across the steps um but i don't know if something is dynamically generated it probably is um some things probably are um the key yeah the crypto stuff definitely there's lots of like some some random like yeah well then um yeah i'll um it's a good idea with rotating the revocation registry and trying to do that too um but yeah it's pretty much just needle in a haystack kind of thing and i'm i'm not going to be surprised if it's going to end up being something really really small but uh yeah it usually ends up like that okay um well i guess uh i don't know i i have a work ahead empty i couldn't figure out what to like put here um because we are already busy with like lots of things um in progress so and the the exchange is kind of big and this migration might take a while and i'm myself busy with like libcx uh kind of integrating those modular libraries in libcx but i guess like uh well kind of things which will come after that i think it was included in the notes for the last meeting uh it did uh without me um that was the the CLI demo and then we had state pattern it's been it's been here for a while but nevertheless it's still there it's like one of the top priorities i think and what else um uh maybe the the harness uh 80 was it harry's test harness what's the abbreviation a t a t h a t h um uh test update back channel fictional update uh i guess that's hard kind of the main points yeah i'm i'm hoping to have a go at the cli demo uh in the next week i think i'll start with um making that dummy relay or mediator implementation that we talked about um because i think that might be helpful to uh swap nil maybe for some of the tests that you might want to be running on the wallet right right so how would that roughly work there will be some small htp server which can just receive messages and there's some simple way to uh you already outlined something i think some yeah i made one before just you know imagine like a simple queuing system a queue of messages under an id and not secure or anything but yeah good testing locally yeah right right yeah that sounds like a good start all right folks uh we came to the last point we just end meeting discussion right and do we have anything else to discuss well it seems like it seems like no so which is fine uh so we can wrap it up um thank you all for joining in um have a wonderful day and rest of the week as well see you see you next week again thank you have a good one see you guys play