2023 06 29 Aries JavaScript Meeting

2023 06 29 Aries JavaScript Meeting

Show Video

Timo Glastra: Good afternoon, everyone. Timo Glastra: I'm wondering whether we are in the correct meeting, actually, because I think they recently Timo Glastra: change the Timo Glastra: the Timo Glastra: meeting link again. But it seems you're all here. I didn't know if Timo Glastra: I'm going quickly. Check the auto link and see if there's more people there like I'll supposed to here without come back

Timo Glastra: a sec. Timo Glastra: No one in your link, so I think we can just use this one. Timo Glastra: all right. I was just checking is the hyper ledger Wiki down for Timo Glastra: for you as well.

So let me check. Berend Sliedrecht: Yeah. It's it seems to him that loud. So I think so. Timo Glastra: Okay.

Timo Glastra: well. Timo Glastra: then, we're gonna do it with. Timo Glastra: He can be for today. Timo Glastra: I'll try to convert it to Timo Glastra: to the to the Wiki. if it's back up again. Timo Glastra: Cool, I think we can get started small crowd today.

Timo Glastra: monitoring. Why, that is Let's yeah. That's good start. It's open to the, I assume. Jest group working group. Call off Timo Glastra: June 20, ninth. to remember you to buy it by the high pledge code of conduct, and then Timo Glastra: into this policy. cool. Timo Glastra: Well, I recognize you on the call, so I think we can spare the the introductions. Feel free to add yourself to the tennis list if you wish. So Timo Glastra: any status updates people want to make. I think Clay showed the Timo Glastra: shared components and update to a J 4, 0 for us. Finally being merged right?

Clecio Varjao: yep. Finally merged and in in by phone. And we are. Clecio Varjao: yeah, no, it's working great. A few hiccups cut bugs, but nothing, no, surely stop so awesome. Work Timo Glastra: cool. That's great to work to our to here. It's been a while so happy. That's finally for now, and it's working mostly Timo Glastra: as it should Timo Glastra: cool that we'll still so bye for the call this week.

Clecio Varjao: no, don't by this work Timo Glastra: cool. Is that goodbye. Timo Glastra: Any relevant updates for me, Michael. Clecio Varjao: I did not attend. I kept my meeting. Timo Glastra: Okay, yeah. Me need it. Timo Glastra: okay. Timo Glastra: Then for the agenda for today. So the wiki was

Timo Glastra: not online, so I couldn't look at like the we had a long list of topics from last week that we in the end didn't get to, but I know one was Folks don't like the 0 for 0 release. Now it has been, now that it has been released. Timo Glastra: place you. You want to talk about the the future of Aj, right? Clecio Varjao: yeah, I wanna.

Clecio Varjao: I've had a few people reach out to me about ares components and the state where all of them are. And Clecio Varjao: I want to ask you to community about it. He has anybody taught about it? How? Clecio Varjao: How those other command and components fit in and what is the vision for Afj. anyway.

Timo Glastra: Cool. Yeah. I think we can Timo Glastra: go for that today. Timo Glastra: any other topics Timo Glastra: we want to. Timo Glastra: discuss with the people want to add to the to the agenda. Timo Glastra: Cool? Okay. Timo Glastra: yeah. Go ahead.

Charles Lanahan: Oh, sorry. Not an agenda. I am per se. But Charles Lanahan: I open an issue to update the documentation for the storage config parameters. Charles Lanahan: But I didn't quite know where to look for Charles Lanahan: to do that completely. So if anyone wants to

Charles Lanahan: point me to where that lives, I'd be glad to do that. Timo Glastra: And so Charles Lanahan: in in the docs. Timo Glastra: Huh? Charles Lanahan: sorry issues. Charles Lanahan: Yeah. So I I figured out how to the memory database actually ended up working.

Charles Lanahan: what this issue is to update that because you click on that link, it just has the. Charles Lanahan: you know, like a, it takes a key and a random random to the keys and values. So I, this is the updated documentation for that. Timo Glastra: Yeah, okay, so you're mostly about if interested in using the Timo Glastra: in memory. Option? Right?

Charles Lanahan: Well, yeah, no. So I figure that out, I was just if you click on that link on the top Charles Lanahan: I was going. I this is an issue. I open. I I I I can update this section right here. if someone can point you where that lives, there's a postgres Charles Lanahan: section right for storage that has a bunch of key values down there. And then there's some sqlite ones that aren't really documented anywhere. Charles Lanahan: So so the issue is an offer to update the storage config with the various backends. Charles Lanahan: so that it's not kind of a looking for various things all over the documentation.

Timo Glastra: Yeah. Makes sense. I think. it's Timo Glastra: I don't know. May. Maybe Ariel knows this. But like, it's the storage object, it's this, is it different between Oscar and in the sk, yeah, right? Ariel Gentile: They are similar. Ariel Gentile: But yeah, that there are some different configurations. Both have the type of

