 Hey folks, thanks for joining. We'll get started here in just a few minutes Just trying to round up a few more of the maintainers here to get them on the call so that we can do our vote in a little bit here Thanks for standing by. Hey folks to those of you who are just joining. We are We'll get started here in just a couple minutes. I'm still trying to we have a Vote that we are going to do during this community call and I'm trying to round up More of the maintainers to get them on the call here, but I think another call is running long All right, we've got a few more people joining here. Sorry for the delay. I'm just going to take a quick roll count. One, two, three, four, six, seven. That should be a quorum, but nine, right? We have nine total. Yeah, so we have a quorum now. Okay. Thank you everybody for bearing with us while we rounded some people up here. We're going to go ahead and get started. I'm going to share my screen real quick. So today's, that's the wrong screen. Sorry. Okay, today's agenda is a little bit light, but we do have a vote to bring on new maintainers and as well as a demo of Firefly Court of Integration. So Our last community call we wanted to have a vote and there were some questions, great questions that came up about just the process and There were a lot of things that need to be clarified. So since then we have clarified some of those things. There has been a pull request and an update to the maintainers dock in the Firefly Court repo and there's also been some change to the GitHub structure and teams and permissions and things like that. I won't go into all those details, but Essentially, in each of the repos. Now we have a list of the maintainers for that repo and then there's a link to the wiki page, which has the list of all the maintainers of the The Hyperledger Firefly project proper. And if you want to see who all the maintainers are on a per repo basis, you can see that in GitHub now and there is a list of all of the repos And then their respective maintainers on this list here. So that's how things are structured. So we're going to hold a vote today to add two new maintainers Just to clarify. So the questions that came up last time is the vote to to add them to a particular repo. The answer to that is no And you can read about that in the details of the maintainer process here. The specific decision of which GitHub repos and maintainers given responsibility for does not require a vote and is left up to the discretion of the existing maintainers for that repo. And that's just handled through the access to a specific repo is just handled through GitHub teams. So The vote is to add someone to this list here that we have on the screen and that sort of designates them as a Someone who holds a shared responsibility for the project and meets the expectations and requirements of being a maintainer. So does that make sense. Any other any questions before I make the motion to officially vote. Okay. I suppose we should probably do each of them separately. So I will I will motion to add Matt as a maintainer to the Hyperledger Firefly project. Do we have any seconds. I'll second. Thank you, Jim. Jim, how how do we just want to roll call verbally roll call one at a time. Okay, let me just switch. I'm going to stop screen sharing for this so I can see the zoom screen. Maybe good measure to use different orders between the two. Sure. All right, I'm, I'm taking notes and I'm just going to call your name. So the motion here, which has been seconded is to add Matt as a maintainer and say, yeah, your name will start with Andrew. I vote yes. Okay. Hayden. Yeah, Alex. I vote yes. Beno. I vote yes. Jim. I will yes. Peter. I vote yes. I vote yes as well. And I believe that is everyone that we have present and that is a majority. So the motion passes. I'm going to add Chung as a maintainer. Pardon me. Second. Thank you, Peter. All right. Jim. I vote yes. Alex. I vote yes. Andrew. Yes. Beno. I vote yes. Hayden. I vote yes. Peter. I vote yes. I vote yes as well. Did I miss, I think, I think I would try to randomize the word on time. So I think one, two, three, four, five, six, seven yeses. That is unanimous and we have a quorum. So both motions pass. Congrats. Welcome Matt, who I believe is on vacation at the moment and welcome Chung. Glad to have you officially now a maintainer. I will go ahead and get you guys added to the proper group. And then you'll get your members and get help and then then you'll get right access to things. So awesome. Thank you. Thank you, everyone. Yeah, yeah. And I just wanted to recognize the amazing contributions that you guys have already made and looking forward to continuing to do more in the future. Thanks everybody. Okay. That is our first agenda item. Thanks everyone for, for going through that. And our next agenda item is a gym is going to talk a little bit about quarter support with firefly and may possibly have a small demo of kind of where things are at today. I don't want to be on the spot if that's not ready to go. No, I think it still works. So we'll give it a try. So this is Jim. I'm part of the collider. I wrote that connect, which is the connector for far fly to talk to fabric. It can all also be used as a standalone component to provide restful capabilities in front of the fabric network and in the past few days I started revisiting quarter to see what would it take to get quarter supported in that as well. So obviously far fly has a standard set of interfaces that all connectors needs to needs to follow. So I've taken a approach initially to write everything in Java so that it'll be a Java program to speak the API is that far fly needs for a connector. So this is Java is necessary because unlike other protocols that either uses standard Jason RPC with HTTP or, you know, pro above or GBC quarter uses a Java specific interface which is JMS. As far as I know it's not available anywhere else in different language so Java is a requirement. So initially my approach was, I'm going to write everything Java just have a speak the same language that so far we've written in Golan for both Ethereum and fabric. From a in the office discussion, you know yesterday with Peter and Hayden, we realized there may be an alternative approach to sort of shrink the footprint of Java in the solution and use a lot of go so that we don't have to solve the same problem again. So you probably have heard this from either Peter or Matt before that the project far fly transaction manager is sort of a toolkit to create new connectors, you know for any opportunity. So far, it's only been proven with Ethereum. We were going to re implement or or refactor fact connect to fit into that toolkit as well. We haven't done that yet. But I'm going to give it a try to see if I can do that for for our corner. The, the idea is, we will just run the absolute necessary pieces of the code on Java, which is, you know, obviously has to be using the SDK from quarter the quarter RPC ops interface to talk to the nodes natively through GMS and all that, but then have had the rest of the code in go talk to that process through either GNI interface, or I heard there's a new approach called go SDK, which Hayden introduced me to. So we'll see how that goes. But today I'm going to show you a quick demo of what I've got so far with a pure Java innovation. So hopefully everything still works. Okay, so make all this first so I can show you how it's launched. This is, this is in the quarter. Me, make it a little bigger. Okay. So this is in the quarter connect repository. And after I build it a long, I launch it, I want to show you the launch because you are giving the list of core depth jars to the class path. And that so far the, the only approach to have this runtime. You can dynamically load your core core that classes, you know, for both the flow side of things, but also the contract side of things. So you are providing those jars to this runtime through this technique so that they are just part of the class path from the very beginning. You can use URL class loader to load them in at runtime, but only could only get it partially working I was able to load all the classes but somehow the annotations were not recognized. So this is kind of a common issue with dynamic loading of classes. So I tried a whole bunch of things that your people online were suggesting that we're working. So, as a result, so far, the approach that works is you have to provide the core depth jars on the class pass when you launch the process. So you do that, and then the application will launch and then you'll go through the configuration connect to the database and then connect to the quarter note, and now it's kind of ready to go. And even restored a bunch of subscriptions for events I'll show you how that works. So now let's look at some API calls. So the things that you can do at the moment is you can send me transactions. Let me go, let me go ahead and do that. So this is a, this is using the I'll you sample from corda. So to trigger a transaction and in this case we're just doing the issue issue of the I'll you note. There's a issuer and there's a borrower. And what you need to specify in the payload is you need you got to tell corda connect what is your class that will trigger the flow. And that is like this English train. Notice the inner class with this index that's that says standard Java x index for inner classes. Jim, I'm still seeing the terminal. Oh, sorry. Let me reshare. I need to reshare the screen. Sorry. Can you see postman. Yes, okay, cool. Yeah, so, as you can see, flow initiator class. The flow initiator class is specified like this with the inner class. And it only takes two parameters to take off the transactor one is how much you like to issue the note for and then what is the, what is the party as the borrower. Who are you issuing this I owe you to. And you just give it a value that is part of the parties distinguished name. So as you know, quarter uses identities uses PKI certificates for identities. You just have to specify a partial string that's unique enough for that for the parties. The court will not be right. Okay, I need for the game request. Okay. I may have broken something. Okay, that works better this time. So, as you can see, it's successfully kicked off a transaction. And this is the resulting state value is this lender borrower, and there's a linear ID generated for that. So the state can continue to evolve. And, you know, the signers and everything is, is here so this is all decentralized from the transaction results returned by the node. And you can see a bunch of locks from the runtime. Okay, so what if I want to listen to, to some events. I want the, the connector to send me a notification whenever there's a successful event. So I'm going to create a event stream. Any event stream requires you to specify. What is the topic so it supports WebSocket as the channel to deliver the event to the client. You have to give it a topic so that, because the WebSocket can be a shared pipe between the server and the client. So you partition that pipe into multiple topics so you can listen to a different events creams. So you give it a topic and then you can create that event. I think I've already created that so you can see that's already here. So you have the, so event stream represents the pipe in the form of WebSocket between the server and the client, but then we also need to tell the connector what types of events we are interested in. So this is where you create a subscription. Based on the same event stream, you can create many subscriptions to deliver different types of events for the client. So in particular one, I'm going to ask it to give me in all the events that are emitted with this date for this, that's part of this flow. Quarta doesn't have a concept of blocks, unlike other DLTs. Every transaction is kind of standalone. So the only thing to kind of signify a, a, a pointing time in backing history to say all the notes, you know, this note may have been running for a while. And my subscription don't always have to start from now to later events. It can start from the historical point. And the only way to specify that is with the timestamp. So that's why I'm doing here. So I already created that, which is like this. So now we're ready to listen for events. So I'm going to create a WebSocket client and I'm going to tell it that, hey, I'm going to listen to this event topic. Okay, you can see as soon as I told the server I'm interested in any events in this topic. I've already got pushed a bunch of events. So once I, once I acknowledge there are more events coming through. So we don't have any more events anymore. So let's see what happens when we push a new transaction. We're going to give a different value, maybe 20, still the same borrower. Let's see what happens. Okay, so you see this new events now got pushed to us. And we've got the new transaction details. So that's as far as I've got. If you use the quarter, you can appreciate why this might be useful to you. So writing a client quarters is not very trivial. You need to use SDK you need to do a lot of quarter specific programming, preparing the transaction and all that. Whereas here, it's just restful cost with Jason payload and using WebSocket to listen for events, all the standard web application techniques so can be a really useful tool to build a performance web applications against quarter. So that's it for today. More to come. So this is just getting started. There's still a lot of work to do. Thanks, Jim. Yeah. Thanks for the demo. I really appreciate that look forward to seeing where this goes. Any questions from anyone else on the demo that Jim just showed or on the topic of quarter with Firefly. Not a lot of fans. There's some out there, we would get a quarter question every now and then at this court. Okay, cool. Well, at this time, can open it up to any other topics. Any other questions that people have or things that people want to discuss related to Firefly the floor is open. Ideally following up with that I'd like to talk about getting us on the agenda for next month we'll walk through the Tesla's connector. We're deploying it this week into production. Absolutely. Yeah, we would love to see it. That would be really cool. I'm sure there are more Tesla's fans in Florida. And do you do you want me is there anyone you want me to invite ahead of time to review codes before we do the demo and have our conversation next time. Yeah, do you want to, so you can follow up with me either on discord or. I know how to get a hold of you. Perfect. Okay. You said you do know how to get a hold of me or you need to. I do. Yeah. Yeah, that would be great. I would be super excited about that. And I something we can chat about as well but is that something that there's a potential to possibly open source or yeah we're contributing it back. Oh, that would be wonderful. That would be, yeah, that's that's really exciting. So we can chat about that and the details around that as well. Yep. And that the intention is to do that sometime next month as well so where the Warner, our Warner media one is going live and they're all doing all of their badges and NFT stuff for their loyalty all on Tesla so this will be running all those. So, that's awesome. Cool. Yeah, I'm super excited about that so let's let's chat on that. So community calls are usually the second Wednesday of the month. Okay. Yeah, thanks for that Eddie. And any other topics that folks want to discuss today. Not like I said the agenda was a bit like today. But if not happy to give folks the rest of the half hour back to get back to other things they need to do. So last call. I'll shut it down. All right, thanks everybody hope you have a great rest of your day and see you next time for an exciting Tesos connector demo looking forward to that. Thanks. Have a great day. Bye bye.