 I'd like to welcome everybody to the Morgan State Workshop on Technical Overview of Decentralized Identity, featuring Sam Curran from NDCO. My name is Sean Bohan. I work at Hyperledger. We're part of the Linux Foundation. And we're going to let Tanisha kick it off in one second, but I did want to go through our anti-trust policy. The Linux Foundation is a global nonprofit for open source. We host Linux, we host Hyperledger projects, we host Kubernetes and lots of other projects. If you have any questions about the anti-trust policy, please contact company council or if you remember the Linux Foundation, feel free to contact Andrew Uptigrov of the firm Gesmer Uptigrov LLP, which provides legal counsel to the Linux Foundation. And also this meeting is held under the all are welcome in the Hyperledger community. These are our community standards. And we welcome everybody to this call. Tanisha, would you like to kick us off and then I will do a quick thing and then we'll turn it over to Sam. And Tanisha can unmute. Sorry, one second. Thank you, Sean. We're good now, sorry. Yes, yes, yes. I just want to welcome everyone for attending the technical overview of decentralized identity. And a special thank you to Hyperledger, Shobohan Rajones and David Boswell. We are associate members of the Hyperledger community and it has been a wonderful partnership. Thank you to our whole network for attending today. And welcome to the show. Thank you so much. And I'd like to welcome everybody once again to this technical overview of decentralized identity. As I mentioned before, Hyperledger is part of the Linux Foundation. We are working with Tanisha and the Morgan State team on a number of sessions like this around different topics. We're kicking it off with decentralized identity starting last week with the intro, and this week with the technical overview. This is not going to be a hands on workshop. This is more going to be a really high level review, but we do have lots of three and four hour workshops on our YouTube and there is an active vibrant community on our discord and within the Hyperledger community for folks who want to get involved. The last thing I want to mention is that we do have the Hyperledger mentorship program happening this year. I'm going to include the links and put them into chat in a second. But basically our mentorship program it's kind of like an internship but mentorship candidates will propose a project. If their proposal is accepted they are partnered up with a experienced senior developer or maintainer on the project that they want to work with within the Hyperledger community. And then they get to work on that project between, I believe it's going to be May through August of this year. The proposal date or the end date for proposals is March 15 so we only have about two weeks for that. I'm going to stop sharing and turn it over to Sam but welcome everybody and ladies and gentlemen this is Sam Curran. He is a maintainer he's a senior member of the Hyperledger community. He and I worked together years and years and years ago he's been around the block quite a bit. And I really want to thank him and the DCO team for stepping up and putting on this workshop for the Morgan State and the Hyperledger community and Sam it's all yours. Thanks, Sean. Glad to be here I am Sam Curran I'll be your tour guide today as we talk about decentralized identity stuff. I am very very happy to answer questions or to help explain things to to increase your understanding and learning so Sean is the is there any questions into chat is that how we're doing this. We're going to do questions today. Yeah, let's let's put let's put questions in the chat and we're going to roll this way folks we're going to let Sam do his presentation and then we're going to do q amp a towards the end. Put your questions into chat and if it can be answered in chat someone might we have some DCO folks and community members here. But for the most part if it's not answered in chat I will be playing MC later on and quizzing Sam on on the discussion we're about to have. Absolutely. Excellent. So I am I work for a company called in DCO. We help folks with decentralized identity, and in making all that have all the magic happen. I am telegram Sam on all the socials. If you would like to connect with me or ask me a question in my direct community there's a handful of hats that I wear. But the the two main ones that relate to our topic today is I'm a co-chair of two different working groups. One is the hyperledger areas working group. I'll talk about areas and a little bit and what that is. As well as the decentralized identity foundations did come working group. And so I'll I'll get into that a little bit. And I have a handful of things to show on different stuff. And so I'm not just showing slides here. And that's why you see all of my browser. As it is, but we will we'll we'll jump through and talk about the different the different stuff. One of the things that I want to mention hyperledger obviously isn't is an open source community and so are lots of the other organizations that I'll be talking about today. Lots of open source code. There's a handful of huge advantages with with open source projects. Including the fact that you get to go read the code behind the software that that you can use. It's also generally has very permissive licensing in the sense that you can use these projects to to accelerate your your own efforts or your own projects to learn. There's there's no licensing involved with with any of this. And so you can jump in with any of the things that I'm talking about today in a really nice way. In addition, not all but most of the communities that we're talking about are are relatively open to students in particular or others that want to learn for people that are independent. They would like to be involved in these organizations and so there's there's lots of ways to get involved. Hyperledger is a significant player in the decentralized identity community. There are three main projects with a with a fourth bonus one, which we have, which is new this year. And so we're going to talk about hyperledger areas hyperledger indie hyperledger Ursa and the new hyperledger on non creds and the the types of things that each of these provide and what they give to us with with a brief high level overview provided by Scott that I think was last week. My goal is to sort of fill in and talk about some of the some of the projects that that that fill in the underpinnings of all the things that he was talking about. And so that's that's what I'm going to cover a little bit today. We will there's a lot of links on these slides. You don't have to rapidly try and type them before I change a slide we'll go ahead and share these so that you can just click on the links on the slides instead of instead of trying to do that. You can also generally Google these things with the words you see on the slides real quick and find the same information so it's generally not super hard to discover. So, here's the logos of these projects that I was talking about. Here's some links and I'll talk about what each of these things do areas is a project that is focused on what we call identity agents. So these are pieces of software that allow or assist users or organizations and involving all of things related to decentralized identity is specifically that it's their responsibility to do all the stuff that doesn't happen on a ledger. And that turns out to be most of what happens in decentralized identity is not on a ledger, but we do need a few things on a ledger and there's useful things for that and that's where the hyper ledger Indy project comes in. Indy was was the first and still the only purely identity focused ledger that we have in the world and and it does an excellent job with that. Indy is very focused on identity. Avoid some of the complications that that arise with, for example, ledgers that have that have a transaction costs for, for writing individual transactions or, or the lack of governance that can be a problem in certain ecosystems, those sorts of things are well solved by Indy. ERSA is a cryptography library that was also born out of these projects, but can be used independently, and has a lot of the cryptographic libraries and the primitives inside it that that are relied on in the in the other projects. It's a generally a bad idea to attempt to roll your own cryptography. It's really easy to make mistakes. And so whenever possible, you want to use a library to help you do that and ERSA is an excellent one for that. A new and on creds project is also born out of out of the ecosystem and but but but moving beyond that a non creds is the is the gold standard in privacy preserving credentials. There's lots of credential technologies that exist in a non creds is one that is in deployment and has has a handful of privacy preserving features that are gradually being worked towards with other technologies but they're not there yet. So a non creds is a great project to help folks understand that there's a there's an effort underway to define the next version of a non creds and the types of features that it will include and there's there's active conversations going on in those in those areas. So these are the the hyper ledger specific identity projects now I happen to be involved a lot in areas and so you get to hear a little bit more about areas. There are a handful of code bases within areas to to help you build identity agents or software. There's lots of names that we use a wallet is one of them or agent is another one that that that describes the roles that this software plays. And here's a handful not all of them but the but some main projects inside of the the areas ecosystem. The areas areas is large we have we have about five or six weekly or bi weekly calls on various topics or various projects including there's a weekly sort of main areas community call on Wednesdays. That kind of summarizes and it's kind of a central meeting place for everything, but but all the lots of role work happens and all of those other calls it as it as it works together. So, question from the chat indie is is a blockchain itself, it is a it is a blockchain ledger. And so it anchors specific assets to them. I'll talk in a minute. I don't have a good visual for this but I'll talk in a minute about the role that the ledger actually plays and how that actually makes it work, but we will, I'll get there in just a second. So, in hyper ledger areas. There, there's a handful of code bases, the three main ones that that are very active are areas cloud agent Python, and areas framework JavaScript are to code bases that can be that can help you write software that issues and verifies and holds credentials. The AFJ areas framework JavaScript is actually the underpinnings of the by fold mobile wallet. And the, and so it's built on top of that the by fold mobile wallet is a react native based project that can be built for both iOS and Android. That allows you to use those those features in AFJ to produce a mobile experience for for people to to be involved in the ecosystem. And then ask our is an important piece you never see, but it's a secure storage that lives underneath these projects and provides key management and ties in with the cryptography and the other necessary things as it happens. Aries as a project was born out of Indie, but was but but but was spun out specifically to serve more than just Indie. And so there are other ledgers and did methods and credential types that didn't originate with Indie within Indie are within the scope of Aries. And so it can be used with other ledgers, any Indie ledger, but also other ledgers, other did methods and other credential types. And, and there are growing support as as the community builds those into these these code bases to support lots of different types of these things. So that's what areas is I spent a lot of time with Aries. It has a lot of success and deployments and interoperability between projects, which is pretty fantastic. And one of the, I'll talk a minute about a did come, which is another technology that was that was spun out of Aries, but not into a hyper ledger project and then landed over the decentralized identity foundation. So some applause is due hyper ledger here for the for the good support of these projects and helping us to to be engaged in this work and supporting our efforts, they have been excellent hosts for this work. They are not the only organization that exists in this ecosystem and so I want to highlight a few of the other organizations and what they're involved with and and how they're and what they contribute. The decentralized identity foundation or the diff was has been around for years and and supports a number of efforts, including a lot of work with with claims and credentials and identifiers and discovery. There's not listed here is a is a newer effort around around trust establishment or trust registries and including efforts to to combine that work with an effort, a similar effort from the trust over IP foundation. So the did come working group is one of the groups that I'm a chair of over at the diff and did come is a is a secure way of communicating between two parties that have dids. And so it allows for awesome does a nice dump of links there in the chat the the did come provides a really useful feature that helps tie together communities. I'll talk about this in a minute and and we can discuss that. How does this fall into end product while there would be a is to what are your thoughts for open wallet? That's a good question. And I think I may actually not have a slide for open wallet here because they're they're relatively new in the sense that they were organized earlier this week formally. And so, and so that's a those are very relevant questions so I will talk to that but I don't have a slide specifically prepared for the open wallet foundation. So the decentralized identity foundation supports lots of working groups and lots of lots of things that are happening here. And they're an important player in the ecosystem. They have some of their groups are IPR protected, which means that you can you can only contribute to those groups if you are a member and you sign the right. And you sign the right agreements so that there are no intellectual property challenges with the with the work that goes on at the diff. There are other groups that are that are open and free to attend, because they lack the same focus and therefore that don't have the same IPR requirements. Another group that's actively involved is trust over IP they were involved with with a project called good health pass. They're also well known for a layer model that they have produced a four layer model that that's quite useful. And then they have also work in governance and that relates to the trust establishment trust registry work that I spoke of earlier, which addresses the issue of which of which issuers you should trust for which credentials as expressed by existing authorities. And so that's a that's a useful piece there as well. We also have the W3C community credential group. They are the the originating body of the did core spec, which of course we rely on and as well as the W3 credential format, which is the sort of a focal point for the development of credential technologies. There's a new 2.0 effort underway as well for the W3C credentials. And that's an ongoing discussion. It's the, I get this question a lot people say is an on creds compliant with the with the W3C, the W3C credential data format. The answer is mostly and the reason for that answer is that the non creds effort or the use of an on creds existed prior to the standardization of that spec. And so the 2.0 effort that's underway in a non creds now will definitely include alignment with the credential format moving forward. And so the missing slide that I don't have us for the open wall foundation and that's a really good question. The open wall foundation is the newest organization to arrive on the scene. And they are also under the Linux foundation, which is helpful. Lots of these organizations, not all of them, but lots of them are under the Linux foundation umbrella. And the open wallet effort is designed to create and promote open source code bases around wallets that would also qualify under areas of what we call an agent. And, and then, and those concerns, what you think goes into wallet primarily depends on what where you came from. So if you came from a cryptocurrency perspective, a wallet is where you store the keys and related to in the data surrounding cryptocurrency from an identity perspective. You generally store keys that relate to identifiers such as dids and the verifiable credentials that you have either been issued that you have verified from others or that you are holding yourself as the subject of those credentials. It also gets into things like like payment. For example, wallets on mobile devices often hold information about credit cards to be used at payment terminals. And the interactions and protocols surrounding those as well as things like keys. So opening up your car with a credential that you hold or opening a door locker or things like that. Also heavily relate there. And so there's a lot that can go into a wallet. That's a that's a long and sort of open conversation about what the scope ought to be. The open wall foundation has been talked with a lot. But, but it has just been formally organized, I believe on Tuesday. If someone has a better date for that, please correct me, but it's been very recent in the sense that there's been lots of efforts to organize it and lots of fanfare, if you will. But because the organization has only briefly or recently popped into existence. The discussions that we've been able to have sort of under the future envelope, if you will, of the open wall foundation have been largely theoretical, because we haven't been able to actually perform anything as an organization yet. And so, the question was asked was asked, how does the open wall foundation relate to areas and what happens to areas. Now that we have the open wall foundation. That is a very large open question. Last week, I gave a presentation to the sort of the pending or early formed. The open wall foundation architecture task force outlining the what areas has the things that we've learned the various projects in it. And, and that question was also asked there is the question on everyone's mind. And there isn't a clear answer yet. The air is effort has been going for years and lots of progress has been made there. There are certainly opportunities for areas to use output or projects created by the open wall foundation. It's also possible that the community might decide to transfer or to shift elements of areas over to the open wall foundation. All of those things are potential. And there have been no formal proposals made there. There have been formal proposals made to transfer some libraries that support did come V2 developed in the decentralized identity foundation. Over to the open wall foundation as part of a an initial step forward that that is a little bit of a sister project to two areas. And so it doesn't relate to it directly. But, but it is an indication that there is interest in being involved. It's when new organizations arrive on the scene. There's a little bit of. There's a little bit of sort of figuring out how organizations work together and what types of things each of them will cover. And that has certainly not yet been completed with the open wall foundation, but, but there's there's leaders in all those organizations talking together to sort of sort some of those things out. And so, and so that's an important bit there. Angela Maria asked, do areas cloud agent and areas from JavaScript serve the same purpose. Just the languages are different or they something entirely different. Thank you for a question. That's a great one. The, they are very similar in overlap areas cloud agent Python existed was one of the first larger projects within areas. And so it has some historical benefit of being around a little bit longer areas from JavaScript is a very active community that is growing. And they are entering the phase of development where they're starting to to in some ways slow down very active development as they as they reach a little bit more maturity. So, AFJ is a younger project. ACAPI is an older project. They both have very similar functions and in fact are often tested against each other for protocol compliance and compatibility. So, they're they're very similar in that nature. There's a little bit of of course deployment differences. You know, it's it's hard to use Python as an underpinning for a mobile app, but but with with frameworks like react native that is possible with JavaScript. And so it plays a different role there but they are largely very similar to each other and in the nature of the projects. There are there's another project that's built and go and a handful of other smaller ones. I just highlighted sort of the main ones here. So there's there's definitely other places to start from if you're interested or you have a preferred language. Switching out of areas just a little bit did calm itself is has lots of library support in various languages that that that helps to, you know, helps to provide the support for whatever platform you might happen to be on. Any other questions to support a VC based login to website like always see today are there existing SDKs areas from JavaScript has some initial support for open ID for VC, which is the open ID connect like protocol for for logging into existing websites. There's also developing technology within did calm that that handles similar things did calm uses a message based architecture with authenticated encryption. What that means is that if you when you in the process of sending an encrypted message to another party you're also proving your own key ownership in a way that is similar to but not exactly like signing, which allows for the other party to be sure that you own keys. And so there are some some growing opportunities with that as it relates to websites as well. But, but lots of these things are relatively new in development, sort of the most popular thing, although it's a relatively young technology is open ID for VC, which is is not it's not exactly open ID connect but was built out of the same roots. And so that is quite a popular thing for support today and I did mention that that every term of JavaScript has initial support for that. So, also what are the high level architecture of an identity wallet look like built with open source. I let me see I don't think I have slides for that but I could find one real quick there is. There's so much to pull from that I was a little unsure of what I should actually combine into into all of this. And so I do apologize for that. It's going to be slightly disheveled as I as I hunt down the right answers. Let's see, this is the presentation I believe I'm looking for. This is the presentation that we actually gave to the open wall foundation and there are some architecture slides in here that are useful. This is the architecture slide provided by areas framework JavaScript in that call. And so credit to the creators of these slides. This was Timo Glastra from animal that created this particular one. There's AFJ itself is not a full application it's not ready to ship exactly that you have to sort of build logic and other concerns on top of it. And but this is the main area of various framework JavaScript and there are modules to handle various things for different did com protocols for example they're supported you'll see the open ID for VC clients down here as another module that it contains. It handles some some transportation and messaging of that also the repository layer here they're not talking about a code repository they're talking about a VDR a verifiable data registry or often a ledger. And so and so it's responsible for communicating there as well. There's a handful of underlying libraries as well that they lean on for example there is an open ID for VC JavaScript library that they're using. Here's one for Jason LD, bbs plus signatures. Here's the areas ask our library and indy VDR, as well as on an on creds rust implementation for there, as well as the did resolver here for resolving dids to their associated documents. So here's an architecture slide for that areas ask our here they listed it by name but that's the secure storage that we think of sort of the internal wallet for the for the code base. That provides key storage and the cryptography necessary to do things like signing or encrypting messages and is involved to in the preparation of verifiable credentials. Similarly, he that's here's a very high level architecture of areas cloud agent Python. The framework itself is what ACAPI is, and that includes sort of core areas functionality, including did come protocol support. They also have an administrative API that allows you to build a controller in any language that you would like that handles the business logic pieces of running an agent. And then so, for example, the framework itself contains all of the information to issue a credential, but the information that is contained in the credential and who you ought to be issuing it to is a business logic concern that is handled within the controller that you pair up with ACAPI. And so that allows for custom business logic for your particular use case, but leaning on the functionality that exists within the ACAPI architecture as it exists. And then of course that provides nice sort of testable compatibility with other projects. And I think those are the two architecture diagrams. I have another one here but that's something entirely different that's a that's a testing piece of infrastructure that we have in the in the areas ecosystem. And so, these are probably a little bit too, too detailed, they would be useful to have a overall architecture of that. Because I'm presenting from a handful of different slide decks I can attempt to provide links, lots of these have been publicly shared already so it's possible to do so. And so I will attempt to provide all of these slides as part of the presentation here and that way they're available for review. That'd be awesome Sam thank you. Yeah, it'll be a little bit of a challenge I'm jumping around a little bit because I love questions and I really like to answer them as directly as I can so I appreciate it. This is great and we do appreciate the questions and Sam, I will take the links you provide as well as the link to a wiki page we're setting up in the hyperledger wiki. For this presentation it'll be on the hyperledger YouTube page for this video so we're going to have the links in the in the in the commentary for the video as well so folks can find it. Excellent. So another excellent question. Are there test suites we can use to test the implementation of different standards. Yes, except that it's really because the standards originated from different places in the community there's not a central place that has test suites for all the things. One of the projects that that areas has is what we call an areas agent test harness. What that does is it provides the ability to to test agents against each other. So, for example, acopi with with with areas from our JavaScript and run through scripts with with predicted outcome so that you can so that you can test and verify the expected functionality. So there's a here's a here's a description of of what the how the tests are actually kind of written to provide this, you know, to to scripts to agents. This doesn't specify which agents is which or which software they're using, which allows us to test all of these directions. And and the test results are regularly rolled up into some output that we use within the areas ecosystem to kind of see where compatibility is between various projects. And so and so there there are standards there. And yes, acopi can can interact with other ledgers. It depends on the support that's built. So if it's if it's one that doesn't already have support, then that's harder. There there is support for some ledgers, but not all of them as there's lots of ledgers. So it ends up being tied mostly to who's willing to do the work to to provide the necessary translation piece to to make that happen. Someone asked earlier I lost the question, but they asked about how this or how Indy relates to fabric. Indy, I can I'll give you some high level and then a couple of details. Indy is very identity focused and fabric is designed as a more general purpose ledger. And so Indy does not have smart contracts very deliberately fabric does. You can there are did methods that will allow you to back it with fabric. And so it's possible to use fabric as as an interaction here. One of the interesting things about identity uses of ledgers is that efforts are taken to keep as much off the ledger as possible for privacy and regulatory reasons where ledgers like fabric excel at keeping stuff on the ledger. And so it kind of depends a little bit on the exact use case. We find a lot of folks that that are using fabric but want the identity pieces actually ended up end up using both end up using fabric for the fabric pieces and Indy for the Indy pieces. They're tying them together when necessary, and that provides the ability to have kind of the right balance between the functionality and the privacy that they're looking for. Lots of fabric ledgers are internal and so it's a little bit harder to to see or to. They're not always public, which means that that it also relates in interesting ways to identity systems which is very helpful if your identity can be resolved generally speaking and not only within a private ecosystem. So another Indy question. This is really good based on the previous intro video. There are concepts of schema and definitions residing in the system. Where are the schema and definition corresponding on the system and what do they mean? How do they run? I'm going to guess at a URL and I might be wrong here. That's not it. Here we go. My second guess was correct. This is a tool called Indy scan or Indy host a version of this and this will show you what is on an Indy ledger. A schema is the list of attributes that are necessary on to create a credential. So for example, this is just very recently written. I'm just pulling one off of off of the top here. And so here is a schema that has been written. Here is the did that has written the schema and the idea of the idea of the schema or the transaction is there. And this list three different attributes, primary firewall and compress. I have no idea what this is for. I'm just reading live off of the public ledger. And so this is the attributes that are contained inside of a schema. There's also a credential definition and the credential definition links a schema to an issuer with cryptographic material. Necessary to to issue and verify the credentials. And so just looking at the top here. Let's see. There's a bunch of. So, let me see here. So this refers to a schema. This is a credential definition. This is really deep technically, but for those of you that are interested. This provides the link between the schema as provided and an individual issuer. And so here is the here's the issuer that this is being written for. And if you look at the full detail, there are the these are cryptographic keys that relate to the preparation of preparation of each individual attribute of both for an issuance and the verification of a credential. This allows for the features that non creds provides. Indie was the first ledger that provided the features necessary to run a seal signature based credential scheme that allows for these technologies. And so that allows for selective disclosure, meaning you can only disclose a few of the attributes instead of all of them. Now predicate proofs, which allows for comparisons without revealing the actual value as well as privacy preserving holder binding. And so this is the raw cryptographic material used for each of these fields as it relates to the individual issuer that we're talking about to make that happen. So, and so the credential schema includes the list of the attributes. The credential definition is a link between the particular schema and an individual issuer with the cryptographic assets necessary to make the to make the credential system work with issuance and verification. And so Indie scan is really interesting if you'd like to go see what are on the various networks and in the assets being written there. Very technical of course, but that's the underpinnings of where it all goes. So these are recorded on a ledger. And we get asked the question a lot like why do you need a ledger. The answer is is you don't technically and the in the next version of an on creds will allow you to not use Indie, but also if you as long as you provide the right features not even use a ledger at all. So what does the ledger give us and what why do we want to stick stuff on it. We, when you have things like schemas and credential definitions, it's important that those are available. They're highly available and all the software systems necessary can retrieve them. It's important that they are tamper resistant so that so that no one can go manipulate the data in a way that allows them to compromise the credentials that have been issued against it. And, and it needs to be, you need to have a way to verify that the that the information is in fact from who you think it is. And so there's a couple more reasons, but that's the that's the high level overview of what you need. So if you plan in the future to use a credential system without a ledger to to anchor these assets. It's important that you consider the needs for it to make that happen. What does each rang rectangle boxy show just mean is it a ledger or not a user in a blockchain or not. This is just a record. So in these here, this is a record written to the particular ledger we're looking at which is the Indie CO testnet. And so this is a more of a of a of a terse view of the same thing. And then this is the the actual raw ledger record itself is in the box down here below. It's quite long. You can see the cryptographic key material and the other things that are present here. The other thing that the ledgers involved in is there is the recording of what's called the revocation registry, which is a privacy preserving way of indicating which credentials have or have not been revoked. And so there's some key material here for the creation of that registry. That's a revocation is a deeper topic, but the ledger is also involved in a really useful way there. Oh, the previous page with many boxes up here. These are this is simply some of the information pulled out of the of the data here to kind of indicate what's happening. You know, for example, you have the schema ID there that is also present up here. And so that's just there. Is that the diagram you mean, or is there a different one you're you're speaking of page with the array of boxes. This one. These aren't ledgers at all. These are different agents in the particular test environments that we're that we're working on, or that you can you can test against each other so areas agents themselves can use ledgers but are not ledgers themselves and and and in our are otherwise orthogonal to the to the involvement of the in performance of their duties. So that's it's tend to be loaded by agents off of a ledger to be able to do their job, but other than that there's there's not a ton of ledger interaction directly. Good awesome questions. So, there's lots of projects I'm looking at the clock here and we have a little bit of time left. I'm happy to take some some more open questions as well at the end. Another element of open source that I wanted to talk about. I've been involved in open source and I'm lucky to be involved with a job that allows me to participate in open source and really useful ways. Sometimes people ask why do I get involved in open source communities. Why do I want to be involved. We are of course welcome to just use the assets according to the licenses that exist with an open source projects and I'm sure many of you do that if you've, if you've imported, you know, node modules or Python libraries that are often written by other other folks and and available open source and all of us do that a lot, but being involved in the efforts behind those open source projects can be really powerful and they can provide you with some additional benefits. And one here I'm not going to read everything on the slides, of course, but one of the things that helps with being involved is that you can make a project aware of your use cases that they may not have been that may not have been aware of. And so being involved there will help you to know or help them to know what types of things you're using the library for, which can help them improve the project. It also allows you to get involved with actually fixing issues or adding features to the to the projects that you're involved with. And that's really powerful and one of the best things about open source is that if there is a problem you're actually capable of fixing it, not only for yourself but contributing that back to the community. Lots of open source projects are related to relatively fast moving and recent technology. And it's more difficult to keep up without the involvement of so many people in the community to make that happen. And so the other note here is that this isn't just code developers that are necessary and open source projects. Lots of them need writers user experience folks that are that are talented with creating and crafting good user experience project manager folks that can help organize efforts and be able to kind of serve the community in that way. There's lots of different ways to be involved. So what I'm going to have I'll skip ahead a little bit rearranging my slides. I'd like to talk about how to get involved. I, you know, there's lots of links and communities in groups that we talked about here and the links that ended up in the chat. I'd like to talk about how to be involved in these working groups. And so I have some tips here about about how when you connect with a project to be able to get involved and these are going to be a little generic because there's differences, even with the communities that we have referred to here. I don't know exactly how they work, but this will help you understand the basics of what's of what's going on. And, and so these are general general things that can apply as you're reaching out or trying to be involved with the group. The first thing you want to try and figure out is how the group communicates. Is it a mailing list. Is it a working group call, or do they have a slack or rocket chat is a less popular but but discord is becoming much more popular differently with with all of these things. And, and so often they'll have servers that you can join or you know channels that you can ask and so understanding how the working group communicates is effective. Sometimes there is an email list but it's not very popular and more happens elsewhere. So as you look in and try to find these things and looking around will help you you understand that a little bit better. There's often calls. These are can be weekly or biweekly or monthly. And, and the calls are a great time to, to, to discuss things in a more rapid fashion. Most calls have both an antitrust policy and a code of conduct. The antitrust policy exists for a reason and it helps to keep the, the business elements, the direct business elements out of those calls in a way that prevents any accusation or, or, or legal action because of, of, you know, companies trying to, you know, create a monopoly or to, or to organize pricing in such a way that is that is not conducive with with with a healthy market. And so those are there are rules about what you can and can't talk about, but, but generally things like pricing or business deals should be should be handled outside of the call. Of course, you can reach out to community members or people that you meet in a call, but those discussions should not happen there. The other element is a code of conduct and this helps us be excellent to each other and to, and to help resolve conflicts when they do occur within communities. There's often lots of different personality types, lots of different cultures. Lots of different backgrounds of folks that are involved in the, in the code of conduct for those organizations can can help sort some of those issues out and can provide methods to be able to resolve any conflicts that do exist. Hyperledger, for example, has a code of conduct that applies to all of their calls. You heard Sean refer to that in the beginning of this call. And, and, and that's, that's true of all the, all of those calls. And so it's useful to be aware of those. Generally, if you avoid business deals and you be kind to each other, then, then you won't have an issue with that. Falling foul of that. If there is another member of the call that is, that is being, that is in violation of either of these two things, then reaching out to community leaders and seeking help is the easiest and the fastest way to help resolve those issues. They have, they have training and experience in dealing with those sorts of things. Luckily, at least in the calls that I frequent, these are very uncommon issues. There's a very occasionally something, but, but it's not something that we deal with all the time. We really do have excellent, excellent community. Most groups have a meeting agenda where they'll talk about, you know, they'll, they'll outline what they're going to talk about in a call. Those are often published ahead of time. Topics are almost always welcome. If there is a related topic that you would like to present to a working group about. Talking with whoever organizes the community and suggesting a topic and being willing to present on something as useful. And, and so that they definitely love involvement and would love for you to be involved. Different calls have different ways of interaction. Sometimes, you know, particularly on smaller calls, folks will just sort of unmute and talk with each other in larger calls. There's often more formal mechanisms to sort of ask or, you know, raise your hand. Sometimes the, like a zoom raise hand feature can be used. Sometimes there's a formal queue maintained in the chat where you use sort of commands like q plus or q minus to add yourself or remove yourself to the queue. And, and so that's, that's definitely possible. Chat is almost always active and it's a great way to comment or ask questions. And without disrupting the main flow of the meeting and lots of folks tend to respond in the chat in these, in these, you know, community calls to be able to help that and make that available. There's usually a calendar of meetings or other types of events and they're generally run by the organization. So hyper ledger has a, has a calendar that lists all the different calls that they have. And so that you can help find the right meeting within their, their overall organization calendar. Those are really useful. They're usually linked to in whatever repository or wiki they're often can be found on the agenda for what you're, what you're talking to. So look for a calendar. If you would like to be regularly involved in those meetings and that way you can be aware of when they are or if the time shifts or something like that. Calendaring of course is a technology that's far from perfect. And so that doesn't always work out well. You also want to be mindful of the time zone that the, that the call might be anchored in that that comes into specific focus around daylight savings time changes. Which happen on in the northern and the southern hemispheres and opposite directions and at different times. And so that's a little bit challenging. Calendaring software like Google counter does a pretty good job with this, but it's worth if you can linking to the organization counter so that you can periodically load that back up and check to see whether the meeting is still when you think it is. And that's really useful. Meetings are often recorded. This is super useful because if you can't make a time it's inconvenient or you've got something else scheduled then then you can find and download the recording and and listen to it later. A perk of this is that you can often if you use something like VLC, which will allow you to speed up the video or an audio recording that you can often listen faster than real time, which is which is pretty great. Look around. They're often recordings are often posted on the agenda, or if you ask, then folks will folks will let you know where those recordings can be found. Yeah, within the context recordings of meetings and are kept within the wiki, but sessions like this or workshops or bigger presentations are on our YouTube so you can, you know, if you want to specific hey what happened in this meeting. That meeting if it was recorded would be the links that recording to be on the wiki. If it's hey, you guys did a big workshop around central bank digital currencies that would probably be on YouTube as opposed to the wiki. And you can always ask a where can I find this and folks including Sean will be happy to point you to the right direction. Working groups often are tied to a GitHub repository if it's a working group about code that will of course be the code related there. There's the read me page on the beginning usually links to meeting information. You can you can look at if you're trying to be familiar with the project looking at the issues of the pull request and the commit history of the repository can often be very useful. Sometimes those repositories that are not primarily code focused within the areas projects we have an areas RFCs repository where we put together lots of lots of documentation around specific features or design documents. For example, and so but we still use pull requests and issues and things like that to be able to solve that so be familiar with the GitHub repository that that's related to all of these. We would love you to contribute your code. There's a handful of suggestions here that will help you to do so. You want to mind the code license there's a handful of code licenses that are that are available such as Apache to. And you want to you want to make sure that you're familiar with those so that you are aware of how you can use the code and what you're agreeing to as you commit your contributions back into the repository. The best way to contribute code is to fork the repository and then create a branch for your contribution. That will allow you to bundle all of the changes that you are you are suggesting back into a pull request. And the reason why it's useful to do it on a branch in a fork of the repository under your own account is that if there's discussion about changes that should be made prior to committing. Then it's a lot easier to do so if it if it's in a branch that you have if it happens to take a little bit of time then it's possible to do things like rebasing that branch in order to bring it more current with with the main. The main fork or the main branch of the of that code in the in the main original repository. And don't feel like it. This has to be a massively significant change. Often things like typos or other types of minor corrections can be extremely useful to the overall code quality in a community. And so it doesn't have to be massive work with the maintainers of the repository. Sometimes there's requirements to to not decreased code coverage or to add tests related or adjust tests related to the to the feature that you are you're adjusting. And so be mindful of those and and be aware of the of the of the often the code scanning this presence and there's in these repositories. There's also something that most of the of these code repositories require known as the DCO or developer certificate of origin. This is why I've mentioned that here. That is a requirement on the commits that will that helps to prevent licensing issues as it relates. This is a relatively easy thing to set up and preferences in your favorite get tool, but but mining the DCO requirements will will help your contribution be accepted. It becomes very painful to accept a contribution without that, even though it's a relatively minor thing. And last but but not least, there's an important encouragement here and guidelines for engaging in the community. Please speak up in communities and become involved. You're welcome and you are needed. The these communities are comprised of the people that make them up and we need you. That's particularly true if you don't feel like you fit in. If you don't feel like you fit in. It's likely that the community has a gap in your area of experience or your background that they're unaware of. And so and so being, you know, speaking up if you feel like you don't fit in is a great way to help folks to to learn and to grow and it will be good for the overall health of the community. Please be persistent with your contributions. If you would like to contribute something and it feels like it's not getting any attention or or there's there's something else that's not moving forward in a way that's useful. So please be, please be persistent. Speak up, ask up email folks and that will help them to be aware of your contribution and it can help you guide you and so in doing so, please be patient with the others that you'll be involved with in the community. We all have stresses in life. We all might be a little shorter than we intended times or or or not be able to respond very quickly because of things that are either going on with work or their personal life. We're all people and please be patient and allow all of us some grace. Having said that, don't put up with bad behavior. If someone is being rude or very disrespectful or or in other ways that are there are obvious violations of the code of conduct, please engage the code of conduct and seek help from from leaders or other members of the community in order to resolve those issues. We occasionally do have have issues where where folks are not minding the code of conduct very well and engaging with the code of conduct is the is the right way to approach that. And if you if you come to leaders and say, hey, I observe this thing or here's something that happened in a call recording that made me uncomfortable. Here's where it's not allowed in the code of conduct. I would, you know, what do we do about this? They will be happy to to assist you in the resolution of that problem. Because this isn't healthy for a community. We need all of us in order to to reach our goals. And so please, so I have I realize I have some things that are in semi occasionally natural tension with each other. Be persistent, but be patient. Don't put up bad behavior. These are the types of things that we need to balance in order to have the healthy communities that we need and that's what we're going for. We want all to be welcome. We need you. We need your perspective. We need your understanding of use cases. We need your contributions. And so, and I say we in the very general sense, I feel safe saying that for all open source projects that they will all be better because of your involvement and I hope you will be willing to to contribute in those ways. So we, that's the end of my presentation. I'd be happy in the last couple of minutes to field any questions or comments that relate. I'm grateful that we were able to talk about a lot of comments, particularly technical ones in the middle of the conversation. So I'm really grateful for those questions that have already been asked. Sam, fantastic job as usual. We did get to some of the questions I've got a couple here at the end. Sam read to asked about providing reference links of Aries agent SDK in the context of an application. Sam read to if you check the links I've provided a couple of times. We do link to the Aries wiki page which will get you to GitHub which will get you to meeting recordings, etc. But the second half of his question of their question. How verifiable credentials are used to make transactions in a distributed ledger. What was the first part of that question. The first part was about Aries agent. The first half of the second sorry. The second half, how verifiable credentials are used to make transactions in a distributed ledger. So the I am unaware of a ledger that uses verifiable credentials and the operation of the ledger itself, although that can certainly be done. The signatures are always involved, of course, with the ledger to be able to check the origin or check validity of things. And so generally how it works in the ecosystem is that you record things on the ledger like I did with its associated did document, which contains public keys. And then you would issue a credential using the associated private keys to that identifier, which could then be used to verify the credentials. So in this case, it's the ledger supporting the verifiable credential. Instead of the verifiable credential supporting the ledger. Now, it's conceptually possible that a ledger could be created that uses verifiable credentials at its core. But but I'm unaware of one that does that currently. Cool. Can we use Aries occupy to interact with other ledgers. You can. It depends on which ledgers have already had the work done with the what's called the VDR component or what there's an indie VDR, and there can be a VDR for other things like, for example, Ethereum is one of the ones that there has been some attention on. And so all it requires is the right technical component to be able to connect occupy or AFJ for that matter with with a different ledger. But but the architecture allows for that. Last question before we go do Aries Clyde agent Python and Aries framework JavaScript serve the same purpose and just the language is different or they something entirely different. They mostly serve the same purpose. They are there are some different languages. AFC has the advantage of being a newer project and so there's there's a few small architectural differences there that that come as a side effect of just being a newer project to be able to learn from those that you're looking for. It's a little, I wouldn't call it unstable. It's a little bit younger in the project lifestyle that the life cycle then then acopias than Aries cloud agent Python. It's been around longer and is relatively stable and what it provides. And so your, of course, can use either of them and they are also largely compatible with each other and certainly strive to be. And so, and so yeah, but the short answer is is they most overlap concerns. It is now the top of the hour I'm pretty sure there's another call about to start I want to thank everyone for joining us today for this overview of decentralized identity I especially like to thank Sam for doing such a great job and such a short amount of time with so much information this is fantastic. And thank you to Tunisian the entire Morgan State team for helping us put this on we have more workshops coming seminar smaller things an hour at a time on specific topics. And we're going to get a calendar together for that but thank you everyone for joining us today I'm going to stop recording. Yes.