Ariel Gentile: the type field where you said, if it's a skylight, or if it's a Ariel Gentile: that's great. Ariel Gentile: And also, there are some other parameters like, for instance, with the time out and some some other stuff usually used on the Ariel Gentile: about the, it's a bit different. Charles Lanahan: Right? Yeah. So yeah, if if I I can do the documentation update, if you guys will just point me to where Charles Lanahan: the config options live. for reference. Right? Timo Glastra: Yeah. Okay. yeah. And then we can probably add a section on both. how to do it within the SDK, and with uscar And then once we update the wallet Api, a bit more, we can Timo Glastra: separated a bit more between the 2.

Timo Glastra: yeah. aria. Could you add some pointers on like for the different options. Or. Ariel Gentile: okay, yeah, yeah, I will do that. I will add it to the Ariel Gentile: to the issue. So Charles Lanahan: how it works Charles Lanahan: cool. Because, yeah, I'm glad to adopt. I just wanted to make sure I was doing it right?

Timo Glastra: Yeah. cool. Timo Glastra: awesome. Okay. Clecio Varjao: So may be as well to know there is an issue that did we encounter doing the bifold while it's about the auto linking But Clecio Varjao: link secret creation. Timo Glastra: Yeah.

Timo Glastra: this one. Timo Glastra: Right? Yeah. Timo Glastra: yeah. So issue is link sequence are created by default anymore. We expected that out to wallet. So now you have to do the mainly

Timo Glastra: and a Pr was created by Jason to automatically create it. Timo Glastra: and we had some feed backgrounds on it. I think Timo Glastra: there were 2. Timo Glastra: Yeah, 2 2 things to consider here, I think, is Timo Glastra: one. Where do we create the link secret? If you want to create it by default?

Timo Glastra: taking into account. No, to Tennessee. Timo Glastra: maybe that you are not going to use A of J as a holder. So then it wouldn't really be needed to create a link secret, is it? Well. Timo Glastra: does it matter if you have a link secret that you're not going to use? I don't know Timo Glastra: And we also need to make sure. or maybe that's a consideration. like race conditions. If we do it in a request, credential call, and you request to credentials at the same time. Then, they could both create a a, a link secret, for example. Timo Glastra: yeah, any thoughts on this? Clecio Varjao: Yeah. So so from our perspective is was really about kind of the the

Clecio Varjao: the Usability for the Dev perspective. That is like we expected that that when we initialize the agent things would be ready. I think, where exactly is going to be initialized. I don't think it's that important more of the expectation that when the agent is initialized. It's fully initialized and ready to go. Timo Glastra: Okay. Timo Glastra: Mario, you left some comments like, do you think Timo Glastra: what? What? What needs to be changed before we can merge this or Ariel Gentile: no. Actually I I was. I was saying that that

Ariel Gentile: that you you are right about about this issue on the on the multi-tenancy. Ariel Gentile: But if we are going to to add this logic to the credential Ariel Gentile: request or the first credential request, for instance, it will not be so, or or I couldn't find a a, a very straightforward way to to add it to the to the code in a killing way. Ariel Gentile: One of the issues is what what you have mentioned recently today about the the rest conditions that it's it's certainly possible. But also to Ariel Gentile: you know.

Ariel Gentile: we, we will need to be calling to the an ongraduate Api from the all the service, or from the Ariel Gentile: from the credential, from a service which is a little bit. We are from my perspective. Ariel Gentile: So probably probably Ariel Gentile: we can. We can keep it as a As on implemented, because Ariel Gentile: it will be any way an optional parameter. Maybe we can do it. Ariel Gentile: Maybe we we can do it force by default if you want.

Ariel Gentile: instead of being through. Timo Glastra: And so where would we create it? In that case. Ariel Gentile: No, no, I mean in the we. We can keep it as a straight and implemented. Now in the initialization. Ariel Gentile: it will solve this. Ariel Gentile: I mean. It's it's simpler.

Timo Glastra: But in initialization this this method is called only once. Right? Ariel Gentile: Yes. Timo Glastra: so it won't work for me to Tennessee.

Ariel Gentile: It will not work what it is Ariel Gentile: I can. I cannot find a a solution to. Ariel Gentile: to, to be confront, to, to to everybody. But Ariel Gentile: if we are going to do it in the, in the credential request. We have this problem you mentioned

Ariel Gentile: about the right condition. That is possible. Ariel Gentile: Not likely, but possible. Timo Glastra: Yeah, I think it's very unlikely. So maybe we can go ahead Timo Glastra: with that approach. Berend Sliedrecht: I I don't think it would be a race commission right? It would be more just that you have to link secrets while you probably 1 1.

