WEBVTT 1 00:00:00.000 --> 00:00:01.400 Sean Bohan (Hyperledger): Great. All right. 2 00:00:02.410 --> 00:00:12.679 Sean Bohan (Hyperledger): welcome everybody to the Hyper Ledger Foundation workshop pipeled your Aries framework, Javascript, 0 point 4 0 release. Setting up an agent issuing credentials. 3 00:00:12.690 --> 00:00:17.600 Sean Bohan (Hyperledger): thank you all for joining us. this session is being recorded. 4 00:00:17.760 --> 00:00:44.969 Sean Bohan (Hyperledger): It is going to be, and it is being live streamed on the hyper ledger. Youtube Channel. I'm gonna post some links in a second in the chat. Once we kick this off but I want to thank everybody for joining us. as with all Linux Foundation meetings, this is held on the Linux Foundation Antitrust policy. If you have any questions about these matters, please contact your company council, or if you're a member of the Linux Foundation, feel free to contact Andrew up the grove of the firm. Guess we are up to group Llp. 5 00:00:45.060 --> 00:01:10.319 Sean Bohan (Hyperledger): I would really like to thank the 3 organizers of this workshop. Ariel Kareem. Oh, come on, Ariel Kareem and Baron All of Hyper Ledger is powered by contributors and maintainers and users of this software. If it. If if these folks didn't exist, we wouldn't exist, and we cannot thank them enough for sharing their knowledge, and quite frankly, all the hard work they've put into areas framework, Javascript 6 00:01:10.510 --> 00:01:19.630 Sean Bohan (Hyperledger): just in general, but also to get us to the 0 point 4.0 release. And with that I'm going to stop sharing and turn over to Kareem. 7 00:01:19.740 --> 00:01:24.219 Sean Bohan (Hyperledger): And I'm gonna start putting some links into chat. Kareem. It's all yours. 8 00:01:24.890 --> 00:01:27.639 Karim: Section. Thank you. Mr. John. 9 00:01:28.190 --> 00:01:33.180 Karim: parents, this is my screen. Yeah, okay, that's working. Oh. 10 00:01:33.750 --> 00:01:37.789 Karim: well, welcome everyone. And thank you for joining 11 00:01:37.840 --> 00:01:58.259 Karim: as Shawn said before, Well, my name is Gering and we I will be giving this presentation, together with Ariel Jennifer from 2,060 also a maintainer of a hyper ledger, Harries, and Who works at animal as well. 12 00:01:58.390 --> 00:02:01.800 Karim: let me see if this works 13 00:02:02.470 --> 00:02:05.650 Karim: Nope, I think it works so 14 00:02:06.000 --> 00:02:20.009 Karim: over here of what we're gonna do. I'll start off with a well, a small introduction. as this. as this is about the 0 4 0 release. Specifically, we will have an overview of the release 15 00:02:20.180 --> 00:02:26.310 Karim: where, after we will be, and will show you a little demo that he has prepared. 16 00:02:27.000 --> 00:02:31.780 Karim: After that it will show you a few code examples of how this is actually, 17 00:02:31.910 --> 00:02:38.130 Karim: look to work with the 0 for 0 release. Yeah, we have a look at the documentation. 18 00:02:38.140 --> 00:02:54.750 Karim: I look ahead. What is on the roadmap, and what's next? And at the end we will have a question and answer session, which we did this last year. a similar session for the 0 3 0 release. There was a lot of There were a lot of questions that we had to cut short. 19 00:02:54.820 --> 00:02:59.160 Karim: So We expect through them. 20 00:02:59.500 --> 00:03:07.119 Karim: Do you have some Or to to spend some time on the on the question answering sessions, so we can answer all the questions you may have. 21 00:03:07.700 --> 00:03:10.030 Karim: So first of all, introduction 22 00:03:10.600 --> 00:03:15.270 Karim: census is a hyper ledger. I believe. There. Well, a global 23 00:03:15.510 --> 00:03:17.480 hyper ledger meet up. 24 00:03:17.920 --> 00:03:29.530 Karim: I want to quickly touch on what hyper ledger every frame of Javascript is. what? It isn't. Oh, sorry. I see that I don't have my camera on now? 25 00:03:30.030 --> 00:03:40.869 Karim: so yeah. A quick introduction. on the what type of manager are you from Javascript is? I will not go into the those of sales for an identity and all the 26 00:03:41.020 --> 00:04:00.280 Karim: well, yeah, all the things and concepts around that. If you are interested in that, then I urge you to to look up the the previous session we did on the 0 3 0 release, because that goes more in depth into what? What's so serving identity is in general, but this is really worse. specific to the 27 00:04:00.310 --> 00:04:01.979 Karim: 0 4 0 release. 28 00:04:02.060 --> 00:04:19.809 Karim: So but to summarize I do quickly go over. It's Irish framework. Javascript is a. It's a framework for implementing so of them or decentralized identity solutions. I use both terms because I think decentralized identity is more popular term nowadays. 29 00:04:20.100 --> 00:04:25.830 Karim: it is based on a hyper ledgerary standards. 30 00:04:25.850 --> 00:04:30.439 Karim: which is any collection of irs or or standards 31 00:04:30.520 --> 00:04:36.009 Karim: that are implemented in multiple languages. You also have Eric Schmidt agent by them, for instance. 32 00:04:36.150 --> 00:04:47.499 Karim: But this obviously is the Javascript version of it, and which will become a little bit more relevant you slides ahead. But I pleasure Aries 33 00:04:47.540 --> 00:05:02.650 Karim: was born in the Hyper Ledger in the project originally so because it's a a a javascript framework. The cool thing, I think what is cool about it is that it's a, it's a multi-platform solution. 34 00:05:03.680 --> 00:05:08.099 Karim: so that that means, basically, you can run 35 00:05:08.190 --> 00:05:14.629 Karim: on the service side through nodejs, but also mobile devices. If you use react native. 36 00:05:17.090 --> 00:05:18.470 Karim: So 37 00:05:19.150 --> 00:05:33.320 Karim: this is the typical. again. I'm not gonna go into the details of it because it's a typical SSI diagram you sure you have seen if you are somewhat familiar with SSI. They have in the SSI, 38 00:05:33.510 --> 00:05:36.900 Karim: which I'll serve an identity 39 00:05:36.930 --> 00:05:59.290 Karim: in the. In that ecosystem you have usually at 3 roles. We have a holder, someone who receives credentials, verifiable credential. You have an issue, or someone who issues them. And a verifier that's interested in verifying it. And additionally, you see that? Well, middle in the middle the the bottom level. I guess the verifiable data registry 40 00:05:59.290 --> 00:06:15.369 Karim: and that is often a blockchain, but it doesn't have to be. It has to be a blockchain per se and as I mentioned on the previous slide. it is a multi platform system. and the cool thing about that is that it can. 41 00:06:15.380 --> 00:06:17.250 well, it. Yeah, it can help you 42 00:06:17.450 --> 00:06:28.689 Karim: create solutions for all these rules. Right? Because I hold there. in a lot of cases, as a wallet and mobile application. So for that, you would use react native. 43 00:06:29.330 --> 00:06:46.679 Karim: But an issue, we're in a verifier. often run some kind of server architecture. But then again, you can use the nodejs runtime for for those kind of solutions. So it really covers all of these things. 44 00:06:46.700 --> 00:06:54.709 Karim: and by we really do our best to keep as well the features that we implement to make sure that they run on all platforms. 45 00:06:54.790 --> 00:06:56.540 Karim: So if you use 46 00:06:56.610 --> 00:07:14.959 Karim: every framework javascript, which will, I will, by the way, abbreviate by a. Of J. A. Lot in this presentation. But if you use A of J for for your holder, or your issue, or enter your verifier, then you should be. Well, yeah, they should be interruptable automatically, because it's the same framework. 47 00:07:16.680 --> 00:07:21.690 Karim: And next. yeah, so let's go over the release. 48 00:07:21.960 --> 00:07:28.330 Karim: overview and the the the most primary thing is modularization. 49 00:07:28.410 --> 00:07:45.490 Karim: that is, we. We have put a lot of work in making the framework more modular, and that work already started. before. So in the 0 I believe it's 0 to 0. Everything was one big package 50 00:07:46.130 --> 00:07:54.400 Karim: a, and in the 0 3 0 release. We already started like, well, implementing new features in 51 00:07:54.440 --> 00:08:04.179 Karim: different different packages, different modules. as you can see, we have the extended that work quite drastically 52 00:08:04.200 --> 00:08:07.080 Karim: in in the 0 4 0 release. 53 00:08:07.190 --> 00:08:12.110 Karim: So I will quickly go go over a few of these components, not all of them 54 00:08:12.640 --> 00:08:23.100 Karim: because they are not called that relevance, but on the left you see in in blue the core and the core is just well as it has to go to the framework. It is everything you need 55 00:08:23.210 --> 00:08:33.690 Karim: to run a well, to run the framework below that, you see, to direct native package and the notes package to the doing great. 56 00:08:33.860 --> 00:08:51.369 Karim: Those are basically the dependencies you would need for each platform. So if you're running, or if you're creating a mobile application, you would you would use the reactive dependency, the react native package. And if you are running a service side application then you would use the node one 57 00:08:52.320 --> 00:08:53.610 Karim: next. 58 00:08:55.570 --> 00:09:01.500 Karim: So I mean, this is, this is just a copy of the of the the right side of the previous slide. 59 00:09:01.800 --> 00:09:04.340 Karim: So 60 00:09:04.830 --> 00:09:09.090 Karim: what? What have we added, and and what has happened? Exactly. 61 00:09:09.280 --> 00:09:19.030 Karim: I've put a little legend on on the bottom. But in essence, we have some new functionality which you see on in the green tiles on the right. 62 00:09:19.700 --> 00:09:34.689 Karim: and we have a package through our modules that we're already presence. That's those are the purple. Once we have a package in the SDK package in yellow that has been moved out of from go out of the court to its own package. It's on module 63 00:09:35.070 --> 00:09:37.409 Karim: and we have 64 00:09:38.680 --> 00:09:44.230 Karim: straight components which you see in orange, which I will explain now in the next slide. 65 00:09:44.830 --> 00:09:52.010 Karim: So for those who don't know as I previously mentioned, 66 00:09:52.070 --> 00:09:56.230 Karim: in the or or Aries was born in the Indy 67 00:09:56.290 --> 00:10:02.849 Karim: ecosystem, and Indie, is a well, right now it's it's a it's a ledger. 68 00:10:02.870 --> 00:10:06.699 Karim: a identity-specific ledger under the ipad. Your umbrella. 69 00:10:07.240 --> 00:10:14.199 Karim: but they realized the maintenance of the end you realised at some point, hey, we need 70 00:10:14.300 --> 00:10:20.320 Karim: just the blockchain is not enough right? We also need software standards, protocols 71 00:10:20.420 --> 00:10:32.769 Karim: for agents. So the well, the issue is the holders, the verifiers. They need to exchange information. They need to exchange credentials, and we need protocols and specifications for that. So 72 00:10:32.890 --> 00:10:39.220 Karim: along with in the and I should say in the notes, which is a separate 73 00:10:39.790 --> 00:10:42.879 Karim: software components. 74 00:10:43.240 --> 00:10:54.460 Karim: they created the in the SDK and even SDK, as it suggests, is the SDK that you can use you can use to 75 00:10:54.730 --> 00:11:05.340 Karim: to communicate with the in the networks. so the an example that people might know is sovereign that's in a in the network that they see this thing in production. 76 00:11:05.550 --> 00:11:08.879 Karim: And and this India is because it did a lot. 77 00:11:09.530 --> 00:11:12.410 Karim: it did the what you see? 78 00:11:12.710 --> 00:11:30.350 Karim: it's it took care of the communication with the network. no, the button. that's the first. Yeah, that one it. It takes care of the communication with the in the network, but initially it also does It also takes care of storage. So 79 00:11:30.660 --> 00:11:43.269 Karim: the credentials and and and other well related data objects and models. They are stored encrypted, and that is also something that the in thes okay did for you. So 80 00:11:43.370 --> 00:11:48.710 Karim: it's, it's basically also providing secure storage it. 81 00:11:49.030 --> 00:12:10.279 Karim: it provides the cryptographic. yeah, functionality that we need it. Under the hood it would go Ursa, which is another hypothesis project, and and it also took care of a lot of analytics. Related functionality and an on credits is is the new name. 82 00:12:10.290 --> 00:12:25.499 Karim: or what used to be the in the credential format, which is a specific type of format how to represent a prevention. Hello! This happened in the meantime. I don't know if it's credential format. So the in the credential format 83 00:12:25.660 --> 00:12:38.410 Karim: it used to be in the financial format that got sort of separated from the whole indie stack and has been, renamed to unknown credits. And now it's really a standalone. credential format standard 84 00:12:38.570 --> 00:12:54.630 Karim: and in the meantime we have That was already the case in the 0 3 0 release, I believe. we have added support for other credential formats like the the famous W Threec financial format. 85 00:12:55.350 --> 00:12:59.819 Karim: we have. we have added support for this back, then. 86 00:12:59.880 --> 00:13:00.950 so 87 00:13:01.640 --> 00:13:08.979 Karim: a lot of movement here, and as a result of in the being this one giants rust 88 00:13:08.990 --> 00:13:19.620 Karim: dependency that does everything basically. And the result of that is that if you would. I've used every frame of Javascript, you just issue and 89 00:13:19.750 --> 00:13:22.549 Karim: and or verify or hold, or whatever. 90 00:13:22.820 --> 00:13:24.539 Specifically, W. 3. C. 91 00:13:24.610 --> 00:13:33.219 Karim: Jason, all the credentials. Oh, yeah, you need it in the SDK to store stuff. So it would automatically also include 92 00:13:33.350 --> 00:13:41.110 Karim: the logic that is related to communicated to an Indie network. Well, maybe you do not communicate with the media network at all. 93 00:13:41.140 --> 00:13:51.729 Karim: you would also need to include autocrats like the logic related to the allocates, credential format while you 94 00:13:52.410 --> 00:14:10.789 Karim: while you might not use that because you are just focusing on the W. 3 C. Jason oly format. So, yeah, you're basically pulling in a lot of code. You're making your package a lot bigger. And it's necessary. and this is, yeah, that was not something we wanted to continue with. 95 00:14:11.920 --> 00:14:18.240 Karim: Next slide, please, yeah. And so and this is not an effort that is, totally or 96 00:14:18.700 --> 00:14:32.640 Karim: not even mostly done by us. But it's the Irish community. they. They chose to basically introduce 3 new components, Ariz, Oscar in the Vdr and animal grants. And these 3 components together 97 00:14:32.940 --> 00:14:37.239 Karim: can be used basically as a replacement for the and the SDK, 98 00:14:37.260 --> 00:15:04.049 Karim: so they take care of. They take care of a subset of what the in the SDK is to do. and there are some other differences there which I don't. I'm not going to go into because that is the on scope for this presentation. But so we have a new component that is in the ask, or which takes care of storage and photography. Then we have any Vdr which is the Vdr is verifiable data registry. So it's really 99 00:15:04.080 --> 00:15:07.909 the component of the 100 00:15:08.120 --> 00:15:20.290 Karim: and we have. I don't. The an upgrades package, which is again, it's it's the the standard itself the credential format itself. So it's a package that takes care of everything. Surround the 101 00:15:21.830 --> 00:15:27.329 Karim: Okay, slide. A real is going to present. 102 00:15:27.590 --> 00:15:37.059 Ariel Gentile: are you, are you there? Yeah, no problem here. Yeah. So yeah, in this is light. We we are doing an overview of what's 103 00:15:37.110 --> 00:15:40.860 Ariel Gentile: on the Frameworks core. 104 00:15:41.750 --> 00:15:46.340 Ariel Gentile: And how are we going to 105 00:15:46.480 --> 00:15:57.849 Ariel Gentile: to build a nation an equivalent Asian with 0 for 0? Considering all these model new modules that 106 00:15:57.860 --> 00:16:03.209 Ariel Gentile: so if you look at the Pco. 3 0. We will have 107 00:16:03.360 --> 00:16:10.250 Ariel Gentile: the in the core. The functionality related to Indie and Ledger that has been moved 108 00:16:10.620 --> 00:16:14.459 Ariel Gentile: out and extract it out and and went to 109 00:16:14.670 --> 00:16:23.039 Ariel Gentile: to the anon credits and and the SDK library. So a module. So if you want to build an an equivalent 110 00:16:23.170 --> 00:16:26.840 Ariel Gentile: agent, I mean with an exact same features. 111 00:16:26.960 --> 00:16:32.840 Ariel Gentile: but with 0 4 0, you will need to use in your project 112 00:16:32.940 --> 00:16:37.619 Ariel Gentile: the the the core, and also the unknown credits. 113 00:16:37.710 --> 00:16:44.250 Ariel Gentile: which is the I I I that that's the 114 00:16:44.810 --> 00:16:50.010 Ariel Gentile: main functionality and the and the the interfaces. 115 00:16:50.420 --> 00:16:56.049 Ariel Gentile: and the in the SDK that provides the implementation that 116 00:16:56.120 --> 00:17:05.320 Ariel Gentile: Karen mentioned before about the the security storage, the that your connection on and the crypto. 117 00:17:06.270 --> 00:17:12.180 Ariel Gentile: But we have also the, the, the option of creating an equivalent. 118 00:17:12.520 --> 00:17:17.069 Ariel Gentile: Okay agent. But using all these new shared components. 119 00:17:17.599 --> 00:17:20.849 Ariel Gentile: so in this case we will, we will need to use 120 00:17:21.000 --> 00:17:28.499 Ariel Gentile: 5 different packages in the core, the anonchrist and I's ask her, and in the Vdr. 121 00:17:28.930 --> 00:17:31.669 Ariel Gentile: What will be the difference between both? Actually? 122 00:17:32.580 --> 00:17:35.659 Ariel Gentile: I would say that 123 00:17:36.320 --> 00:17:40.500 Ariel Gentile: it will be better to use the the the new one. I mean the 124 00:17:40.660 --> 00:17:42.829 Ariel Gentile: did they do one on the right? 125 00:17:43.080 --> 00:17:50.200 Ariel Gentile: Because the the new one on credit libraries are a bit faster or more flexible. 126 00:17:50.460 --> 00:17:53.449 Ariel Gentile: You can and also 127 00:17:53.600 --> 00:17:56.409 Ariel Gentile: support for other lectures if you want 128 00:17:56.440 --> 00:17:59.490 Ariel Gentile: and you can. 129 00:18:00.510 --> 00:18:06.789 Ariel Gentile: and especially because it also supports the fully support. The 130 00:18:07.100 --> 00:18:09.909 Ariel Gentile: the new one on credit specification. 131 00:18:10.180 --> 00:18:18.819 Ariel Gentile: something that we will talk a little bit later. Right? By the way, if you, if you look at the core, you will see that there are still a lot of 132 00:18:19.100 --> 00:18:21.050 Ariel Gentile: soup modules. Right? 133 00:18:21.440 --> 00:18:29.940 Ariel Gentile: So you we can see that we have the midcom discover features program report out of 134 00:18:30.150 --> 00:18:35.460 Ariel Gentile: routing. There are mostly related to to did come messaging 135 00:18:35.760 --> 00:18:44.250 Ariel Gentile: Maybe if we can. If we continue on this with this philosophy of of modernize a. 136 00:18:44.690 --> 00:18:47.249 Ariel Gentile: we can in a in a near future 137 00:18:47.350 --> 00:18:52.580 Ariel Gentile: extract them out of as well. So 138 00:18:53.070 --> 00:19:01.909 Ariel Gentile: if you want to to be an agent that is not support, that that will not need to support did come at all. You can, of course, 139 00:19:01.950 --> 00:19:03.420 Ariel Gentile: and do that right 140 00:19:03.970 --> 00:19:06.449 Ariel Gentile: the way we can go to the next slide. 141 00:19:07.950 --> 00:19:13.850 Ariel Gentile: Yeah, this is a consequence of removing in the SDK from the core. 142 00:19:14.260 --> 00:19:18.999 Ariel Gentile: Previously we we we had a a 143 00:19:19.020 --> 00:19:20.869 Ariel Gentile: a default wallet. 144 00:19:21.340 --> 00:19:22.989 Ariel Gentile: which was the the one 145 00:19:23.090 --> 00:19:32.939 Ariel Gentile: that came from Indy. But now, in order to set up an agent, we will need to to provide A, A, A wallet class and interface 146 00:19:33.160 --> 00:19:36.530 Ariel Gentile: implementation which will be done. 147 00:19:36.640 --> 00:19:37.740 Ariel Gentile: and 148 00:19:38.720 --> 00:19:41.589 Ariel Gentile: by the ask our package, but 149 00:19:42.130 --> 00:19:48.850 Ariel Gentile: it there is room to also provide a different one. You can also implement your own wallet 150 00:19:49.390 --> 00:19:56.270 Ariel Gentile: as long as it complies with the wallet interface that basically needs to 151 00:19:56.800 --> 00:20:07.399 Ariel Gentile: to implement some methods for opening our wallet closing. they become message backing if needed. and key storage, and and so on. 152 00:20:07.470 --> 00:20:11.009 Ariel Gentile: And that give us the possibility of 153 00:20:11.740 --> 00:20:15.810 Ariel Gentile: in your future. We we hope 154 00:20:15.910 --> 00:20:20.079 Ariel Gentile: to create a a wallet 155 00:20:20.160 --> 00:20:22.420 Ariel Gentile: if it's a 156 00:20:22.540 --> 00:20:34.129 Ariel Gentile: that could allow us to easily run a if you on a browser, which is something that I think most people from the community is expecting to have some someday. Right? 157 00:20:35.170 --> 00:20:40.830 Ariel Gentile: So we will talk about that later in the by the end of the of this 158 00:20:41.030 --> 00:20:41.810 official. 159 00:20:42.080 --> 00:20:44.620 Ariel Gentile: So we can continue in the slides. 160 00:20:46.570 --> 00:20:53.419 Ariel Gentile: Yeah, there there are. There are a few more differences also a sequence of 161 00:20:53.560 --> 00:21:00.360 Ariel Gentile: of of removing the dependency on on anonkres and in the SDK, was that previously 162 00:21:01.440 --> 00:21:02.480 Ariel Gentile: we have 163 00:21:02.830 --> 00:21:16.849 Ariel Gentile: some from properties on the application configuration like the this public the I don't public did that was using mainly for in the to to create the objects and the legend and that stuff. 164 00:21:17.350 --> 00:21:20.919 Ariel Gentile: And now we are not using that anymore. 165 00:21:21.270 --> 00:21:29.320 Ariel Gentile: But we provide that way of importing these that were created somewhere else. 166 00:21:30.060 --> 00:21:33.159 Ariel Gentile: to also support. If we want 167 00:21:33.290 --> 00:21:34.590 Ariel Gentile: more than a 168 00:21:34.690 --> 00:21:46.910 Ariel Gentile: public did this, this can be mostly interesting for those who are using Afsh in on the server side, or or or in public entities. 169 00:21:47.550 --> 00:21:53.360 Ariel Gentile: we can continue next slide. Yeah. And this is another feature 170 00:21:53.400 --> 00:21:54.920 Ariel Gentile: that we added. 171 00:21:55.290 --> 00:22:05.249 Ariel Gentile: this is not something related to the architecture, but it's not something that we are using in our project. So I wanted to highlight. It is that we can connect to. 172 00:22:06.370 --> 00:22:17.379 Ariel Gentile: We can not only connect to other agents by using connection invitations or out of one invitations, which is the classic QR code 173 00:22:17.460 --> 00:22:20.380 Ariel Gentile: that we 174 00:22:20.810 --> 00:22:29.619 Ariel Gentile: invitation code that we render in a QR code. But also we can connect directly to a public did. 175 00:22:31.030 --> 00:22:39.160 Ariel Gentile: So. This is what is called the implicit invitation. So you just put the did, and the agent will, and you set up 176 00:22:39.400 --> 00:22:43.290 Ariel Gentile: what some stuff like the alias that you do. You want to to use? And 177 00:22:43.440 --> 00:22:45.290 Ariel Gentile: and the handshake protocol. 178 00:22:45.700 --> 00:23:00.169 Ariel Gentile: the agent will do all the work needed to create a connection with, to resolve that the idea and create attention to to it, and also and the same works from the other side. I mean, if you, if you. 179 00:23:00.570 --> 00:23:02.480 Ariel Gentile: I have 180 00:23:03.220 --> 00:23:10.680 Ariel Gentile: a public, did, you will also receive the the invitation, the the the question request, and you can decide if you want to. 181 00:23:11.040 --> 00:23:13.929 Ariel Gentile: to, to accept it and and move forward. 182 00:23:15.080 --> 00:23:17.470 Ariel Gentile: And that's it, for this is like. 183 00:23:18.670 --> 00:23:20.880 Karim: all right. So 184 00:23:21.380 --> 00:23:22.070 Karim: yeah. 185 00:23:22.400 --> 00:23:32.020 Karim: So they next section. it's about beyond the as it's called. So 186 00:23:33.060 --> 00:23:53.819 Karim: as you might have seen in the beginning, somewhere in the components, we have started work for implementing protocols that are outside of the typical Aries ecosystem. In other words, as I mentioned earlier, Aries, the comprise of a set of various Rfcs. 187 00:23:53.850 --> 00:23:56.969 Karim: but the space is evolving 188 00:23:57.600 --> 00:24:11.269 Karim: Recently, this year both the European Commission and the Department of Security have announced what their preferences? or or they have hinted on the standards they will. 189 00:24:11.350 --> 00:24:15.810 Karim: they will, they will start to adopt. Nothing is in a stone yet but 190 00:24:15.980 --> 00:24:24.540 Karim: they are. yeah, they are looking at a certain set of standards. and they are not all Aries related 191 00:24:24.600 --> 00:24:38.020 Karim: if we on the right hand side you see, an example of this is the er short for the architecture reference framework, which was published by the European Commission. 192 00:24:38.080 --> 00:24:55.820 Karim: and I hope it is it's big enough to read. But this diagram shows if you choices they have made So, for instance, the credential formats that they will use are 193 00:24:55.870 --> 00:24:59.309 Karim: which is an Iso standard 194 00:24:59.330 --> 00:25:01.430 Karim: for participating flows. 195 00:25:01.830 --> 00:25:06.820 Karim: and W. 3 C. verifiable credentials, and then 196 00:25:07.270 --> 00:25:22.009 Karim: the Sd Jwp. Variant of that for for for remote flow. and that is the for the credential format itself. But then, we also have the exchange protocol. So 197 00:25:22.210 --> 00:25:25.599 Karim: in the area, it's it's we and use itcom 198 00:25:25.760 --> 00:25:41.319 Karim: mainly to Well, to that come as a as a mechanism, to to issue credentials, to present groups, and to do a variety of other things as well. but the European Commission has chosen to 199 00:25:41.440 --> 00:25:43.150 Karim: to focus on 200 00:25:43.300 --> 00:25:50.610 Karim: the Well, a bit hit me. We're open id for verifiable credentials that so 201 00:25:50.830 --> 00:25:59.329 Karim: on the on the left top left, you can see that they for issuance of the open id for verifiable credential issuance vertical, and for 202 00:25:59.360 --> 00:26:07.840 Karim: for the verification side of things. it is open. I open it for a verifiable presentation and side of 3 2 203 00:26:08.020 --> 00:26:22.049 Karim: it's just not. It's all these details don't really matter in the scope of this this session. But I just want to point out that there is a lot of movements in in the space and there are a lot of other 204 00:26:22.070 --> 00:26:29.240 Karim: other protocols and other ecosystems that are becoming. yeah, work prevalence. Right? 205 00:26:29.270 --> 00:26:32.730 Karim: so we really 206 00:26:32.910 --> 00:26:43.000 Karim: feel that that there is not a value in going or in adopting or yeah adopting support for under other standards outside the area's ecosystem 207 00:26:43.020 --> 00:26:53.120 Karim: for one, it enables a broader a broader range of of projects. It can be used in in 208 00:26:53.580 --> 00:27:06.729 Karim: The second point is a little bit cut off. forgive me for that. But what I what I was intended to say there is that it's the relevance outside of 209 00:27:06.760 --> 00:27:09.269 well, yeah. 210 00:27:09.380 --> 00:27:21.920 Karim: let's say, geographic areas where Aries is the choice. I know Canada, for instance. really, really goes for the for annual credits, for instance. But again, you 211 00:27:21.960 --> 00:27:33.289 Karim: Other other choices are being made. So this yeah, extending the support to other ecosystems makes it relevant also, for instance, for in Europe. 212 00:27:33.450 --> 00:27:36.040 Karim: But this. 213 00:27:36.120 --> 00:27:56.700 Karim: all this modularization and and adopting understand it, it really forces us to really think architecture and hey, Result of that is that it also ensures more low longevity, and it makes it more extensible. We've had to define a lot of interfaces which in the end, if other protocols come around, makes it 214 00:27:56.800 --> 00:28:08.200 Karim: just these architectural changes that we've that we're working on right now. it's ongoing but they ensure that it will be easier to add other standards later on as well. If they become more on the phone. 215 00:28:08.270 --> 00:28:18.469 Karim: And an interesting feature of this is, and one is already possible, is it could, and how feasible that is. 216 00:28:18.490 --> 00:28:34.820 Karim: I don't want to make a make a judgment about that, but it could facilitate interoperability between different ecosystems and stacks etc. So, and a a a example of that is which you could do now. I have not done it yet, but 217 00:28:34.940 --> 00:28:45.970 Karim: in in theory you could get a credential issue over open id for verifiable credential issues. and then I present proof that provincial over that call. 218 00:28:46.130 --> 00:28:52.590 Karim: So that's an interesting bridging thing that it can potentially also bring. 219 00:28:52.920 --> 00:28:54.709 Karim: next one. 220 00:28:55.490 --> 00:28:56.180 Karim: Okay. 221 00:28:57.010 --> 00:29:03.139 Karim: yeah. So in other words, we we envision although it's every for Javascript, it's a bit weird, and it 222 00:29:03.500 --> 00:29:10.520 Karim: it feels bit weird to us to ourselves as well. But, We really think that 223 00:29:10.950 --> 00:29:19.329 Karim: every frame of Javascript is it like a sort of all purpose? so for an identity toolkit is the most 224 00:29:19.360 --> 00:29:25.919 Karim: valuable there are a lot of different ivans in this exercise space. 225 00:29:26.410 --> 00:29:29.619 but having a toolkit or a framework that 226 00:29:29.660 --> 00:29:35.349 Karim: can act as a bridge between all of those is really valuable. I think 227 00:29:36.420 --> 00:29:38.650 Karim: the 228 00:29:38.800 --> 00:29:45.590 Karim: that was the first block. 229 00:29:46.650 --> 00:29:58.849 Ariel Gentile: So yeah, we are going to talk a little bit more about the or more in details about the ledger agnostic and on credits which does. It's not something religious. But 230 00:29:59.400 --> 00:30:02.619 Ariel Gentile: about how this. 231 00:30:04.200 --> 00:30:06.020 Ariel Gentile: how the 232 00:30:06.950 --> 00:30:09.910 Ariel Gentile: the in the credential format was 233 00:30:10.140 --> 00:30:11.180 Ariel Gentile: involved. 234 00:30:11.450 --> 00:30:17.729 Ariel Gentile: especially last year when they became a a standalone project. 235 00:30:18.460 --> 00:30:19.920 Ariel Gentile: because 236 00:30:21.330 --> 00:30:24.870 Ariel Gentile: we we did the community 237 00:30:25.510 --> 00:30:33.720 Ariel Gentile: so that there was there was a lot of value in the a specification in format, let's say. 238 00:30:34.120 --> 00:30:38.350 Ariel Gentile: because of the you. The unique problem is that has 239 00:30:38.750 --> 00:30:42.320 this kind of quick 240 00:30:42.900 --> 00:30:44.430 Ariel Gentile: or not bad. 241 00:30:44.620 --> 00:30:49.570 Ariel Gentile: The issue for implementers was that it was 242 00:30:49.690 --> 00:30:54.970 Ariel Gentile: highly dive to the new ledger, which was something that 243 00:30:55.600 --> 00:30:56.480 Ariel Gentile: what's not 244 00:30:57.780 --> 00:31:01.110 Ariel Gentile: very appropriate for every case. So 245 00:31:01.610 --> 00:31:07.949 Ariel Gentile: the community started. this, this is a long project where the idea was to 246 00:31:08.120 --> 00:31:21.510 Ariel Gentile: the standardized the the specification, because, At that moment. It was just a part of the in the, in, the, in the C code, and and and was almost nothing was formally 247 00:31:21.850 --> 00:31:23.090 Ariel Gentile: specified. 248 00:31:23.440 --> 00:31:30.730 Ariel Gentile: So this a working group has written the I don't credit certification v. One 249 00:31:30.870 --> 00:31:34.740 Ariel Gentile: that was compatible with what 250 00:31:34.830 --> 00:31:39.200 Ariel Gentile: has been done in Indy. But there was a few tweaks 251 00:31:39.510 --> 00:31:46.469 Ariel Gentile: to make it fully compatible with any kind of verifiable that a R is 3 252 00:31:46.490 --> 00:31:49.399 Ariel Gentile: besides in the right 253 00:31:50.320 --> 00:31:55.610 Ariel Gentile: so, and this working group has has also developed 254 00:31:56.250 --> 00:32:04.950 Ariel Gentile: an implementation in rust based on the shared components that he mentioned in the beginning of this presentation. 255 00:32:05.510 --> 00:32:08.230 Ariel Gentile: That's called the 256 00:32:09.850 --> 00:32:17.699 Ariel Gentile: which has some rappers for Python and Javascript. And of course we have implemented our package 257 00:32:18.300 --> 00:32:24.119 Ariel Gentile: on based on these rappers. Actually, we develop the rappers. But that's that's another story. 258 00:32:24.530 --> 00:32:31.600 Ariel Gentile: I will say that I can probably say that if she fully supports 259 00:32:31.950 --> 00:32:42.259 Ariel Gentile: these are some people from a Kapi community, but, as far as I know. if she is the only frame or that fully supports 260 00:32:42.580 --> 00:32:44.649 Ariel Gentile: these new libraries. 261 00:32:45.370 --> 00:32:49.990 Ariel Gentile: but I put this star there in the fully because 262 00:32:50.210 --> 00:33:05.940 Ariel Gentile: we don't. We have official support, Jet and I for revocable for issuing revocation. We can verify revocable credentials. But we we we cannot issue get. But there is an ongoing Pr, so it will be 263 00:33:06.090 --> 00:33:07.810 Ariel Gentile: soon a very open. 264 00:33:08.570 --> 00:33:15.190 Ariel Gentile: So we can. By the way, we, we, we, we, we support both the new and and crest. and also 265 00:33:15.280 --> 00:33:18.029 Ariel Gentile: the legacy in the credentials. 266 00:33:19.540 --> 00:33:21.439 Ariel Gentile: we can't go. 267 00:33:22.430 --> 00:33:29.640 Ariel Gentile: So why, we'll talk a little bit about the how the sun and grades modules are 268 00:33:30.130 --> 00:33:34.729 Ariel Gentile: So the idea is that we have a. we have a 269 00:33:34.740 --> 00:33:42.549 Ariel Gentile: a generic module that defines the the basic Api for an and credits 270 00:33:43.590 --> 00:33:54.020 Ariel Gentile: which allows us to create the objects like the credential definitions, schemas to get from from from any Vdr 271 00:33:54.410 --> 00:33:58.270 Ariel Gentile: all those kind of objects. 272 00:33:59.280 --> 00:34:08.100 Ariel Gentile: and also defines the the format, the the of the how. The the objects are our format. 273 00:34:08.230 --> 00:34:12.959 Ariel Gentile: The interface is that the implementation have to implement 274 00:34:13.790 --> 00:34:15.679 Ariel Gentile: to a 275 00:34:15.880 --> 00:34:20.170 Ariel Gentile: create the bindings with the actual crypto libraries that are 276 00:34:20.600 --> 00:34:23.030 Ariel Gentile: actually doing the the work of. 277 00:34:23.290 --> 00:34:34.789 Ariel Gentile: or doing a cryptography, and also to connecting to the, to the appropriate lectures, to to get on and create the the options. 278 00:34:35.500 --> 00:34:41.500 Ariel Gentile: So the idea is that in we we have 279 00:34:42.560 --> 00:34:48.670 Ariel Gentile: for for for for an agent to work. there should be, 280 00:34:49.810 --> 00:34:57.230 Ariel Gentile: a module that implements. This, this services for for holder, for issue or verifier. 281 00:34:57.660 --> 00:35:01.139 Ariel Gentile: and at least one 282 00:35:01.530 --> 00:35:06.890 Ariel Gentile: module that adds our what we call the rash is 3 which 283 00:35:06.970 --> 00:35:09.510 Ariel Gentile: he's actually, 284 00:35:09.810 --> 00:35:10.850 Ariel Gentile: it's 285 00:35:11.100 --> 00:35:17.580 Ariel Gentile: It's an interface to the actual to to a given video. So the idea is that 286 00:35:17.850 --> 00:35:24.139 Ariel Gentile: we can, we can reduce their one or more registries in order to support 287 00:35:24.590 --> 00:35:29.170 Ariel Gentile: one or more lectures. It's more something like 288 00:35:29.410 --> 00:35:39.399 Ariel Gentile: if something analogous to what we have in the, in the deeds we can support different did methods. So we we can register different resolvers and registers. 289 00:35:39.430 --> 00:35:44.870 Ariel Gentile: in this case, we we can support different kind of Vdrs. 290 00:35:45.250 --> 00:35:46.639 Ariel Gentile: So we can add. 291 00:35:46.900 --> 00:35:50.300 Ariel Gentile: we need to add some more registry. So 292 00:35:50.330 --> 00:35:53.959 Ariel Gentile: in this, in this case, we, we are mentioning 293 00:35:54.470 --> 00:36:00.440 Ariel Gentile: the in the unknown credibility which is implemented by the in the SDK package, and also with the in the in Dvdr. 294 00:36:00.780 --> 00:36:06.440 Ariel Gentile: And they did. They checked the check. And on that, Also 295 00:36:07.070 --> 00:36:07.820 Ariel Gentile: er 296 00:36:08.100 --> 00:36:08.970 this. 297 00:36:09.390 --> 00:36:15.979 Ariel Gentile: it's implemented by by another module, which is the check. Check the SDK, that we will talk a little bit more later 298 00:36:16.690 --> 00:36:19.410 Ariel Gentile: that we can continue to go forward. 299 00:36:20.710 --> 00:36:25.569 Ariel Gentile: Somebody said to me, if I speak Spanish, yes, I speak Spanish, as you can see from my 300 00:36:26.100 --> 00:36:27.309 Ariel Gentile: from my accent. 301 00:36:27.540 --> 00:36:38.990 Ariel Gentile: so well, basically, we support on the in our. In. In the main repo, we have a support for the 302 00:36:39.610 --> 00:36:45.539 Ariel Gentile: to with the for the classic, let's say a little classic V there, which is the indie. 303 00:36:45.670 --> 00:36:48.929 Ariel Gentile: So we we support the in the this method 304 00:36:49.430 --> 00:36:58.360 Ariel Gentile: for an on credits which works with both a legacy need an indeed, and also 305 00:36:58.800 --> 00:37:02.119 Ariel Gentile: with the new in the in the method. 306 00:37:02.990 --> 00:37:09.429 Ariel Gentile: and they checked, as as I mentioned, that was contributed by the check team, which is where we 307 00:37:09.580 --> 00:37:17.180 Ariel Gentile: was a major contributor on in in in all this stuff about making an upgrades. Let's your agnostic. 308 00:37:18.760 --> 00:37:23.009 Ariel Gentile: So yeah, we we can. We continue a little bit more. 309 00:37:23.460 --> 00:37:28.200 Ariel Gentile: So yeah. The the idea is that if you want to add to add some more. 310 00:37:28.260 --> 00:37:31.800 Ariel Gentile: some more support for other 311 00:37:32.160 --> 00:37:35.440 Ariel Gentile: Vdr, it's quite simple. 312 00:37:35.760 --> 00:37:39.970 Ariel Gentile: You just need to implement an 313 00:37:40.400 --> 00:37:44.050 Ariel Gentile: with the bindings for the Vdr you are using 314 00:37:44.470 --> 00:37:49.419 Ariel Gentile: and if needed, because each 315 00:37:52.600 --> 00:37:55.209 Ariel Gentile: to a particular did this method. 316 00:37:56.050 --> 00:38:01.699 Ariel Gentile: you can, you will need to implement, that is, resolver and need our system for a hundred, and 317 00:38:01.770 --> 00:38:06.750 Ariel Gentile: add them to to your to the it's not right. 318 00:38:07.500 --> 00:38:19.339 Ariel Gentile: And so there are a few methods already supported, or in or in development under development by the community which are the Cardano made by Roots Iv. 319 00:38:20.030 --> 00:38:24.890 Ariel Gentile: And they did web support that we are using 320 00:38:25.210 --> 00:38:29.890 Ariel Gentile: which a allows to store and and and manage 321 00:38:29.900 --> 00:38:41.949 Ariel Gentile: an on cred without the need of using any blockchain at all, so we can put them directly in our in in any web server. And and just use the 322 00:38:42.410 --> 00:38:43.510 Ariel Gentile: the 323 00:38:43.880 --> 00:38:50.260 Ariel Gentile: yeah on credits library. So, for instance, in our case, in our application we are not using in the Vdr. We are just. 324 00:38:50.800 --> 00:38:55.639 Ariel Gentile: You've seen an on crisis. We are using the the core. 325 00:38:56.860 --> 00:39:01.069 Ariel Gentile: on these bindings, for we did web. 326 00:39:02.200 --> 00:39:04.559 Ariel Gentile: We can move forward. 327 00:39:06.020 --> 00:39:07.050 Ariel Gentile: What do they all? 328 00:39:10.620 --> 00:39:17.250 Berend Sliedrecht: Yes, thank you, Ariel. so I think everything what they just said. It sounds very cool, but 329 00:39:17.510 --> 00:39:26.290 Berend Sliedrecht: you have to see a connection, of course. so first I'll do a short demo using a wallet that we created that animal. 330 00:39:26.390 --> 00:39:29.730 Berend Sliedrecht: it is built for a Dutch project 331 00:39:29.760 --> 00:39:35.200 Berend Sliedrecht: which tries to create a minimal set of 332 00:39:35.650 --> 00:39:40.810 Berend Sliedrecht: requirements as like a subset of the A Rf. With green just mentioned. 333 00:39:40.950 --> 00:39:47.140 Berend Sliedrecht: So we, the aeriff, still leaves some like like holes in there 334 00:39:47.150 --> 00:40:00.390 Berend Sliedrecht: first implementation or or document. and we decided to now fill in those gaps, make some decisions, and then we created a one for it, together with other companies, to also contribute it 335 00:40:00.540 --> 00:40:01.769 Berend Sliedrecht: to the project. 336 00:40:01.780 --> 00:40:05.599 Berend Sliedrecht: and I will give a quick demo of this as well as right now. 337 00:40:06.040 --> 00:40:07.179 Berend Sliedrecht: That's cool. 338 00:40:08.860 --> 00:40:10.560 See? 339 00:40:13.930 --> 00:40:15.950 Berend Sliedrecht: Yeah, it should be here. 340 00:40:16.090 --> 00:40:23.250 Berend Sliedrecht: so Here we have a very simple login page for the Dutch blockchain coalition 341 00:40:23.520 --> 00:40:34.670 Berend Sliedrecht: and we can log in with our wallets, which is on the left side we? I think we can give some links to the wallet. So you can play around with it yourself. 342 00:40:34.840 --> 00:40:44.180 Berend Sliedrecht: basically, this leverages the open Id for Vc, specifications. So we use open id for Pci. for a credential issuance 343 00:40:44.190 --> 00:40:48.310 Berend Sliedrecht: soy up and open it for V. P. To present these credentials. 344 00:40:48.530 --> 00:40:59.019 Berend Sliedrecht: and this is just a very nice simple login flow. again, very demo environment. So no additional security is provided. 345 00:40:59.240 --> 00:41:05.290 Berend Sliedrecht: here we can request a credential so I'll just 346 00:41:06.160 --> 00:41:09.340 Berend Sliedrecht: upside. It's not mobile, friendly. 347 00:41:09.720 --> 00:41:12.010 Berend Sliedrecht: I will fill in my information here 348 00:41:13.780 --> 00:41:14.920 Berend Sliedrecht: email. 349 00:41:16.190 --> 00:41:29.950 Berend Sliedrecht: and then I'll click share. And then we can see the 2 walls that are available, which is paradigm from us, and the which also does the open id stack but with a bit more functionality as well. 350 00:41:30.740 --> 00:41:35.640 Berend Sliedrecht: Here we see a QR codes. Hopefully, I'm the first one to sc this. 351 00:41:36.200 --> 00:41:47.490 Berend Sliedrecht: and here we can see the credential. we also have a little display here, which is all from the W. To see Jason. All the specifications we get this. 352 00:41:47.720 --> 00:41:51.670 Berend Sliedrecht: and this is the content of the credential which we can accept. 353 00:41:52.020 --> 00:41:57.860 Berend Sliedrecht: And now I have 3 attendance credentials, which might be a bit much, but it's a demo. 354 00:41:58.930 --> 00:42:13.280 Berend Sliedrecht: and then we can go back and use this QR code to log in which basically does a proof request of the credential which we can see here. We want the first time the email, an id last name and the event. 355 00:42:13.370 --> 00:42:14.970 Berend Sliedrecht: and if I click, accept 356 00:42:16.370 --> 00:42:21.810 Berend Sliedrecht: it will share it. And I am looked in right now which can be seen here. 357 00:42:23.310 --> 00:42:24.310 Berend Sliedrecht: So 358 00:42:24.930 --> 00:42:31.439 Berend Sliedrecht: yeah, I can see here I am locked out again very, very much. The my environment fun to play around with. 359 00:42:31.610 --> 00:42:39.089 Berend Sliedrecht: but it shows The specific. Demo quite shows very well that the open id for Pci 360 00:42:39.110 --> 00:42:42.879 Berend Sliedrecht: group of specifications is is 361 00:42:43.050 --> 00:42:49.429 Berend Sliedrecht: very, very simple. and built until on top of a lot of standards that already exist. 362 00:42:49.660 --> 00:42:50.680 Berend Sliedrecht: And 363 00:42:50.970 --> 00:42:55.430 Berend Sliedrecht: yeah it it it. It removes quite some overheads to 364 00:42:55.670 --> 00:42:58.140 Berend Sliedrecht: to to issue credentials more quickly. 365 00:42:58.420 --> 00:43:03.489 Berend Sliedrecht: and I will show you that right now. so if I go to the slides. 366 00:43:04.070 --> 00:43:18.549 Berend Sliedrecht: from a holder perspective, this is basically the all the code that you need. basically with a mess of a strikes, because, of course, we are set up with safe management and everything. We're not going to go into that 367 00:43:18.930 --> 00:43:26.810 Berend Sliedrecht: So we we can set up an agent and we add a new module called the open Id for Vc client module 368 00:43:26.880 --> 00:43:34.189 Berend Sliedrecht: this is specifically for the wallet sides, which in open Id for Vc terms, is the client 369 00:43:34.800 --> 00:43:41.779 Berend Sliedrecht: and we also need a wallet here, but it's all left out, so we can like a a nice little example. 370 00:43:41.980 --> 00:43:43.460 Berend Sliedrecht: We're not throwing a lot of 371 00:43:44.050 --> 00:43:51.120 Berend Sliedrecht: and on module that you and right here below. We initialize the agent quickly, and then we 372 00:43:51.200 --> 00:43:54.939 Berend Sliedrecht: all the methods request credentials are using free authorized code. 373 00:43:55.120 --> 00:44:07.209 Berend Sliedrecht: So with the open and D for PC, specifications you have, like A, you have a pre-authorized goat flow and a all the rest goes low. For this demo. We rely on the pre-authorized code flow. 374 00:44:07.410 --> 00:44:12.499 Berend Sliedrecht: Here we just pass in the data which we scanned as the issue of your I. 375 00:44:12.790 --> 00:44:16.349 Berend Sliedrecht: We given a couple of additional fields. 376 00:44:16.490 --> 00:44:31.740 Berend Sliedrecht: also the the proof of position. Verification methods are over. We we love our long names. It's left out to to keep it a bit shorter But here you would basically go to a verification method in your 377 00:44:31.750 --> 00:44:38.550 Berend Sliedrecht: which will then be used to sign the credential using that verification method. 378 00:44:39.350 --> 00:44:51.190 Berend Sliedrecht: but that's so nice. it's a nice demo looks all cool. but I think a lot of people here are actual developers. So would be good to also go through some real code. 379 00:44:51.340 --> 00:45:00.599 Berend Sliedrecht: in this demo which is available at this link. we will actually use a discom and anocrats. 380 00:45:00.920 --> 00:45:09.000 Berend Sliedrecht: and we will establish a connection with between a holder and an issue. Where using the in the SDK, 381 00:45:09.360 --> 00:45:13.870 Berend Sliedrecht: then we receive or you. We register a 382 00:45:14.080 --> 00:45:18.799 Berend Sliedrecht: did in the for the issue or 383 00:45:18.990 --> 00:45:21.830 Berend Sliedrecht: then we registered schema and credential definition. 384 00:45:23.130 --> 00:45:34.640 Berend Sliedrecht: Afterwards we we offer a credential from the issue. We are using the the new anocrats model. once that is received by the holder, we actually migrate to the holder. 385 00:45:34.650 --> 00:45:38.320 Berend Sliedrecht: to the new shared components 386 00:45:38.410 --> 00:45:45.519 Berend Sliedrecht: the underlying database structure for Indy is quite a bit different than for Oscar. So we wrote a custom migration script 387 00:45:45.890 --> 00:45:51.150 Berend Sliedrecht: which I think we'll touch on more later. but it just if it is so, you can 388 00:45:51.250 --> 00:45:56.720 Berend Sliedrecht: reuse your in the SDK agents potentials and everything that the stored in there 389 00:45:56.950 --> 00:46:02.250 Berend Sliedrecht: with the new shirt components. 390 00:46:02.410 --> 00:46:05.150 Berend Sliedrecht: Then afterwards at last that we 391 00:46:05.190 --> 00:46:11.479 Berend Sliedrecht: presents a credential to a verifier with the newly migrated agents to 392 00:46:11.600 --> 00:46:14.849 Berend Sliedrecht: show that everything still works. If it's supposed to be 393 00:46:15.060 --> 00:46:17.850 Berend Sliedrecht: and I will 394 00:46:18.030 --> 00:46:27.219 Berend Sliedrecht: just slides to the codes which is open right here. I hope it's big enough. I can make it bigger if it's big enough for some people. 395 00:46:27.830 --> 00:46:36.979 Berend Sliedrecht: so we'll just quickly go through the code and then see what it's doing. again, repo is available afterwards. So if you have any questions about how some 396 00:46:37.030 --> 00:46:40.079 Berend Sliedrecht: part of it is phone. we'll really share. 397 00:46:40.140 --> 00:46:43.639 Berend Sliedrecht: perfect you can. 398 00:46:43.790 --> 00:46:49.139 Berend Sliedrecht: you can look at it there, or asked in the Q. A. After we we have some time for questions. 399 00:46:49.800 --> 00:46:58.550 Berend Sliedrecht: so first, very simple. we initialize an agent which is the whole they're using the in SDK 400 00:46:58.730 --> 00:47:04.369 Berend Sliedrecht: we can quickly look here to see all those modules that we talked about. 401 00:47:04.680 --> 00:47:13.059 Berend Sliedrecht: to go a bit up. Sorry this is for the in the SDK, so here we registered in the SDK as our wallet 402 00:47:13.140 --> 00:47:27.469 Berend Sliedrecht: we register. I'm a credits on a Chris module. and we use the in the Vdr. On the bridge registry to resolve the autonomous objects. And here we have the unimpressed Rs module, which is a module 403 00:47:27.720 --> 00:47:35.549 Berend Sliedrecht: around the Democrats Javascript. which is for Nodejs. It uses 404 00:47:35.620 --> 00:47:48.860 Berend Sliedrecht: just your Fi bindings, and for reign, if it uses circle modules For this we only need the in the death resolver. as the holder. and for the Nvdr. We? 405 00:47:48.870 --> 00:48:05.050 Berend Sliedrecht: we supply a network which is the PC over in test network which is just a simple Genesis transaction. And some information like, if it's a production network. What is the ending namespace, and where we should connect to it on startup 406 00:48:06.090 --> 00:48:18.730 Berend Sliedrecht: for connections, we supply the Mono again, it is provided by default. But if you want to modify the configuration. you have to supply the module again with the new configuration. 407 00:48:18.860 --> 00:48:26.259 Berend Sliedrecht: So here we want how to accept connections to true which basically means that if we want to establish a connection, we don't have to go 408 00:48:26.430 --> 00:48:33.340 Berend Sliedrecht: through the entire process manually of the multiple steps. was time. Users just want a single like, accept or decline. 409 00:48:33.590 --> 00:48:35.619 Berend Sliedrecht: and it helps a lot with that 410 00:48:38.300 --> 00:48:46.419 Berend Sliedrecht: below. We have the new credentials, module same configuration. As for the connections, we can auto accept credentials 411 00:48:46.700 --> 00:48:57.740 Berend Sliedrecht: This uses always, which is strongly not recommended to do in a production environment but works very well for Demos. And this is the same as other except connections. 412 00:48:57.770 --> 00:49:10.190 Berend Sliedrecht: Basically, every credential that comes into the agents we just accept doesn't matter what the content is. If it's true or not, we we just accept it works very well for Demos definitely not recommended for protection environments 413 00:49:10.420 --> 00:49:18.269 Berend Sliedrecht: and below that we register some credential protocols which is for now only the fi one protocol 414 00:49:18.460 --> 00:49:30.929 Berend Sliedrecht: which uses the anocrats credential form of service. And right here you would specify, like a just, a decremential form of surface or a legacy in the credential format surface to support all of all of them. 415 00:49:31.110 --> 00:49:35.970 Berend Sliedrecht: but for this we try to keep keep the modules as minimal as possible. 416 00:49:36.920 --> 00:49:38.410 Berend Sliedrecht: So that's the holder. 417 00:49:39.080 --> 00:49:45.949 Berend Sliedrecht: and we initialize it, and with initializing you, just you. You initialize the wallet you set up the transport. 418 00:49:45.990 --> 00:49:51.249 Berend Sliedrecht: I think people that are familiar with, if I know exactly what it does. but it's just setting everything up for you. 419 00:49:51.810 --> 00:50:01.499 Berend Sliedrecht: right now, as some of you who might know this to migrate it to 0 for 0 already is. You have to create a link secret now, and the in the est. I think that that under the booth 420 00:50:01.870 --> 00:50:04.939 Berend Sliedrecht: now we have to do it manually 421 00:50:05.010 --> 00:50:14.339 Berend Sliedrecht: as a as a user. I I think there is support request open to also automatically those for you. so this stuff should will probably be just a configuration option 422 00:50:14.640 --> 00:50:17.160 Berend Sliedrecht: but it's very simple. Here. We just call 423 00:50:17.180 --> 00:50:21.569 Berend Sliedrecht: straight link secrets on the on the credits module, and we're done 424 00:50:23.220 --> 00:50:32.210 Berend Sliedrecht: below that we initialize the issuer. I'll just go over the issue of modules, and then the rest of the motion. I think we can skip, because most of the time the same stuff. 425 00:50:32.530 --> 00:50:41.309 Berend Sliedrecht: but here we can see we actually register escar anocrats. And it's in the video, our connections and credentials 426 00:50:41.630 --> 00:50:50.649 Berend Sliedrecht: most notably. Here is Oscar instead of the in the SDK, again, the new crypto and storage implementation 427 00:50:50.950 --> 00:50:54.790 Berend Sliedrecht: which is required if we don't. Just 428 00:50:55.050 --> 00:51:05.130 Berend Sliedrecht: we have in our dates much. We also have a registrar because we are an issue, and we have to register our that, we can also import it with already all mentioned. So you don't really have. 429 00:51:05.230 --> 00:51:07.189 Berend Sliedrecht: You don't need a registrar 430 00:51:07.310 --> 00:51:13.010 Berend Sliedrecht: But for this we we don't import it. So we have to register it ourselves. 431 00:51:13.510 --> 00:51:18.219 Berend Sliedrecht: network again. BC over in test network and the rest is all the same. 432 00:51:20.630 --> 00:51:24.689 Berend Sliedrecht: So below, we actually got to some functionality 433 00:51:24.890 --> 00:51:38.260 Berend Sliedrecht: which is creating and registering a did indie codes, for this is is fairly simple. it is. It does not work, so feel free to copy this. See? It's it's it's all fine. 434 00:51:38.390 --> 00:51:44.130 Berend Sliedrecht: basically. What we do here is PC, over in as like a web Ui, where you can 435 00:51:44.160 --> 00:51:45.319 Berend Sliedrecht: created it. 436 00:51:45.510 --> 00:51:48.000 Berend Sliedrecht: and then right here we 437 00:51:48.160 --> 00:51:55.969 Berend Sliedrecht: I copy the seat that we use there. this is the bit that came out. So we also put it here. this would be the fully qualified. That 438 00:51:56.270 --> 00:52:03.899 Berend Sliedrecht: which is also something we did with from 0 3 0 to 0 4 0 as we move through qualified to identifiers for Indie. 439 00:52:05.230 --> 00:52:10.379 Berend Sliedrecht: And here we have the import function which basically sets all of this up. 440 00:52:10.540 --> 00:52:21.140 Berend Sliedrecht: it might look a bit weird that we use to see as the private key. I had a discussion a while ago why, this was the case. 441 00:52:21.390 --> 00:52:27.369 Berend Sliedrecht: I forgot it. but it's I think it was required, because this is just how the in the State did it. 442 00:52:27.480 --> 00:52:30.980 Berend Sliedrecht: And for us car, we need to keep that 443 00:52:30.990 --> 00:52:35.229 Berend Sliedrecht: So this was done there as well that you see that actually the private key 444 00:52:38.560 --> 00:52:47.860 Berend Sliedrecht: and we can register a schema registering schema nothing new actually in 0 for 0. It's still the same as we had since 0 1 0. 445 00:52:48.190 --> 00:53:01.589 Berend Sliedrecht: so we just register a schem out with the same answer as as always. we have a name, date of birth, email and an occupation. we did change the interface a little bit. So it now looks actually very familiar to the 446 00:53:01.780 --> 00:53:12.969 Berend Sliedrecht: this interface. which returns a state, and if the State is filled, then there's some error, and if it's not, then we kind of just return the scheme. Id. 447 00:53:13.040 --> 00:53:16.280 Berend Sliedrecht: which we can then use for the branch definition. 448 00:53:17.640 --> 00:53:21.030 Berend Sliedrecht: That's good. There. credential definition. 449 00:53:22.280 --> 00:53:32.480 Berend Sliedrecht: and again, yeah, everyone already familiar with this. Probably you only right now. But here we simply just registered a credential definition with the schema. 450 00:53:32.670 --> 00:53:38.790 Berend Sliedrecht: same interface again. Nice and consistent. If you're not one interface, you know them all. 451 00:53:38.910 --> 00:53:40.579 Berend Sliedrecht: and you were just return it. 452 00:53:41.590 --> 00:53:47.509 Berend Sliedrecht: And right here we actually establish a connection between the issuer and the 453 00:53:47.830 --> 00:53:57.369 Berend Sliedrecht: not gonna go in that in there? Because, yeah, the nothing really changed there. we just to create a connection in there. If you want to see the code. 454 00:53:57.470 --> 00:54:08.470 Berend Sliedrecht: it is in the repository. it's right. Here we have something new which is offering an immigrant credential. so right here will be the Api for it. 455 00:54:08.750 --> 00:54:15.649 Berend Sliedrecht: We have an issue, or we have the credentials module. and we do offer credential. We use. We do. 456 00:54:15.900 --> 00:54:19.330 Berend Sliedrecht: We send it. with the associated collection. Id. 457 00:54:19.380 --> 00:54:22.859 Berend Sliedrecht: and these are the attributes that we want to issue. 458 00:54:23.620 --> 00:54:29.519 Berend Sliedrecht: and also the crunch definition, id, which is required. 459 00:54:30.730 --> 00:54:34.250 Berend Sliedrecht: simple utility method here to 460 00:54:34.300 --> 00:54:36.770 Berend Sliedrecht: basically wait until the holder has the wallet. 461 00:54:37.120 --> 00:54:41.740 Berend Sliedrecht: and then we shut down the wallets. after that we 462 00:54:42.060 --> 00:54:45.530 Berend Sliedrecht: migrated. so this is what I meant before with 463 00:54:45.730 --> 00:54:56.999 Berend Sliedrecht: We're using India's gay agent, and every what that is currently deployed with. They have J. Uses in the SDK, and with this very pretty short script 464 00:54:57.690 --> 00:55:02.320 Berend Sliedrecht: you can migrate through any any SDK wallets to 465 00:55:02.630 --> 00:55:11.930 Berend Sliedrecht: the new unemployed structure. you just have to know the database path which is figuring out which path is is all provided in the documentation 466 00:55:11.950 --> 00:55:18.420 Berend Sliedrecht: so it should be a relatively straightforward migration. So if we go back. 467 00:55:19.090 --> 00:55:23.639 Berend Sliedrecht: then here we can initialize the shared components holder. 468 00:55:23.930 --> 00:55:30.409 Berend Sliedrecht: and we also initialize a verifier. And then we create another connection between the verifier and the holder. 469 00:55:30.530 --> 00:55:36.950 Berend Sliedrecht: here we request a an auto crest proof. using this. 470 00:55:37.110 --> 00:55:39.099 Berend Sliedrecht: so again, the connection Id. 471 00:55:39.110 --> 00:55:44.319 Berend Sliedrecht: and here we basically create a an upgrade specific. request 472 00:55:44.540 --> 00:55:48.660 Berend Sliedrecht: So if in your configuration you add something like 473 00:55:49.330 --> 00:55:50.340 Berend Sliedrecht: I 474 00:55:50.490 --> 00:55:54.710 Berend Sliedrecht: I think, for Jason l'd a key with 475 00:55:55.130 --> 00:56:08.900 Berend Sliedrecht: display here with auto completion, and you can do Jason L. The, and then you can provide the The request for adjacent to the credential it's very simple. 476 00:56:09.930 --> 00:56:16.840 Berend Sliedrecht: And then here we just wait until the credentials or the the proof is presented, and the verifier agrees with it. 477 00:56:17.120 --> 00:56:19.870 Berend Sliedrecht: so that's around the. 478 00:56:20.520 --> 00:56:22.299 Berend Sliedrecht: I think I can go here. 479 00:56:22.690 --> 00:56:25.519 Berend Sliedrecht: and then we can just simply run your starts 480 00:56:26.060 --> 00:56:34.640 Berend Sliedrecht: and it will go through the code. if you try to run this after a workshop. Every single step requires an enterprise so we can 481 00:56:34.710 --> 00:56:39.559 Berend Sliedrecht: go through it. so I'll just press enter. It's initializing the whole there 482 00:56:40.520 --> 00:56:44.050 Berend Sliedrecht: trading link secrets initializing the issue. Or 483 00:56:44.480 --> 00:56:49.650 Berend Sliedrecht: now it's going to register the objects that we talked about. So here we registered, paid with Indy. 484 00:56:51.160 --> 00:56:56.909 Berend Sliedrecht: and then we register based schema with the full new qualified identifier. 485 00:56:59.070 --> 00:57:05.570 Berend Sliedrecht: And this the credential definition always takes some time. But there it is. I think if you go to the 486 00:57:05.840 --> 00:57:12.829 Berend Sliedrecht: the, the, the test network. You can see these objects now. in the web interface. 487 00:57:13.150 --> 00:57:16.500 Berend Sliedrecht: And now it creates a connection between the issue, and the holder 488 00:57:17.680 --> 00:57:21.989 Berend Sliedrecht: that we offers the credential. and it's accepted by the holder. 489 00:57:22.040 --> 00:57:25.089 Berend Sliedrecht: which is again all automatic. 490 00:57:25.130 --> 00:57:30.779 Berend Sliedrecht: don't really have to do any steps in between, which is extremely nice for just quickly developing something. 491 00:57:31.020 --> 00:57:33.249 Berend Sliedrecht: then we're shutting down a hold there. 492 00:57:33.740 --> 00:57:45.619 Berend Sliedrecht: And now we're gonna migrate it to the new shot of components. So all the in the credentials are moved into the infrastructure. The piece are moved. everything that you would need as a holder or a mediator. 493 00:57:46.020 --> 00:57:52.520 Berend Sliedrecht: it's got more on that later on. Then we initialize the holder with sharp components. 494 00:57:53.540 --> 00:57:56.399 Berend Sliedrecht: initialize the verifier. All very simple. 495 00:57:57.620 --> 00:58:07.119 Berend Sliedrecht: Credit the collection. And now, the proof is requested. and here we can see that the proof was presented. And this is what we shared. 496 00:58:07.370 --> 00:58:10.529 Berend Sliedrecht: We with the verifier as the holder. 497 00:58:10.950 --> 00:58:14.969 Berend Sliedrecht: so all of this is now 498 00:58:15.400 --> 00:58:25.569 Berend Sliedrecht: quite simply possible. with the new Z for 0 release. and I can go back to the presentation. 499 00:58:27.260 --> 00:58:28.260 Berend Sliedrecht: Let's see. 500 00:58:28.700 --> 00:58:33.599 Berend Sliedrecht: And no, I think Green will tell something about our beautiful new documentation. 501 00:58:34.500 --> 00:58:38.410 Karim: Wow. it's not that new anymore. but 502 00:58:38.590 --> 00:59:03.079 Karim: I I did want to mention it, because we have an update, it's significantly, and even some next one. So in the last for those who were there in the last, I think about a year ago, about the 0 3 0 release. That was, I think, when we first introduced the documentation website. So if you go to. 503 00:59:03.190 --> 00:59:06.459 Karim: and we still to J, as the fork. 504 00:59:07.760 --> 00:59:09.210 Karim: yeah, there it is. 505 00:59:09.510 --> 00:59:15.499 Karim: And then we introduced that documentation which I was very, very 506 00:59:15.730 --> 00:59:17.270 minimal back. Then 507 00:59:17.330 --> 00:59:23.409 Karim: it's still sadly, not everything has been documented. But I think we 508 00:59:23.510 --> 00:59:43.860 Karim: yeah, we're getting somewhere And the first thing I want to point out is that we have version documentation. So if you are still we didn't replace everything with the 0 4 0 talks. So if you are still working in 0 3 0, that is no problem. We will obviously advise you to to upgrade and to migrate at some point 509 00:59:44.010 --> 00:59:50.819 Karim: both the the to the documentation that was previously. There is still there, so 510 00:59:51.110 --> 01:00:19.860 Karim: that you can see here in the image in the right, the the top right corner can choose for different version. and additionally well, Clarin has talked about this quite extensively, and I'm shown all kinds of examples here. But we have. And we already had, that previously from 0 1 0 to 0 2 0 from 0 to 3 0. And now also from 0 3 0 to 0 4 0 migration guides. So 511 01:00:20.210 --> 01:00:37.759 Karim: the Api's change here and there the the script that's just showed you was really about the storage. So the yeah, the models for the objects that are stored. They are slightly different. And 512 01:00:37.790 --> 01:00:47.660 Karim: in terms of yeah, in third terms of data structure. So there needs to be some migration there. For that you can use the scripts. 513 01:00:47.830 --> 01:00:58.560 Karim: but these migration documentation or pages. Here they are really like they what we have, the the, the 0 3 0 Api versus the 514 01:00:58.630 --> 01:01:07.769 Karim: 0 4 0 Api, and how to migrate. Basically. What? What lines of codes that? What lines of codes do you need to change? How do you need to change them? So we 515 01:01:07.980 --> 01:01:10.259 Karim: we really try to guide you through that 516 01:01:10.460 --> 01:01:28.790 Karim: there. And Yeah. Lastly, when I wants to point out the process of communication, which I think is quite cool, is, we have these people for little pabs here, as you can see, in the middle. So we have an indie, and I'm on grid that, for instance, there, this is just one example. There are many 517 01:01:28.950 --> 01:01:40.680 Karim: which basically tells you. Okay, if you're still using it yesterday. then this is how you should call this function but if you are using 518 01:01:41.090 --> 01:01:47.519 Karim: out on Chris, then you can use Well, then, then, the function goals should look like this. 519 01:01:48.020 --> 01:01:51.930 Karim: I think we can move on. That was about the documentation. Yeah. 520 01:01:51.970 --> 01:01:57.049 Karim: Then I think it is time to talk about the rope back. 521 01:01:57.430 --> 01:01:58.230 understand? 522 01:01:58.350 --> 01:02:04.920 Karim: And bearing is, gonna get that on that. This is a service side. I. Fj. 523 01:02:05.960 --> 01:02:14.419 Ariel Gentile: sorry I was. I was writing on the. So yeah, actually, we. 524 01:02:15.460 --> 01:02:24.149 Ariel Gentile: we are already supporting server side actually, in our in both animal and us are using 525 01:02:24.230 --> 01:02:26.220 Ariel Gentile: extensively 526 01:02:26.730 --> 01:02:29.839 Ariel Gentile: the If she for for 527 01:02:30.080 --> 01:02:31.309 Ariel Gentile: 40 bucks. 528 01:02:31.620 --> 01:02:37.479 Ariel Gentile: But this is something that we will want to focus on in the incoming 529 01:02:37.670 --> 01:02:41.809 Ariel Gentile: releases. So that's why we wanted to to put it here right? 530 01:02:42.190 --> 01:02:46.510 Ariel Gentile: but something that 531 01:02:47.520 --> 01:02:49.899 Ariel Gentile: we want to say was that 532 01:02:50.260 --> 01:02:51.180 Ariel Gentile: even if 533 01:02:51.560 --> 01:02:54.420 Ariel Gentile: if she is mostly known for for 534 01:02:54.650 --> 01:03:00.269 Ariel Gentile: for for mobile environments, or for the holler side, we believe that 535 01:03:00.420 --> 01:03:02.740 Ariel Gentile: we think that is good. 536 01:03:02.980 --> 01:03:04.500 Ariel Gentile: It's worth measuring that 537 01:03:05.760 --> 01:03:07.640 Ariel Gentile: if she supports 538 01:03:08.400 --> 01:03:11.070 Ariel Gentile: almost all the features 539 01:03:11.090 --> 01:03:16.009 Ariel Gentile: needed to create a an agent that can work 540 01:03:16.310 --> 01:03:20.369 Ariel Gentile: for using other roles like 541 01:03:20.600 --> 01:03:22.830 Ariel Gentile: mediators, because we 542 01:03:23.330 --> 01:03:32.770 Ariel Gentile: we do support with the fully support both meditation, coordination protocol, and also the message, pick up v. One and v. 2. 543 01:03:34.080 --> 01:03:37.020 Ariel Gentile: We have a very basic 544 01:03:37.060 --> 01:03:43.419 Ariel Gentile: message queue in in no way for different implementation. But we can plug in 545 01:03:43.810 --> 01:03:46.379 Ariel Gentile: something more sophisticated, like 546 01:03:46.440 --> 01:03:54.280 Ariel Gentile: a story in that in already so or in both, we we cannot put notification. So 547 01:03:54.960 --> 01:03:56.590 Ariel Gentile: we have the tools to 548 01:03:57.250 --> 01:04:00.800 Ariel Gentile: to make an a shame mediator to to work 549 01:04:01.210 --> 01:04:11.260 Ariel Gentile: or to build a basis of of of a mediator that is compatible with with any, with all the protocols that are defined for that 550 01:04:11.530 --> 01:04:21.710 Ariel Gentile: erez agmoni, and same for the credential issues, because we usually usually use a for for holler and verify your roles. But we can also issue credentials 250 551 01:04:21.780 --> 01:04:25.629 Ariel Gentile: in various formats. In the case of the unon credits. It's true that 552 01:04:25.650 --> 01:04:33.790 Ariel Gentile: we don't currently support revocable credentials, but we are very close to to that. So maybe 553 01:04:33.800 --> 01:04:41.999 Ariel Gentile: in a few weeks or so we we have the, the, the Pr marriage. So we know the next minor version. We we will support it. 554 01:04:42.330 --> 01:04:45.579 Ariel Gentile: We can continue the next slide. 555 01:04:48.450 --> 01:04:59.549 Ariel Gentile: Some reasons for that. Okay. this is this is mainly a we. These are mainly our our reasons for choosing a 556 01:05:00.100 --> 01:05:04.709 Ariel Gentile: and because we have a very small team. 557 01:05:04.930 --> 01:05:10.690 Ariel Gentile: you know that it's hard to find scale developers nowadays. So 558 01:05:10.960 --> 01:05:16.330 Ariel Gentile: we want you to share as much as we could of the code base. 559 01:05:17.150 --> 01:05:19.010 Ariel Gentile: And so 560 01:05:19.110 --> 01:05:25.560 Ariel Gentile: the good thing about using a for both sides is that we don't have to master to different languages. 561 01:05:25.830 --> 01:05:30.469 Ariel Gentile: This is not only a problem when you are dealing with 562 01:05:31.050 --> 01:05:31.900 it. 563 01:05:32.400 --> 01:05:38.789 Ariel Gentile: we with the, with the, with high level code, but also, if you need to adapt to 564 01:05:39.200 --> 01:05:40.960 Ariel Gentile: a low level library. 565 01:05:41.410 --> 01:05:49.389 Ariel Gentile: because you will need to also create rappers. And you know that it's it's not very straightforward sometimes 566 01:05:49.490 --> 01:05:53.480 Ariel Gentile: to create them. So if we can 567 01:05:53.490 --> 01:06:00.650 Ariel Gentile: make the whole team to work on the same environment with the same tools. It will be 568 01:06:00.690 --> 01:06:04.839 Ariel Gentile: usually faster, especially in the small teams. 569 01:06:05.620 --> 01:06:09.899 Ariel Gentile: And also the other reason is that 570 01:06:10.450 --> 01:06:11.580 Ariel Gentile: we 571 01:06:11.610 --> 01:06:17.990 Ariel Gentile: wanted to create custom features. I mean custom protocol. For instance, in our project we are using. 572 01:06:18.290 --> 01:06:28.449 Ariel Gentile: we've come for for for chat. So we are using, we, we have created some protocols to send media together to to other 573 01:06:28.470 --> 01:06:32.040 Ariel Gentile: parties and provide pictures. And that stuff. 574 01:06:32.420 --> 01:06:37.790 Ariel Gentile: So for us was a lot easier if we should, if we 575 01:06:38.020 --> 01:06:41.029 Ariel Gentile: just made a a single 576 01:06:41.100 --> 01:06:42.390 Ariel Gentile: extension 577 01:06:42.850 --> 01:06:54.039 Ariel Gentile: for for a, instead of having to create 2 extensions for I mean one for for for the server side, and another for the for the 578 01:06:54.100 --> 01:06:55.240 Ariel Gentile: the client side. 579 01:06:56.450 --> 01:07:03.699 Ariel Gentile: and also some other nice features of I have. Sh! I are the storage by kind of flexibility is through that 580 01:07:04.250 --> 01:07:07.719 Ariel Gentile: at the moment we are a little bit tied to the 581 01:07:07.800 --> 01:07:14.239 Ariel Gentile: I mean, we. We have only the implementation of us. 582 01:07:14.330 --> 01:07:18.179 Ariel Gentile: Our goal in the short term would, on the mid term, let's say. 583 01:07:18.340 --> 01:07:19.949 Ariel Gentile: would be to 584 01:07:20.000 --> 01:07:25.680 Ariel Gentile: to to make it more. Not only let your agnostic, but also 585 01:07:25.890 --> 01:07:34.769 Ariel Gentile: database back in a diagnostic in a way that we can adapt it to to use. As mentioned in the beginning of this conversation. 586 01:07:35.180 --> 01:07:40.060 Ariel Gentile: to use. there is a browser, or or whatever 587 01:07:40.390 --> 01:07:41.940 Ariel Gentile: so. 588 01:07:42.110 --> 01:07:53.580 Ariel Gentile: and also something that, as a Karim already answered in the in the chat is that we have, we? We do have a an extension in the harvest framework 589 01:07:54.030 --> 01:08:00.369 Ariel Gentile: repo that provides provide service interface. 590 01:08:00.550 --> 01:08:03.049 Ariel Gentile: So we you can. You can easily 591 01:08:03.350 --> 01:08:09.999 Ariel Gentile: set up an agent with a rest. Ap Api. So that's our 592 01:08:10.060 --> 01:08:11.780 some of these would 593 01:08:11.860 --> 01:08:15.299 Ariel Gentile: things about using Afsh on the server side. 594 01:08:16.560 --> 01:08:17.350 Ariel Gentile: And that's 595 01:08:23.090 --> 01:08:32.759 Berend Sliedrecht: So one question that I think I got from the beginning when I started to work on A of J was, When will we have web wallets? 596 01:08:32.840 --> 01:08:46.730 Berend Sliedrecht: Which is a very good question. I think we will. Let's say they serve a very nice purpose. and for me it's always I think always Demos came to mind like just a quick demo you. You don't need to host the server for it. 597 01:08:46.790 --> 01:08:48.270 Berend Sliedrecht: It's very simple. 598 01:08:48.330 --> 01:08:50.529 Berend Sliedrecht: And 599 01:08:50.710 --> 01:08:57.350 Berend Sliedrecht: with what we talked about with once you arising the the framework we 600 01:08:57.990 --> 01:09:04.420 Berend Sliedrecht: basically every every module we we separate, we get closer to full web support. 601 01:09:04.560 --> 01:09:17.650 Berend Sliedrecht: because right now, the the main issue is with the framework, because we just have too many dependencies on no specific items or react native specific libraries. And they are, just not provided 602 01:09:17.710 --> 01:09:23.649 Berend Sliedrecht: for the web. I before that with the in the SDK there was just no 603 01:09:23.660 --> 01:09:29.580 Berend Sliedrecht: like web replacement for the entire in the SDK so we have to find alternatives for that 604 01:09:29.620 --> 01:09:39.379 Berend Sliedrecht: separating everything out into their own module makes it a lot easier and more manageable to replace smaller parts with a browser implementation. 605 01:09:39.910 --> 01:09:47.629 Berend Sliedrecht: for example, for a demo, you can probably. create A and the implementation of escar 606 01:09:47.689 --> 01:09:52.060 Berend Sliedrecht: for A of J with you using local storage and browser crypto. 607 01:09:52.210 --> 01:10:04.559 Berend Sliedrecht: I think that that would be relatively manageable. There is also, of course, a web assembly which could use wise as a 608 01:10:04.630 --> 01:10:18.169 Berend Sliedrecht: for storage This is, of course, more of like a full like actual web wallets, and not just a demo environment like you wouldn't use local storage to to store your credentials. but while you would could actually provide 609 01:10:18.330 --> 01:10:24.400 Berend Sliedrecht: a way to store credentials when your local device and access them from the browser. 610 01:10:24.460 --> 01:10:31.030 Berend Sliedrecht: packages like autocrats are compatible to web assembly as well. 611 01:10:31.050 --> 01:10:40.540 Berend Sliedrecht: so that's something we can also take a look at in the future. and in the Pdr. I think as well. But the re-implementation of that 612 01:10:40.820 --> 01:10:44.900 Berend Sliedrecht: for what we need wouldn't be 613 01:10:44.980 --> 01:10:51.369 Berend Sliedrecht: it will be able to this effort, then, reinforcing the in the SDK so browser support is definitely 614 01:10:51.550 --> 01:11:00.190 Berend Sliedrecht: a it on our roadmap in the back of our mind. like, as long as core 615 01:11:00.250 --> 01:11:09.399 Berend Sliedrecht: remains a platform agnostic. we can create modules for everything that we need, and then we can slowly move to a 616 01:11:09.520 --> 01:11:21.280 Berend Sliedrecht: first, a demo environment for A of J, where you can just have a local credential, and you can just be a holder in the browser and afterwards we can move into more serious actual production 617 01:11:21.360 --> 01:11:32.780 Berend Sliedrecht: implementations, for example, with or with decentralized web notes which would be a great thing to add to Aj sports secure storage 618 01:11:32.900 --> 01:11:33.740 Berend Sliedrecht: like that. 619 01:11:34.240 --> 01:11:36.260 Berend Sliedrecht: Oh. 620 01:11:37.500 --> 01:11:43.580 Berend Sliedrecht: so a Ofj also really aims to support 621 01:11:43.630 --> 01:11:55.769 Berend Sliedrecht: at least the required fields of the architecture. Reference framework which is the European documents that we mentioned before. we are relatively or relatively far with that. 622 01:11:55.790 --> 01:12:11.119 Berend Sliedrecht: we have quite some, some basic setup for that. So you know. Sorry to also, if you always need storage But there are. still some items that we miss. So, for example, the first one is Jwt. Credentials with select disclosure. 623 01:12:11.180 --> 01:12:21.550 Berend Sliedrecht: this is something that's Karim and I actually have been working on for a bit to add it to Aj so this is something that might already be there in the 0 4. One release. 624 01:12:21.690 --> 01:12:30.430 Berend Sliedrecht: then there is iso 183 team which is the Mdl and the Mso. Object 625 01:12:30.470 --> 01:12:44.790 Berend Sliedrecht: group of specifications this is mainly required for the proximity flow. So share your credentials over Nc. And Bluetooth. this is something we would love to add to. Fj. but it's just not something that we have 626 01:12:44.930 --> 01:12:48.069 Berend Sliedrecht: a lot of experience in. So we're 627 01:12:48.570 --> 01:12:55.730 Berend Sliedrecht: sort of waiting for a a typescript implementation for this that we can reuse in our framework. 628 01:12:55.790 --> 01:12:59.220 Berend Sliedrecht: and parties are working on that. So 629 01:12:59.270 --> 01:13:03.139 Berend Sliedrecht: we would love to have this before a 0 5 0 release 630 01:13:04.140 --> 01:13:18.330 Berend Sliedrecht: and to be more compliant we would also need to support basically all the open already for PC, protocols So my issue in some presentation the demo that I just showed you with the wallets. That's 631 01:13:18.470 --> 01:13:21.930 Berend Sliedrecht: Have all those items, but they are 632 01:13:22.060 --> 01:13:29.609 Berend Sliedrecht: right now. They're not inside of J yet, mainly because we we had to do it a bit quicker, and we didn't want to. 633 01:13:29.760 --> 01:13:41.439 Berend Sliedrecht: Now think about all the architectural things that we're doing for this project. but they will be back boarded into a of to fully support the open and D for Vc. Stack 634 01:13:41.560 --> 01:13:46.520 Berend Sliedrecht: which is a very nice thing to my option we add to your agent. 635 01:13:46.740 --> 01:13:49.670 Berend Sliedrecht: and the last item is the 636 01:13:49.680 --> 01:14:03.910 Berend Sliedrecht: A Rf. Mentions I think it's required that all wallets that are compliance need a secure enclave for hardware support or hardware security module, or I think, Andro, it's called. It's shared. 637 01:14:04.140 --> 01:14:06.980 Berend Sliedrecht: Sure it's secure storage or something. I I forgot. 638 01:14:07.240 --> 01:14:20.900 Berend Sliedrecht: But you basically need hardware bounce crypto which is extremely interesting, and some like something we definitely also would like to add, we don't have a a clear 639 01:14:21.000 --> 01:14:27.059 Berend Sliedrecht: way to do this yet, but it's it's definitely something we're looking forward to 640 01:14:27.160 --> 01:14:31.670 Berend Sliedrecht: for other parties to help us with or for for us to implement 641 01:14:31.820 --> 01:14:45.850 Berend Sliedrecht: and also like even with, outside of the Erf, this is just a massive benefits. to storage. If you don't have to deal with exposing your your keys in memory and being vulnerable to all kinds of attacks. With that 642 01:14:48.880 --> 01:14:58.849 Karim: I think maybe cream is something to add this, no, no, I wants to add, like we are pretty pretty far in date, like a demo. The demo and Baron 643 01:14:58.860 --> 01:15:02.200 Karim: previously, Demo, that we gave 644 01:15:02.550 --> 01:15:21.210 Karim: shows that not only the open id for verifiable credential issuance that is currently included in the 0 for 0 release as well, but The the verification protocols are not yet, but as as they're in showed you. 645 01:15:21.480 --> 01:15:42.559 Karim: They're well in the demo it works. So there is ongoing work into doing for implementing that as well as Sd jobs, or, well, the Sdjwt format we've been working on that. And and indeed, we think that that will be 646 01:15:42.900 --> 01:15:50.250 Karim: yeah, that will both be added to, probably the the the 0 4 one release already. 647 01:15:51.550 --> 01:15:52.360 Karim: Yes. 648 01:15:55.260 --> 01:15:58.679 Berend Sliedrecht: yeah. So one other thing. 649 01:15:58.730 --> 01:16:03.620 Berend Sliedrecht: what we what we found out when you remove everything from the core 650 01:16:03.670 --> 01:16:08.109 Berend Sliedrecht: is that setting up. Your agent becomes quite a a big chore. 651 01:16:08.470 --> 01:16:18.460 Berend Sliedrecht: we first we. We just provide some configuration and some no, for a specific dependencies. And now you have to provide all these modules, and you have to know which one you want to use. And 652 01:16:18.750 --> 01:16:24.690 Berend Sliedrecht: it it it can get quite complex. And we've definitely seen. Some get up issues from that already. 653 01:16:24.790 --> 01:16:37.609 Berend Sliedrecht: so this is something that we we know is is a problem, and that we are working on. some of them work with includes reworking the wall at the bits. I think this is mainly about separating the crypto from the 654 01:16:37.630 --> 01:16:43.299 Berend Sliedrecht: storage but Ariel might be able to fill in in the end. If I missed something. 655 01:16:43.430 --> 01:16:56.669 Berend Sliedrecht: we we also would like to make the core a lot smaller right now, there is still a lot of items in the core. Very become specific 656 01:16:57.010 --> 01:17:06.990 Berend Sliedrecht: and just some things that we would like the user to be able to provide instead of the core, providing it to you. And multiple use cases need everything. And we want. 657 01:17:07.590 --> 01:17:17.329 Berend Sliedrecht: especially when working with like native libraries. We want to have to be as small as possible. and not everyone needs a in the Vdr. Or not. Everyone needs 658 01:17:19.600 --> 01:17:26.520 Berend Sliedrecht: for storage. When Oscar, or your own implementation of react native, and then also suffices. 659 01:17:26.800 --> 01:17:36.440 Berend Sliedrecht: so making the core smaller would make the app my, in our opinion, a little better. because that makes it smaller. 660 01:17:36.710 --> 01:17:39.390 Berend Sliedrecht: and the last point, which is 661 01:17:39.580 --> 01:17:41.979 Berend Sliedrecht: something that I think 662 01:17:42.070 --> 01:17:45.409 Berend Sliedrecht: is, is very important to making Aj a little more 663 01:17:45.720 --> 01:18:04.610 Berend Sliedrecht: starter and beginner friendly for people that just just go into the space is to create pre-configured agents configurations, which is a my, a nice sentence. so basically, here, we would say, like, Okay, if we common use case, is this config to anocrats in Vdr and 665 01:18:08.020 --> 01:18:12.409 Berend Sliedrecht: yeah, maybe some configuration for your connections. We're in a mediator or something. 666 01:18:12.520 --> 01:18:20.860 Berend Sliedrecht: so we can create packages that would just contain that. And then you could plug it in. And then your agent set up would be back to just one line of code. 667 01:18:21.040 --> 01:18:28.509 Berend Sliedrecht: for example, also think of like an arf agents that would be compliance. So you just imports 668 01:18:28.550 --> 01:18:34.050 Berend Sliedrecht: one line, and the agent that you're using is fully a a of compliance, or 669 01:18:34.140 --> 01:18:41.619 Berend Sliedrecht: whatever interrupt profile it'd be defined. So an Aip. One agent may or B 2 agents something that we could have. 670 01:18:42.290 --> 01:18:44.750 Karim: Yup. 671 01:18:44.900 --> 01:18:49.769 Ariel Gentile: yeah. And also the did come support you. Can we can also 672 01:18:52.910 --> 01:18:58.630 Ariel Gentile: to the agent at the moment. I don't know if I think nobody asked about it. 673 01:18:58.700 --> 01:19:08.309 Ariel Gentile: We are also pretty close to support, else did come with you in in A of this is one of our priorities for the for the next major release. 674 01:19:09.230 --> 01:19:15.930 Ariel Gentile: So the idea is that we will support both. It come v. One and v. 2, initially, by using as far as I can 675 01:19:16.070 --> 01:19:16.869 for that. 676 01:19:21.290 --> 01:19:26.540 Karim: All right. Well, this was A brief overview of 677 01:19:26.690 --> 01:19:46.870 Karim: Well. Was it brief? No, it was. It was not brief at all. It was 80 min. This was an 80 min overview of the 0 4 0 release. there are a lot of questions in chat. Some have been answered, some haven't. So The rest of the time is really up to up for questions. So John, I don't know if you want to. 678 01:19:47.160 --> 01:19:52.219 Karim: I'm happy to. We've been 679 01:19:52.510 --> 01:20:05.319 Sean Bohan (Hyperledger): as as the presenters, you kareem Ariel and Baron have been fantastic about answering questions in progress, so we can probably get it some more questions now. Denver, I did want to make a point. You just asked 680 01:20:05.490 --> 01:20:33.649 Sean Bohan (Hyperledger): about the meetings. So those are community calls every Thursday. They're not like a a presentation like what the team put on today. But also we have the asynchronous discussions that happen in discord. We have other workshops, and I'm gonna put a link to that right now in chat workshops for an on cred Steven Koran, who was on the call a few minutes ago. He's gone now. Stephen Crand did a fantastic workshop on a, on a, on on credits. 681 01:20:33.650 --> 01:20:46.089 Sean Bohan (Hyperledger): and we have some previous workshops on Indian areas that are hands on Jorge asked. Well, Afj. Support, adding new Didcom protocols once did come. V. 2. Support is added. 682 01:20:46.460 --> 01:21:03.530 Karim: yes, definitely so. I mean, it is right. Now. That is also possible. Right? So I mean, we have. a did call me. A current is currently still part of the the core. So you can see that as 2 or yeah, it has 2, I guess. Different 683 01:21:03.720 --> 01:21:12.650 Karim: facets. You have the actual bitcom port of logic right? And then you have protocols that are built on top of that and let me quickly 684 01:21:12.870 --> 01:21:14.910 Karim: find how to go back. 685 01:21:15.170 --> 01:21:19.649 All these slides. Is that easily done? Yeah, I think here. 686 01:21:20.070 --> 01:21:21.840 Karim: so as you can see here. 687 01:21:22.320 --> 01:21:42.309 Karim: some and I think that is the plan to do In the end we will in the in the coming months is for instance, these here, these to the action menu and the question and answer protocols. Those are both daycom protocols. They are to find a separate module 688 01:21:42.320 --> 01:21:58.950 Karim: because you don't like it is not every, not everyone needs those right? not. Everyone needs sitcom as a whole, especially now with with the introduction of of open id for vci and well open id for verify the credentials as a whole. 689 01:21:58.960 --> 01:22:08.520 Karim: you might not want to include it. So the plan is to move, they come out out of the core as well. So it is basically an optional dependency. You can include or not. 690 01:22:08.640 --> 01:22:14.960 Karim: And then with a separate difficult module, you'd be able to define other 691 01:22:14.980 --> 01:22:21.950 Karim: yeah. Other modules. that basically extend the or or build on top of that they've gone module. Yeah. 692 01:22:22.470 --> 01:22:23.870 Karim: so definitely 693 01:22:24.080 --> 01:22:36.300 Sean Bohan (Hyperledger): cool and and did come as the reason why I got involved in the centralized identity to begin with. So I. All I want to do is make is never have to use Linkedin again. Thanks to come. 694 01:22:36.320 --> 01:22:47.210 Sean Bohan (Hyperledger): someone just does a non-cred package support any myst approved crypto. this is an Afj call, and Steven has left. Can anybody answer that question? 695 01:22:47.970 --> 01:22:50.090 Berend Sliedrecht: so 696 01:22:50.400 --> 01:22:53.820 Berend Sliedrecht: I think this. The very short answer is, no 697 01:22:53.960 --> 01:23:05.389 Berend Sliedrecht: we use Rsa by sal signatures. I I think Stephen or Mike, probably, or Andrew can give it way. Better answer on this. 698 01:23:05.490 --> 01:23:13.159 Berend Sliedrecht: But yeah. The answer is, no, I think there are looking for at v, 2 for the Us. Signatures 699 01:23:13.280 --> 01:23:16.919 Berend Sliedrecht: which might be the S. 2, 5, 6 based. But 700 01:23:17.060 --> 01:23:29.080 Berend Sliedrecht: I'm making a very big assumption there. I haven't looked at the specification for that. but I I do know that that V 2 is looking to to broaden their crypto suite. 701 01:23:29.850 --> 01:23:34.650 Sean Bohan (Hyperledger): Cool? Viet asked. Can we revoke credentials? 702 01:23:36.080 --> 01:23:36.980 Karim: Yes. 703 01:23:37.050 --> 01:24:06.599 Karim: I think to that question was actually answered a few times. Yeah. So for for unknown credit. So this through in a sense that I think we can, we're still working on the issue in size of of that, but at least you can So so no, I would say, because the issue is the one that revokes. Yeah, that's that's not yet supportive. But you can. You can prove that that your credential hasn't been revoked yet as a holder 704 01:24:06.950 --> 01:24:31.109 Karim: for because replicate, I mean, they have different flavors, if you will, of revocation. So for for W to c you. You also have, like the status this 2020 1, 2. I don't remember. that is not yet supported so, but that will The Vpr. Is almost almost finished 705 01:24:31.410 --> 01:24:38.889 Ariel Gentile: supporting that. So at least an initial support. I think we will be will be there 706 01:24:39.220 --> 01:24:41.230 Ariel Gentile: very soon in a few weeks or so. 707 01:24:41.870 --> 01:24:49.970 Ariel Gentile: I guess, when, when with him, or when he comes back from from his vacations. Then everything will be done. 708 01:24:51.000 --> 01:24:56.330 Sean Bohan (Hyperledger): I'm going to tell you what you said that will do a non-creds have 709 01:24:56.450 --> 01:25:00.170 Sean Bohan (Hyperledger): any way to add NIST, approved key types. 710 01:25:02.090 --> 01:25:05.209 Berend Sliedrecht: I think that's the same question, right or 711 01:25:05.350 --> 01:25:11.879 Sean Bohan (Hyperledger): well, one was the last one was about revocation. But this is about NIST, approved key types, and that is Aj. Had asked them 712 01:25:12.230 --> 01:25:13.600 Karim: the one before that. 713 01:25:14.100 --> 01:25:15.460 Sean Bohan (Hyperledger): Oh, maybe 714 01:25:16.010 --> 01:25:27.270 Sean Bohan (Hyperledger): I think there was one about me. I'm going in reverse, and I'm I'm getting lost. Okay, cool. Was there any? Was there any consideration to use the Phyto standard to store and manage keys on a mobile device. 715 01:25:28.200 --> 01:25:45.970 Karim: not that I know of. I am personally also not too familiar. I've looked through into it a while ago, years ago. but no, not that I know of. But I maybe someone else, can come into this because I'm not at every working group but 716 01:25:46.410 --> 01:25:50.190 Karim: anybody want to come out of that one. 717 01:25:51.320 --> 01:26:05.490 Berend Sliedrecht: I think if you really want a the correct answer for that. I think, and opening an issue as as far would be the best because basically, if if escorted them, then we support it. 718 01:26:05.610 --> 01:26:08.220 Berend Sliedrecht: but I'm I'm also 100% sure 719 01:26:08.650 --> 01:26:37.780 Sean Bohan (Hyperledger): no worries Nile just asked, following up on an earlier thread. So the non credits an Ndvdr. Modules aren't necessary in in Dsdk, for example. And then I'm sorry I just notice, Ariel replied, all right. And then there's a a Github link. Okay? in Denver asked in terms of setup. There are quite a number of issues for yarn install on windows for node version 16 and 18 are those being recognized as it affecting anyone else in terms of the demo running? 720 01:26:38.240 --> 01:26:40.409 Sean Bohan (Hyperledger): Oh, that's answered. 721 01:26:40.510 --> 01:26:47.319 Ariel Gentile: yeah, but that's something that maybe it's important to to clarify for, because there there was a 722 01:26:47.600 --> 01:26:58.050 Ariel Gentile: that there were lots of questions about that in a few in the last few months is that we do have in in the in the N serious environment, we do have some problems. 723 01:26:58.510 --> 01:27:01.029 Ariel Gentile: We a note 724 01:27:01.190 --> 01:27:03.480 Ariel Gentile: versions below. 725 01:27:03.940 --> 01:27:14.580 Ariel Gentile: I think so. We we support, we. We will say that we support note, I think, on words. So because there is a an issue on the 726 01:27:14.850 --> 01:27:19.230 Ariel Gentile: on the We on on the initial script, rappers that prevents 727 01:27:19.380 --> 01:27:25.049 Ariel Gentile: the shared components to work with the performance, they should. So 728 01:27:25.820 --> 01:27:35.429 Ariel Gentile: if, to make it short, you will need to use. Note 18. To to properly use a F, she on and notes say, yes. 729 01:27:35.760 --> 01:27:42.979 Sean Bohan (Hyperledger): Okay. Can you explain a bit about unrevealed attribute support in 0 point 4. 730 01:27:44.320 --> 01:27:52.569 Karim: So, yeah, I I read that question. I do not completely understand it. I guess this is anything too sorry 731 01:27:53.080 --> 01:28:01.670 Karim: you to to select the disclosure. But I'm going to pass this to Baron, because he just nodded me that he knows how to have 732 01:28:02.120 --> 01:28:08.620 Berend Sliedrecht: Yeah. So I I yeah, I assume it's about a sex disclosure and and secret piece. 733 01:28:08.650 --> 01:28:17.809 Berend Sliedrecht: so nothing really changed. between 0 3 0 and 0 4 0 we still support all the autocrats 0 knowledge proof 734 01:28:18.350 --> 01:28:30.559 Berend Sliedrecht: way. So we predicates selective disclosure. All of that is still in there. for Jason, Ld. Issuance or verification. I think we 735 01:28:30.700 --> 01:28:34.810 Berend Sliedrecht: don't yet, but that's mainly because of presentation 736 01:28:35.190 --> 01:28:46.589 Berend Sliedrecht: present proof you to support. but we do support the underlying crypto to to selectively disclosure with, Jason, I'll be that's what it's called 737 01:28:46.980 --> 01:28:58.360 Berend Sliedrecht: any plan to support a dinner on time. I'm sorry, John. I I I saw your role. Oh, take it, go. yeah, I 738 01:28:58.650 --> 01:29:04.590 Berend Sliedrecht: at at 1 point I tried to create a then I wrapper forward in the SDK, 739 01:29:04.720 --> 01:29:07.929 Berend Sliedrecht: which was sort of working. But then I 740 01:29:08.580 --> 01:29:12.360 Berend Sliedrecht: we all move to the shared component. So I I I left it work. 741 01:29:12.470 --> 01:29:29.410 Berend Sliedrecht: I think it's definitely Google that then I provides a if I interface by by default or a way to do that and notes doesn't really So I think that would definitely be something cool. And also, yeah, definitely, something we're open for for contributions. 742 01:29:29.570 --> 01:29:37.510 Berend Sliedrecht: I think we can get some pointers and it would just be like S. Car and the E. Vdr. And autocrats. yeah. 743 01:29:37.760 --> 01:29:56.670 Sean Bohan (Hyperledger): back to you, Shawn, and if you'd like to contribute, please check out the Aries Javascript channel on discord, and the meeting that the area Javascript community has every Thursday. I'm gonna repost the link for this session in a second. Just so. Everybody's got it. 744 01:29:58.150 --> 01:30:00.180 Karim: dumb one. S. 745 01:30:00.940 --> 01:30:03.830 Ariel Gentile: Our father. Yeah, cool. 746 01:30:04.110 --> 01:30:16.860 Sean Bohan (Hyperledger): You're you're you're ruining the presentation now. no question. I have a question from Denver from earlier. 747 01:30:16.880 --> 01:30:21.769 Sean Bohan (Hyperledger): what? Nope! Somebody just answered that 748 01:30:21.840 --> 01:30:30.150 Sean Bohan (Hyperledger): Will it be as the last open question that I can find? Will it be possible to have more frequent meetups? Nope, yep, we are, every week she meets 749 01:30:30.210 --> 01:30:42.539 Sean Bohan (Hyperledger): and and that it's it's less of like a a a demonstration in a presentation like today, Denver. But it it's the the team is definitely meeting, and they're always having a conversations on discord. 750 01:30:42.790 --> 01:30:54.840 Karim: And we are also to just jump in. We are also like the the new features are being demoed there, right? So if someone worked on on on a Pr, or something that gets in. Then they demo it. 751 01:30:55.320 --> 01:30:56.130 Karim: Yeah. 752 01:30:57.030 --> 01:31:06.830 Sean Bohan (Hyperledger): I'm I'm out of old questions. Or so I've been basically, if a question has been answered in in the chat. I'm I'm not announcing it again. 753 01:31:08.670 --> 01:31:19.120 Ariel Gentile: that's it. Anybody else have a a about the if we said that just to migrate from 754 01:31:19.920 --> 01:31:25.209 Ariel Gentile: we didn't need any SDK to 0 for 0 within the SDK, or go directly 755 01:31:25.670 --> 01:31:29.720 Ariel Gentile: through through the the shared components. 756 01:31:30.900 --> 01:31:33.050 Ariel Gentile: I was just to move 757 01:31:33.460 --> 01:31:35.670 Ariel Gentile: directly to the, to the 758 01:31:35.720 --> 01:31:43.540 Ariel Gentile: shared components. I don't know what the other guys say about that. But but can you? Because because because I think the question was about script scripts or not. 759 01:31:43.790 --> 01:31:59.240 Ariel Gentile: Yes, if it did in in the yeah, that yeah, if you, if you are using the the, the dimension works only, for on the mobile side, right on sqlite. 760 01:31:59.950 --> 01:32:08.009 Berend Sliedrecht: yeah. So it's only mobile so specifically for the Ines to get to escar. it's only mobile sequel light. 761 01:32:08.200 --> 01:32:27.210 Berend Sliedrecht: so only mobile ish. we also have support for for mediators. because basically, we currently don't support migrating the schema and the credential definition. So a holder or mediator would be perfectly fine to migrate with that 762 01:32:27.500 --> 01:32:39.540 Berend Sliedrecht: you can directly migrate from the India. Sc. 0 3 0 to the shared components with 0 4 0 but there is a specific order in which you need to around the ascar migration script 763 01:32:39.720 --> 01:32:55.550 Berend Sliedrecht: and the Afgh storage updator which is all explained in the documentation from migrating to from 0 to 0 to 0 4 0, and also migrating from in the SDK to uscar, so the dogs will probably. 764 01:32:55.610 --> 01:32:59.690 Berend Sliedrecht: I give you a present every bit, every bit of information you need. 765 01:33:07.070 --> 01:33:12.929 Sean Bohan (Hyperledger): Are there any other questions for this team who's done such a great job with this presentation. 766 01:33:16.090 --> 01:33:25.829 Sean Bohan (Hyperledger): All right. I would like to thank everybody for joining us today, and I would really like to thank the presenters Ariel, Baron and Kareem for doing such a great job of both 767 01:33:26.000 --> 01:33:55.250 Sean Bohan (Hyperledger): going into detail on what's new in area 0 point 4 0. But also you know the how, in the why and the where, for how things work. It was really a great presentation. And thank you. As I mentioned the start, hyper Ledger is powered by the contributors and maintainers who make all these projects work. We would love your contribution. We would love you to be involved with love, you to use software check out the discord and the github and the wiki for more information. I'm going to put the links back in here again. Just a note. 768 01:33:55.860 --> 01:33:58.020 Sean Bohan (Hyperledger): When we do a workshop like this. 769 01:33:58.790 --> 01:34:11.659 Sean Bohan (Hyperledger): let me grab a copy. When we do workshop like this I generally for folks who registered. I'll send out a a thank you. Note. I'm going to put these links as well as a link to A to the Wiki 770 01:34:11.690 --> 01:34:40.469 Sean Bohan (Hyperledger): page for this workshop. In both the Youtube video as well as in the thank you. Note, in case you want to share the video or share the deck with your colleagues or coworkers or project partners, whatever you're doing. So that's gonna go out. Probably you know, Youtube's gonna encode the video over the course of a half hour. 45 min, and then, I'll hopefully be able to get that out by either end of day to day or first thing tomorrow morning. But I really like to thank everyone for attending. But most importantly, thank you. Cream. Thank you, Baron. Thank you, Ariel for doing such a great job. 771 01:34:40.690 --> 01:34:45.679 Karim: Thank you, Shawn, and and thanks everyone for coming as well. 772 01:34:46.680 --> 01:34:47.930 Karim: Have a great day. 773 01:34:48.130 --> 01:34:49.580 Sean Bohan (Hyperledger): Have a great day. Everybody.