Ariel Gentile: Well, yes, but that that's a problem. Yeah, no, that's that's very true. That's true. Clecio Varjao: So is is that an it? A little bit of architecture problem? There is a the system and any initialization. But there is no tenant initialization process for each component. Clecio Varjao: Is that what I'm hearing? Timo Glastra: Yeah, kinda Timo Glastra: yeah, sort of, we have utilization of modules. But modules are more meant to be global. So I think, like this initialization is more if you need to set something up for your module in general that is not related to a specific tenant. So, for example, It is used by Timo Glastra: the in the Vdr module to connect to the ledger on Agent Startup, but, like the the ledger, pools, are shared by all tenants. So that is like, not a tenant specific action. Timo Glastra: we do have an agent organization.

Timo Glastra: but the Timo Glastra: this is like a custom package to allocate package. And so we don't have Timo Glastra: custom Timo Glastra: module in a situation for each tenant. so that is a a limitation. maybe. Timo Glastra: Yeah.

Clecio Varjao: Okay. Clecio Varjao: yeah. So so we have implemented a workaround in by phone. I guess it's it's just up for discussion. I think you don't have to Clecio Varjao: accepted. So you we can live. Let it simmer for a little bit and see where it goes. Clecio Varjao: but others might have issues. So if there is a way to at least raise an air her somewhere. How identify and Clecio Varjao: how they use it? Like, Hey, this thing is to happen. Timo Glastra: Yeah, I think. it's weird that there

Timo Glastra: wasn't a an error throne, because it should throw an error if we look at the at the the code base. And we look at the Timo Glastra: and I'm correct Timo Glastra: ours, holder surface Timo Glastra: and great credential request. Timo Glastra: here it in here it looks for a link. Secret. Id. If you want to use a custom link secret. if not, it tries to find the default link secret, and if it does not find it I it Timo Glastra: trust this error. So Timo Glastra: are you? Could it be that you're swallowing the error, or that A of J is maybe swallowing the error on some layer.

Clecio Varjao: yeah could be. I'll ask Jason about how Clecio Varjao: how this surface? I can get a little bit more information. But Timo Glastra: yeah.

Timo Glastra: I think we can maybe like the race condition is a very Timo Glastra: like very small chance. So I love. Maybe it's fine to have that race condition. Timo Glastra: or Timo Glastra: Yeah, but I'm not. I'm not quite sure if that is the intense that you have one linked secret for all the tenants. Timo Glastra: no, you will have a unique link secret for tenants.

Timo Glastra: So the default link secret that is, Timo Glastra: being fetched here is for a specific agent context, and the agent context is different for each. It's tenants. So this will return a different value. For based on which tenant you're currently interacting with. Ariel Gentile: yeah, the the the device thing about that is that we have. We will need to implement that Ariel Gentile: in both all their services, I mean the and on credits and the in the SDK, and we have to make sure that Ariel Gentile: we will not forget Ariel Gentile: when implementing another. If if we are going to another holder service. Timo Glastra: Yeah.

Timo Glastra: yeah. Okay. Timo Glastra: So if we implement in the older Timo Glastra: surface, we need to do it Timo Glastra: twice, I think, yeah, it's it's not the biggest change. So Timo Glastra: having to implement it twice is is probably fine for this. yeah. So Timo Glastra: based in this, what do we think would be the best approach here. Ariel Gentile: I I like to do it in the in the Holder service. Ariel Gentile: probably Ariel Gentile: about the Ariel Gentile: I mean, it's it's a it's a Ariel Gentile: I think it's the more Ariel Gentile: straightforward way to do it right now. But, I think

Ariel Gentile: we will need to find our way to to do what you Ariel Gentile: there about the Ariel Gentile: initialization for our nation context. Ariel Gentile: especially because we already have this issue on the mediation. Ariel Gentile: and we will probably have it Ariel Gentile: or other more. This, as well. you know. Timo Glastra: I mean.

Berend Sliedrecht: that's also my, my, my preferred way to do it. Yeah. Clecio Varjao: So, oh, sorry. What do you mean by holder service? Is that live it in externalized. Timo Glastra: So it will be in here. So in here, instead of throwing an error, they'll just I don't know whether they's health or service. Okay, got it? Timo Glastra: Yeah. And then we'll do the same in the in the SDK older surface. Clecio Varjao: have you thought about how we're gonna do the you duplication of that in the SDK. How is that going to be communicated setting the road map? Timo Glastra: So what do you mean? Exactly.

Clecio Varjao: So when you say in the in the SDK. I I think about the the in the SDK Rest library that we just went through for removing and replacing Timo Glastra: Is that what you mean? Are you talking about that? Hold one? Timo Glastra: Yeah. So we still have here. because we didn't want to make it like you have to move over now. But like, allow for period. So we still have a support for the in the SDK service, and that has the same create credential request. Timo Glastra: it does the same check here. So we just have to do like the default. Creation 2 times

Clecio Varjao: is is to go to keep supporting or duplicate it. Timo Glastra: I think, deprecated as as soon as we can. I think we should keep it, maybe in for one or 2 2 versions more. and then remove it. if it's not needed anymore, I think yeah, would would be really nice if we can get rid of it sooner rather than later. Clecio Varjao: Do do we need to start adding some duplication markers or duplication warnings that this module is going to be duplicated. Timo Glastra: That's good for? Yeah, we have for new modules. We in the module. We now have this warning. this modules experimental and could have an expect breaking changes. We're using this module so maybe we can add like similar warning. But more like this module is deprecated. Please migrate to this, and then we can add a link to the documentation.

Clecio Varjao: yeah. Timo Glastra: cool Timo Glastra: anything else on this issue. Clecio Varjao: the just about checking. So right now it raises an air like you implying that instead of raising a here, we will out of create. Timo Glastra: Yeah. Timo Glastra: I think so. I, yeah, do. We need an option for this?

Timo Glastra: so you can choose better to how to create it. Or. Timo Glastra: yeah, I'm not too keen on adding more options. So if if the if the default to is makes sense to create a link secret, then maybe we should just create it by default. But Timo Glastra: yeah, maybe we need to have an option for this. Ariel Gentile: Yeah, yeah, it's it's a it's a computation option you have to create in secret, or something like that. Ariel Gentile: The question is, if it will be true by default, or or if it will be forced by the phone Ariel Gentile: currently in the, in, the, in, the, in the SDK, is, is it? I automatically created the link secret? Or Ariel Gentile: are we doing it manually Ariel Gentile: or Timo Glastra: in? We do. No, it's automatically created when you create to wallet. So the wallet when you created the wallet. We also created the the link secret. Okay? Timo Glastra: And you had the option to pass the link secret. Id, because that is a use case. We've heard, I think, from the Epsa team, or they already had a

Timo Glastra: a link secret in the wallet, so Then it wouldn't be marked as the default in a of. But they did want to use that specific link secret. Id. So if we Timo Glastra: yeah, we need to look at a way, how Timo Glastra: to Timo Glastra: yeah, how to Timo Glastra: make sure that still works. Timo Glastra: yeah. Timo Glastra: Should that also be an ancient option? Then, like the link secret id you want to use or Ariel Gentile: no, I don't think it would be an ancient option that Ariel Gentile: you can then just use. You can then send set out to create link secret to false. You can manually create the record and stuff. Probably. Yeah, because also you you, you can also specify the links it Iv. Ariel Gentile: A on the Ariel Gentile: on. The caller service is running from. So you can also have a you, you can always have a way to specify your your own Id for for each flow.

Timo Glastra: So maybe Ariel Gentile: it's fine. Timo Glastra: Okay. yeah, that sounds good. Timo Glastra: cool Timo Glastra: Then.

Timo Glastra: maybe we can talk about the future. If J or Timo Glastra: let me see. I also wanted to give a short demo of a Maybe we can do that now is of a what we've been working on that's built on a of that's also open source. Timo Glastra: let me see. Timo Glastra: So Timo Glastra: this is the Timo Glastra: repository.

Timo Glastra: and it's also published to the to, the to Google play store and the app stores. and it's Timo Glastra: currently a very Timo Glastra: simple wallet. it supports receiving credentials and sharing them. And it's fully built on open Iv for verify credentials, so it doesn't yet. We will extend it, but it doesn't get support did go more on them credits or any ledger at all, it's a fully Timo Glastra: it's based on. Did Web did key the Jwk so no blockchain. And it also supports. Jwt, credentials. Timo Glastra: I think, yeah, what I really like about it is that Timo Glastra: we yeah, it's it. It really shows that you can now also use Fj to build stuff that is not necessarily

Timo Glastra: hypnotic errors or high pleasure indie or hypotheticals, but you can also build. Use it to build a opening for PC. Wallet, where you still use the the, the the core of the framework. Timo Glastra: for the crypto and the ditch and and everything. so yeah. The only Timo Glastra: we have in terms of oh, it's not here. It's in the the apps So we use Timo Glastra: Ariz. I'll score for this one, but not in the Vdr. Or on of credit for us. So just uscar for the crypto and the storage Timo Glastra: and I can do it quick. Timo Glastra: Demo.

Timo Glastra: correct myself Timo Glastra: all right. His you, Miss Cree. Berend Sliedrecht: Yes. Timo Glastra: perfect. Timo Glastra: So this is one of the flows like it's it's it's part of a ditch intro profile we're working on that's based on open D for PC, and that's what we're also, I've been working on with the D's book chain coalition, and and so I can start off by getting a credential and if you want, you can install the wallet from the stores, and also Timo Glastra: Test it out. I'll post the link here.

Timo Glastra: also to Timo Glastra: repo Link here. There's all the links also. Timo Glastra: So I feel in all my fields. Timo Glastra: and just for the demo purpose. Normally this would be derived from somewhere else.

Timo Glastra: So Timo Glastra: once I have done that I can. open my wallet. I already have quite some in there. Timo Glastra: And I can receive a credential with branding and the credential, the attributes we just had. Timo Glastra: Now it has been added to my wallet. Timo Glastra: And the next thing I can do I can now use this for several use cases, but one of them is signing into the ditch book, chain coalition website. so I can

Timo Glastra: scan 9. This cure code and I get approved request, and it says, like, right, which field. So you want to share, and under the who this uses the presentation exchange specification from this Timo Glastra: and so I can. A request. I can accept it. Timo Glastra: It will be shared, and then I'm signed in, and you can now see, I'm signed in as Demo, so I think, especially for Timo Glastra: case where you do want to do sign in The opening for PC. Stack provides a quite streamlined flow. because it's basically all out and all that stuff which is yeah, being used primarily for authentication and stuff. so yeah, Timo Glastra: as I said, open source, so feel free to to run it yourself or modify it, or you would like, Timo Glastra: yeah. Charles Lanahan: cool. Ariel Gentile: very, very nice. So did did you manage to to to get it

Ariel Gentile: a published on the app store in in Apple? Because I have seen in your that you got to reject it, Reflected, because it was too Ariel Gentile: similar to what it said. Timo Glastra: Yeah, we got rejected, and then we at least it like with like all the so like all the previews we have, we remove those, then they accept it. And then we tried Timo Glastra: in the end. What did the trick is we removed the the title wallet here, and we edit a logo here, and I think that's what did it? Because if you look at the apple wallet design Timo Glastra: They have, like the title wallet here as well, and I think that was causing it to be very similar. But yeah, as you can see it. It looks quite similar to to. But I'm happy. They accepted it in the end. Ariel Gentile: Yeah, that's fine. Clecio Varjao: That's awesome.

Timo Glastra: Cool. Timo Glastra: then, Timo Glastra: next topic, future of Timo Glastra: if J. Timo Glastra: do you Timo Glastra: have specific topics or like questions, you want to start with glacier? Or do you want to share some slides, or do you want me to go ahead and just start talking? Or how do you want to approach? Clecio Varjao: I don't have any slides. So actually just answer one. The question it was about expos. So Clecio Varjao: that the wallet that you guys are creating it, it seems to be was done using expo right? Clecio Varjao: So the question that I get I get people reaching out to me on a fairly frequent basis, asking about, oh, so there is a wallet.

Clecio Varjao: There is a by fault wallet. Clecio Varjao: and and there's a whole bunch of components in this area's ecosystem. Clecio Varjao: which one should it go? Where do I go? Right? Clecio Varjao: So of course, we we like Fj, and and and the shared components and and and devolution that is that is happening.

but it's also a whole Clecio Varjao: other libraries out there. Clecio Varjao: so the question is Clecio Varjao: is to go for Fj to remain Javascript. Clecio Varjao: negative in a way, although Clecio Varjao: there, there are a few native dependencies already. Clecio Varjao: Or is that go to? Clecio Varjao: To? Maybe facilitating that the rapid development that maybe was having issues within this in the SDK and and some other stuff under the hood. I understand there is a flexibility to enabling that fast development in in the Javascript side. It's easier, potentially cheaper to develop. Clecio Varjao: But where we're starting is that consistence in the in the ecosystem Clecio Varjao: across different implementations? Clecio Varjao: is there an opportunity to to start Clecio Varjao: moving as as maybe Clecio Varjao: Vcx matured. Then afj just leverage that or did calm.

Clecio Varjao: I know stabilizes, and there is leverage of the did come from from this. Clecio Varjao: there's a rest implementation or something like that. Clecio Varjao: I'm just trying to understand a little bit. W. We're where do you think the project is gonna go, or where where's the vision for now? When? Clecio Varjao: What do you think about the things the other things are at play, and Timo Glastra: that's Timo Glastra: hey? Good question. anyone that that wants to as has some thought on this already, or Timo Glastra: alright then, I'll I'll give it to shot So I think, yeah, one of the things you mentioned is like, Timo Glastra: having a lot of it's implemented in in type script. Javascript allows for quite flexible developments. which I think is nice, like there are maybe some downsides to using javascript and and some things that you maybe wouldn't have if you implemented in rest, I think, probably Timo Glastra: like in the end you can run it in more.

Timo Glastra: Expose it to more languages if you write it in in in something like rest. because you can write rappers. Timo Glastra: and the performance probably also better if you write it in rest. so I think there's something to say for it. I am less fan of having a lot of it implemented in another language, because then it becomes complexer. If you want to do You either need to have a very minimal Api exposed in the wrapper. Timo Glastra: or you have very advanced Api. With that means the rapper layer becomes really complex. And I think also F of I,

Timo Glastra: that's quite some Timo Glastra: performance impact, so that you also lose a lot Timo Glastra: of the advantages of having a fast language like, for, for example. So then I would rather say, you you move mostly to another language. but I think in terms of future of Aj. I think Timo Glastra: we probably want to like add more features to make it more Timo Glastra: suitable, for I think a Timo Glastra: sure for environments. That's something we're really interested to announce has been used a lot in mobile environments. But we're now starting to use it in in Timo Glastra: sure for environments. And to actually start using it on a large scale, like having managing hundreds of thousands of wallets in an agent. Timo Glastra: and Timo Glastra: So there's definitely work to be done there, because, like, we now have most Tennessee and and but like, there's definitely components that are going to break on that skill. Timo Glastra: and Timo Glastra: I think, making it more modular and maybe extracting some stuff like there's a lot of code in the framework which also adds complexity. So I think

Timo Glastra: beer, and has lately done some Timo Glastra: great work on like writing some smaller libraries. Let me see if I can Timo Glastra: find some here. Timo Glastra: yeah. So like, implementing selective disclosure. jobs and implementing dates in typescript. So as like.

Timo Glastra: yeah, more for we scope libraries which allow you to Timo Glastra: bars. It did create a did document, and and and have to validation in there. And I also asked Karen to to give a presentation on that in the next few weeks, I think. Yeah. So, extracting more code over time out of the framework and making them general purpose. Typescript libraries is more of the direction. I would see it going then moving stuff to Timo Glastra: rest, for example. and having it in another Timo Glastra: language, because I think with that we could remove some complexity from the framework itself. Timo Glastra: We could make it usable. for all the libraries. For example, you have to foram or framework, and if there is like general purpose libraries that we can create, we can share some some Timo Glastra: codes between those frameworks as well. And the framework Ofj really becomes more of the glue that clues together the different libraries. So if you want to use dates with Sd. Jolts a. Ofj. Would depend on both of these libraries and make sure they work nicely together instead of you having to write the glue between those different libraries, but you can all always directly, depend on it. Timo Glastra: yeah. I think that's why

Timo Glastra: I see it mostly going. I don't know if people have things to add or like to with this? Ariel Gentile: Well, I think you can. There is a Ariel Gentile: this Ariel Gentile: remaining discussion about the about Ariel Gentile: moving on to the open. What it foundation, right? You asked me about my opinion about that last week, but you didn't respond. Timo Glastra: Yeah, sorry I I've been really busy with. Timo Glastra: we had deadlines for this wallet this week. So I I I've been there.

Ariel Gentile: But but but I think I I I think that that some Ariel Gentile: so something I'm sorry I'm I'm thinking, is that Ariel Gentile: yeah. Ariel Gentile: Now that there are some other. Some of the libraries also written in in, in in shells, people typescript like. Ariel Gentile: what's the different? That? What? What would the Afsh position against those? Ariel Gentile: All the libraries that also. somehow. for the same purposes? Ariel Gentile: Because, you know, with you can also deal with the deeds and Vcs. Or maybe not. But this is in general.

Ariel Gentile: and and also do. Some did come and and and and implement some custom protocols as well. Ariel Gentile: So Ariel Gentile: maybe Ariel Gentile: if we are Ariel Gentile: thinking or or moving towards the Ariel Gentile: the open id Ariel Gentile: for Vc's approach, I mean, if we are going to support different Ariel Gentile: different transport. Ariel Gentile: and we are moving to the Open World Foundation. Maybe that could that that could Ariel Gentile: the Ariel Gentile: an opportunity for a if she to become a more generic or more general. Ariel Gentile: It's a I frame, or like we mentioned some weeks ago. Timo Glastra: Yeah. that makes sense.

Timo Glastra: Gracio. You also want to say something. Clecio Varjao: just wanna share like this document. which I'm trying to figure it out and get confused with all those Clecio Varjao: government acronym. So is this Dutch government?

Timo Glastra: Yeah, yeah, I think I shared this with, John Timo Glastra: last week. yeah. Clecio Varjao: And and and I've seen this question over and over again about the the again mobile development is like, Oh, do we go, native? Do we use Clecio Varjao: something else? Right? Clecio Varjao: And and for me it's less of what is the language that is develop it? But it's more of like, what can I build on top of it? So Clecio Varjao: if it is of react native and and and javascript and provide. SDK, Clecio Varjao: I'm not concerned about how curious that implementation is as long as it's working, and I can work in in the language that I Clecio Varjao: chose, for whatever reason. That's fine. Clecio Varjao: I think one of that they make. It's about this kind of a cross platform compilation. And they mentioned a phone gap and react native and flater. And those things come and go. Clecio Varjao: so so it becomes less less agnostic. So that's that's my, that's my concern. And and and and my point about it. Clecio Varjao: But that's fine. If the intention is to to remain that kind of a more, closer to nodes, development and node language as well. That's that's understandable. That's a direction that the project want to go.

Clecio Varjao: But I just also want to raise that in the scenario, some, some all that would automatically get Clecio Varjao: and some government automatic exclude this this framework right from the get go. so so it depends where where you want to go. So so I'm Clecio Varjao: I like, I said. I've had people reach out and asking to me about integrating existing applications into their adding verifiable credential, or or a didcom features into a app, an existing app Clecio Varjao: existing app are not necessary within react native. It could be written native code Clecio Varjao: and and that hasn't been that smooth for what I understand.

Clecio Varjao: so so it's just a question for the community where? Where? Where they want to go. I mean, there's no right or wrong. It's just where do you want to go. Timo Glastra: Yeah. Timo Glastra: So that's a good thing. Yeah, I think Clecio Varjao: so. So I guess the the the main, the main topic is, do you want to remain as a

Clecio Varjao: there is Javascript framework, or it's more of I don't know if I can compare, for instance, to aws, sdks that Clecio Varjao: behind the scenes they call executables do whatever it is that needs to do. Clecio Varjao: that is compatible with with with some interface. Right? So it doesn't. It's not necessarily fully Clecio Varjao: implemented, although Clecio Varjao: there's some sometimes code duplication. which is fine. coding duplication is not all bad. But it's just. I I just want to ask the question. Timo Glastra: yeah. yeah. I think Timo Glastra: first off, I think there is a lot of like assumptions in this document that I don't agree with. I think their take on the cross-platform development. And then all these things. I don't think they're

Timo Glastra: the right assumptions. They're making But data site, I think it is an issue that, like you can build natively in Ios and Android easily with this tech Timo Glastra: question is always like in the end. Timo Glastra: do we need a single implementation? Timo Glastra: for all use cases? or not? I think. having it implemented in rust can work. I know, for example, like the you have the Timo Glastra: spruce id libraries which are Timo Glastra: I think they have. Yeah, the did get Timo Glastra: which is written in Timo Glastra: rest, and I think it exposes Timo Glastra: They expose it to a lot of different languages. which is nice, and I'm not sure to build an ios and android any flutter, and I think brick native falls on their roadmap. Maybe.

Timo Glastra: so I think yeah, that's Timo Glastra: that's something that would work in this case. but I think it can also sometimes add a lot of complexity if you want to have the same thing working in all environments. and if you look at Timo Glastra: like a Timo Glastra: a lot of libraries are just like, if you look at Jwt. Libraries, they're Timo Glastra: often now just implement it in every language again. and the question is like Timo Glastra: over time. I think more and more libraries will come available for this. Like you have more date libraries, more data with T. Sd job libraries PC libraries. And then, yeah. if we also get that for

Timo Glastra: Kotlin, Timo Glastra: because I know a lot of people are now working on, on, on coupling for Sd chilt libraries, and if we then also get that for Swift, for example, then Timo Glastra: it would become a bit more like you now have with development. Where, if you're gonna make a a mobile app you often have, like different dependencies to achieve the same team, which isn't always the easiest But yeah, Timo Glastra: So I don't know if that answers your question. It's not a very concrete answer. But I would say Timo Glastra: it is a problem. But I don't think it's a problem for Clecio Varjao: yep. that's fair. Timo Glastra: Yeah.

Timo Glastra: So Timo Glastra: it also depends really on like we when we build wallets, we for now, like we've always been in the Timo Glastra: in the situation where we can choose, react native, or we start from scratch, and then we choose react native. So like, it has been Timo Glastra: a limitation for us and I. There would be Timo Glastra: not a lot of cases where I would go with writing Timo Glastra: 2 wallets in Ios and android separate I think Timo Glastra: separate from having to do it 2 times. I think there's a lot of complexities in building native applications that are just extracted away, for example, with with Expo,

Timo Glastra: yeah. But that's also my personal opinion. And we're a small team. So yeah, different considerations to make. I think, Charles, you you Timo Glastra: wanted to say something. Charles Lanahan: Oh, no, I didn't want to say in particular. I I kind of agree with the glue.

Charles Lanahan: the blue comment, the glue, the path seems like a good one. The reason 3,000. This is a beginner comment. The reason I was attracted to the area. Javascript framework Charles Lanahan: was for Charles Lanahan: the chance to do rapid prototyping in react native. And then, if the idea plays out. Charles Lanahan: maybe making that decision to re-implement, or or, you know. just from the framework from there. But Charles Lanahan: but that seems like a goal that that Charles Lanahan: that is, that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that that Charles Lanahan: that kind of thing. So that was not only Charles Lanahan: comment on the issue. Timo Glastra: Yeah.

Timo Glastra: that makes sense. Berend Sliedrecht: I think something that that Berend Sliedrecht: might be worth investigating in the far, far future would be just Berend Sliedrecht: instead of anything with F of I. Because what you mentioned is, there are performance strokes in ffi, and Berend Sliedrecht: there are small use cases where, like calling something over, if I to rest, is actually faster implementing it in in, in typescript, a lot of times Berend Sliedrecht: is faster than going over Berend Sliedrecht: But looking at Webassembly would take a lot of those things away. You don't have to deal with unsafe F by rappers. Berend Sliedrecht: you have a unified interface. It is. It works very well. It's compuls to Webassembly. You can reuse it within. Now, jazz Browser, and well, very scheduledly reactive right now.

Berend Sliedrecht: And I think if Berend Sliedrecht: at some point or that it themselves would support web assembly. Berend Sliedrecht: then that will open up like. I think, a lot Berend Sliedrecht: because then we can. Well, we we do get some performance back for using a a web assembly or a rust library compiled to web assembly. Berend Sliedrecht: and we would be able to reuse it, because right now we what we did with shared components, we have to re-implement it in Berend Sliedrecht: or sorry no Gs F. Ofi, and also in resigned for their specific turtle modules, which is a bit of a or it was a bit of a pay, and we'll be paying for maintenance. Berend Sliedrecht: And my preference Berend Sliedrecht: from that experience will Berend Sliedrecht: always go to if it's possible to implement in time scripts, increments in times. If you're going to use the typescript. also, I think if we have, like the short components right now with.

Berend Sliedrecht: if there is an issue specifically Berend Sliedrecht: for A of J. They are not all the people in our Ed Aj group that could take those issues up. Berend Sliedrecht: So if we actually rely on Berend Sliedrecht: called liners or swift libraries, for example, to to get the job done and to get the products then the end product works. But if there is a small issue. yeah, there are probably a lot of people in our team that could Berend Sliedrecht: just fix those issues because we, our experience is not that in those languages. Berend Sliedrecht: so from a maintenance perspective, I think it's yeah quite important to Berend Sliedrecht: if it's possible to to stick to type scripts. because that's where we are experts. And what we can maintain. Timo Glastra: Yeah, makes sense. Timo Glastra: Do you know? on the performance Timo Glastra: trade off between web assembly and M for 5.

Berend Sliedrecht: yeah, I think it depends on the exact thing you want to run, because there are all the benchmarks like comparing pure node. Js, F of I and Web Assembly, with just running like Fibonacci. Berend Sliedrecht: Calculate the 1,000 number which is like they're completely useless benchmarks. I. Berend Sliedrecht: So I'm I'm not a hundred percent sure. but I do know that that's working over web assembly and working over. If I working over web assembly is a little easier, especially with libraries like wasn't buying Gen. Which just generate complete types of interfaces for you. Berend Sliedrecht: to call those SW. Assembly libraries, and with F of I. Now we we did it together. And it's it's Berend Sliedrecht: it's a lot of manual labor, and you have to align certain structures because they are aligned in C, so if you like, if your property is in the second place, instead of the first place in the class, then it won't work, and Berend Sliedrecht: like tools like it wasn't binding that they just take those complexities away. Which is so nice. Berend Sliedrecht: Yeah, I I would be very Berend Sliedrecht: hesitant to to use web assembly right now for your native. I I think you you send it on some select to theirs.

Berend Sliedrecht: There is an implementation working of a assembly and a native. And I think I also want some functions to run, but very minimal. But Berend Sliedrecht: yeah, I I think Berend Sliedrecht: if we want to support them assembly, it will be if we are native themselves, implemented, because then, you know, you have some support. It will be a lot more stable. Well. Berend Sliedrecht: we can now hope for it to be more stable, I guess. Berend Sliedrecht: But yeah. So it's probably in the far future, I guess.

Timo Glastra: Cool. Okay, makes sense. Timo Glastra: we're out of time Timo Glastra: So yeah, I think we can close it off for today. if you have a topic you would like to discuss next week. please let me know. I think there are some topics left hanging from last discussion. So once the Wiki back online, I'll make sure to Timo Glastra: get them out, and we can continue that discussion next week.

Timo Glastra: Cool, thanks to Ron. Clecio Varjao: Thank you. Berend Sliedrecht: Thanks, bye, bye.

2023-07-05 06:08

Show Video

Other news