 I don't know about him, his schedule, but I think he will join. You were not on the, you were not on the call yesterday with the corda, right? Sorry? You were not on the call with corda yesterday, right? Oh, yesterday's call, I was in that call, I didn't speak, but I joined that call. Okay. Hey, Rahma. Sorry for being late. Hey, Cindy. Hey Peter. No problem. Hey. Hi. One second, let me share my screen. Why does it not let me share my screen? Almost there. One second. Maybe I forgot to publish it. I remember creating an agenda document, but now I just don't see it. Give me one more second. No. No agenda document. All right. Let me just create one real quick because we needed to show the, or I can just show the old one. It doesn't matter. The legal obligation? Yeah. Yeah, it has to be done. Sorry. That's why I'm struggling to make sure that we do it because we have to. Right. Can you see my screen? Yes. Okay. Welcome everyone to the hyper ledger cacti maintainers meeting. Please abide by the anti justice policy notice that I'm showing on the screen. And also the hyper ledger code of conduct, which you can find linked to on the agenda document. With that said, I just wanted to say there's one extra ad hoc discussion item that. I added before we get started. All the others is that I was and still am unfortunately completely overwhelmed with the very large number of applications that we got for the mentorships. So I've been working on scoring all those resumes. There's hundreds of them, literally hundreds. And I, I'm not done yet. I actually have to write men in email pleading for some deadline extension. As usual, she probably won't even be surprised because I do that all the time I struggle with deadlines. But yeah, that's just the bottom line. It's an urgent thing that I had to drop everything else to just really push through and finish and I'm not done yet, but that's what I've been working on. And I have these ginormous spreadsheets with the exported list of applicants and that I create the scoring based on the experience, what technical skills they have, communication skills, etc. Try to keep it objective, try to keep it fair and try to make sure that everyone has a shot, not just, you know, throw names in a hat and then pull one kind of thing. That's my update. And I saw that Cindy managed to merge the 2.0 alpha release pull request. So I figured I had, I should add the discussion item for that just to check in and ask if there's anything else that you need my help with right now. I know that there's a bunch of other things that I need to be doing, but is there anything that's like blocking you right now because then I will work on those things tonight. Sandy. Maybe you're muted. He was able to talk. Now we can, but maybe your sound is lagging. No, actually, the headphones, there was some issues with the phone. Okay. Yeah, I was going to say there's no issues as such, in which I will need your help. There were some bugs that identified in the release in the previous release so I fixed them and opened up PR for that. Okay, so I do need to go and review that quick and help with that if there's issues. Okay. Yeah. Also, you're gone. I updated that the release management PR at the instructions for the weaver packages. Nice. Awesome. Thank you. That's important. The guiding principle there is if, if you and me get hit by the bus, you know, it's sorry that's not something you want to think or talk about but yeah, if, if you're gone for whatever reason, anyone else who has that document should be able to release. The software. And so, even though it seems like an annoying chore, it's super important that we have that documentation. So thank you for updating that. Thanks. Sorry, what about the busy venues. They are still failing. I'm not able to figure out why. Okay, you want to quickly discuss that. Hey, Peter. Sure. So, Peter, I open an issue. Maybe you can check that issue number 2423. 2423. So, are like, when we are trying to deploy the contracts on a based on network using truffle migrate. They are failing. I would attach the logs there. Earlier thought that it was because of the PR change but now I when I tested locally. Even then it's failing. And even the changes in the workflow. Still it's failing so I guess it's something else. Okay, so it seems that way. Well, I think. You said that just passing before rise. Yeah, passing before that. And after that started failing. But even when I revert those changes, still it's failing and it's feeling even when I try to set up locally. So, I mean they're the work doesn't affect it. So, I guess there's some other issue. Can you walk me through, can I reproduce it locally on my machine quick or does it require extensive setup. It's easy. I mean it's just a couple of commands. You can run if you want if you want to do it now. Sorry, I'm on the wrong computer. So I can maybe I can. I just have to switch to the other branch. With the deaf container. Okay, give me one second. Let me share my screen. Because it's easier if you can look at it. And the code. All right, so I'm on this branch. Just have containers set up. And container. Yeah, I'm stuck in the slimbo because I really needed to fix our deaf container because it had some issues in there where interns were unable to launch the deaf container and that was plaguing us throughout the entire internship last year. So I really wanted to make sure that this year when the interns are starting the deaf container is stable and it just works. That's one of those things that is urgent because of things moving ahead as time moves ahead. We have to select candidates by end of this month, right. No, we have to select candidates by yesterday midnight or EOD. I think, I think 15th was the deadline May 15th. The deadline was submission. Really? Yeah. Yeah, I think so. That's what I've been telling Cindy that we need to start looking at the yeah it says 5th April to 15 May mentee application period on LFX mentorship. 16 May the 30th May mentee application review and application application interview. Then 31st May to 5th June select mentee notification and acceptance. So yeah. We have the next two weeks for the interviews. Does it save you a lot of work Peter? Does it save you a ton of work? Yeah, I mean, the work is going to be the same but you save me a ton of stress because I was going to be up all night grading resumes. I had a hint of that when you mentioned that early in the call. I was wondering what you were okay. Yeah, you were like, what is he talking about? Oh, thank you. That's great news. Okay, then we have extra time to deal with this issue. So, Cindy, what should I run? What do I do? Go to the weaver folder, go to the weaver folder, then tests. There's a test folder here. Go to network setups and then Bezu and run make start make start hyphen network one. Alright. Just one thing you need to be using Java 11. Oh, that's going to be okay. Then I'll do that on my own time. I don't want to spend. I don't want everyone watching me set up Java 11. That's that's terrible way of using your time. So, okay, I'll try this on my own time. We can move on. Yeah, and it also needs demux. I'm not sure whether here it will work. Yeah, the dev container might not have it but Okay, for now, maybe you can look at the logs attached in the issue. Right. Let me do that. Share my Chrome tab. So you have the set exchange base log. Migration is the contract code can be stored. Please check your gas. Well, that's weird. So it's deploying the migrations and then the deployment fails. Yeah, we were using gas price to be seen zero. No tests. Follow up man. Initial migration one. If I search for this file, will I actually find it? I can't see what you're seeing right now. Oh, sorry. Sorry, I moved on to my VS code and that I couldn't. So sorry. Well, I don't know. I just shared entire screen. It's easier. So this initial migration is which one. Yeah, so simple as a simple state. Simple as that. Religious migrations. So which was right there. Well, this is just a boilerplate stuff anyway. Yeah. Okay, then the other question is the ledger version where you're deploying. Where is that coming from? Is that one of our all in one containers or some other container or does this just run on the on the Truffle, fake, Ethereum, VVM thing? There's no container we are using. I'm not exactly sure how it's set up because Dina Karen was the one who created this. But if you want to see how we are bringing it up in the network up, you can see in that folder, test networks, setups, basu, and then scripts, tests. That's right. Networks, setups, basu and scripts. So here. Set up network. So you have, you create a directory. Copy. Config file. Basu operator generate blockchain. Confid. First node keys. More keys. So you set up four nodes. Come back out each signer. Validator nodes. And then you put in client bases. Team up sessions. Sleep 10 seconds. Node session SH. So then this is, that says basu. So this basu executable. Does that mean that you have to have basu installed on your host OS where you're developing? So it has to be on the path. Yes, I think. The instructions to download and install the deal. Okay. In the CI. The installation that happens for this basu is the version they're pinned or is it like set to latest? Let me check. Because that's usually my first guess. If it's set to latest and they, in the basu main and maintainers just release some update that just broke something then the problem is that you didn't pin it to a specific version. And then that's why the test just kind of aged out and started failing. But I don't know for sure. It's just my first guess when something like this happens. Okay. It's been to 22.7. So it's fixed. Okay. Okay, then I'll just try to reproduce it myself as well and see what happens. Okay. I'm guessing that. And then it's going to be good in the sense that I just worked on the new dev container so I can very easily simulate fresh environments that are very similar to the CI itself. So I have a good chance of being able to reproduce any issue that the CI has. Just one more thing. It does happen consistently, right? So it's not like sometimes it fails and sometimes it doesn't. It always fails. Yeah. It just kind of bugs is when sometimes it fails. Yeah. And then you don't know if it was some rate limiting with the Docker pull from Docker hub or. Sometimes you had the, you had some quarter test field because the Mavin registry was unavailable or something. Right. I know. Yeah, we, yeah, we have that on the CIT sometimes the GitHub container registry just returns an HTTP 500 to an image that I know is there because they've been using it for months. Yeah. Okay, but it's not one of those. So it's definitely something related to the setup. So I'm still thinking it could be that something is not pinned as a version. But if it's not the basic version, then actually the other thing it could be is truffle because I remember looking at your package chase and files. And I remember saying that if you can you should. Yeah. Not have auto upgrade. So all of these. Yeah. Talk about nothing. So auto beads. You want to avoid using tilde and carrots and just just put specific versions. Yeah, literally what I just. Wait, am I? Yeah, I'm sharing my screen. So yeah, just disappear the carrots and the other one to tilde. I don't remember all the syntaxes that MPM has because there's multiple markers. But it doesn't matter. You just don't want it to auto upgrade because someone will pretend to be a friendly new maintainer to I don't know the Chai library. And then they will push a new update with malware and I'm not making this up. Someone has done this a couple years ago. It was crazy. So yeah. Yeah, I mean, yeah. Okay. I mean, on the flip side, the benefit of doing that is genuine package publishers may push security updates. Yes. We lose that you have to manually update it every time. And that's annoying. I agree. There are tools for it that. So that you can run a single command and it upgrades every single version all at once. In all the package Jason's. So there's automation to make that a little easier. But. But yeah, it's more manual stuff. Also dependable tensors. Right. Yeah, that's the other thing. If there's known vulnerabilities and all the versions then dependable sense and alert. And the principle we had for prior major releases, as in the only one, the 1.0, it was that. We cannot have. Open dependable alerts for critical and high severity. In the production code as in the components that are actually shipped as a production. Code and yeah. And then it's, it's an uphill battle anyway, because. A week after release 1.0 new critical vulnerabilities came out in the existing libraries anyway. So. It's, it's never going to be perfect, but that's just, you just have to keep shoveling it. It's maintenance. Yeah, we've seen something similar. Yeah, I'm seeing a new version of Truffold published six days ago probably since then it's really. It could be. I'm not saying for sure that it is, but it is a candidate. It's either Truffold or, or it even could be Truffold's one of, one of their own dependencies. And the letter is out because the letter is the same version we established that. Yeah. Usually when things fail like this, it's because of the dependencies. Okay. We have like four minutes left. I had a couple of issues I wanted to just bring up. Oh yeah, sorry. Yeah, I can stay longer if you all have more time by the way tonight. It's, I don't have to rush away. We don't want to keep you up late. I just have a brief. Following up from the quarter call yesterday. The, I think, like going forward, maybe we should come up to the sort of a two thing, a joint presentation and with that in that we should come up with like a matrix of features that we that we support because you remember like we did this exercise about a year and a half ago where we had that huge Google doc and we had this table with feature comparison between characters we were UV and all. So firefly also, you know that. So I think we should have that matrix. So and or maybe make some slides on those so that we can just show that to them like, you know, if we have a follow up meeting with Richard and others, we can, we can show it to them. I think that will avoid confusion. Otherwise, right now, I think like we have separate presentations like this. There's a captive presentation. Does we have our own presentation and then we have the presentation where we have the integration roadmap. But I think it'd be good to just have one integrated presentation so we don't confuse people because that's what we want to tell people this is basically what is the character. Right. Yeah. Yeah, I agree 100%. And honestly, I don't even want to spend too much time myself preparing a sort of presentation. If you feel like that document we have or any slides that you have or whatever we prepared earlier is fine, then it's fine by me. It's because I don't care that much about any of that because my priority in this whole interaction is to make sure that if are free and fidelity, if any of them or all of them want to come in and contribute some of the things that they have done, I want to make sure that that happens. Regardless of even if they look at our code and we look at their code and we are like, well, it's going to be some work to make these fit together in any way. I just want them to have the opportunity to come in and contribute it because we are always glad to have more contributors and it sounded like they have a different flavor of something that we may not have because we have HTLCs and they have that other thing which is specifically not HTLCs and honestly that was the most important sentence to me in the entire presentation when they said, when they explained that, I was like, okay, well then we have a win-win situation here because they want adoption of their methodology and if they open source some of it or all of it, that definitely helps and we want new contributors. So it's like, in my mind it's a done deal which has to be welcoming. So because of all this, this is how I think about it, I'm very open about it as well. I would also write an email to explain all this to them as well. So because of this, it doesn't matter to me too much what we put in slides that we will present about Cacti and I'm not one to cherry pick and argue about the small details of what we call boxes. Maybe sometimes I get into that but I try to avoid it and I definitely won't really have a lot of requirements on it this time because of what I just said. I don't think it matters that much. Yeah, I generally agree with you. The only thing I want to avoid is too much to mention to be like, as you like to say, I mean, there's HTLC. I think at this point maybe we have two kind of HTLC implementations. There's one in the cactus packages and there's one in the viewer packages. So at some point we would like to merge them and get them into one. Clearly what Corda has is a different way of doing asset swaps but the foundation way they're doing it is by generating and validating proofs and there we have something that does something similar. That's why I mentioned the example that we can demonstrate in from the viewer packages which is how do you transfer an asset? This is not the asset swap because asset swap you're doing by HTLC but as a transfer we are doing in much the same way that they are doing asset swap which is you generate a proof of a pledging of an asset in one ledger and then you burn it and then that proof suffices as evidence for you to recreate the asset in different ledgers. That's the form of an asset transfer. So we have the like some basic building blocks for those things. Just want to make sure. I mean we can do the same way as we are doing with the viewer and cactus which is get the code in and then we figure out how to eliminate it and see. So that's I'm fine with that too but just we want to I want to have this sort of a consolidated slide just so we can show them okay the possess these capabilities now you bring these you possess these capabilities too. Of course the what you realize out of it is a bit divergent from what we have which is great that you can bring that in but in the longer term we will need to consolidate and eliminate redundancies. That's it that's what I wanted to convey with that. Yeah that makes sense to me. Yeah we just have to serve this information in a way that they don't feel like oh if we come in we're going to get crushed or whatever. Yeah but you already know that because we were having the same discussion before cactus and we were got together so you know exactly what my attitude towards this is just make sure that everyone feels comfortable everyone feels like okay this is going to be great. Yeah. Yeah that's it so I think they're on the same page. Agreed yeah and I think it would be great when for us if they got on board. Yeah oh yeah for sure I would very much like that I think that would be great. Even if I'm guessing they probably have a lot of stuff Java based so that will also add some sort of diversity to code base because now we'll have Rust, you'll have TypeScript and probably a bunch of Java and they said they were implementing the EEA standard so we can also just name things based off of that. I can see us supporting multiple standards that helps with the package naming. Yeah I'm just rambling now but yeah it would be awesome to have them on board. Okay yeah I mean next time I think I can explain I can okay I'll work on also on explaining stuff in an email and I'm sure we'll have follow-up conversation where we can get to explain the system in more depth. So yeah yeah I will definitely also write an email just to basically explain what I just explained. Sure. Because that's my only proposal my only big takeaway from the entire thing is hey yeah I think this is a good match we should get together. Yeah thank you. I had a couple of other quick things so we were looking at the code in the cactus API the code API. So just wondering where do you have an example an end to an example where the validator interface gets used? Validator interface. I think the iValidator. The socket i of it. No that's Python. Let me share my screen again so we can look at it together. We saw this in the cactus code API right? Yeah it was in configuration. Type script. Look at the exports. I'm guessing this one. Yeah where is the... Yeah was this one where are all the exports I think if you go to public... Yeah I verified yeah yeah I don't know. Where are these getting excised? Do you know in any example? Question maybe Isru knows because this was added by... Yeah I think that verifier is implemented in the connector side and application and business logic indirectly talks to that the verifier through the... the other client API when business logic called client API then API class sends message through socket interface and the receiving side is the other verifier. Wait what folder is this? I can send the link to this. Okay it's a basic connector. Got it. Yeah but the test package it's there easy to mix up because there's a cactus plug-in ledger connector basic but also there's a cactus test plug-in ledger connector basic. Yeah sorry that's there's a reason why it has to be done that way so that the dependencies don't get circular but I know it's a bit overwhelming the 1 million packages that we have but I put the exact path for the test file that I was looking at into the zoom chat. Okay is that an example where this gets used? One of the end-to-end examples? Well this test looks end-to-end actually pulls up a ledger from the containers and then it instantiates this verifier and then it has the iVerifier monitor so this looks to me like this is an actual example of how it works. I think yeah I think that's the case. How would we exercise this here? You running the mocha test? How would we exercise this? So this is just like you need to look at the imports and then you see that it's a just one the other ones are tap this one's just so you can just say you're just and then the relative path of the test file. I don't know if it's probably not going to work for me yeah because I don't have the dependencies installed but that's basically what you would do you just let me also put this in the chat you just run this command and then it runs the test and the other one that looks interesting is the verifier.ts which looks like it is an implementation yeah so this is where it says implements iVerifier so you probably also want to look at the core of this. Right where is it? Cactus verifier client package and then within that it's the usual structure but I put the path in the zoom chat. It's not bad. So the all the entering examples in the examples folder do any of them use these? I think I said exchange example use that all the features I think okay this one do this counter as a trace find them folder I think it doesn't directly folder and then you get the verifier from the verifier factory so I'm guessing that's where it happens then but I'm kind of just rolling with this and more verifier factory get verifier Does this example do something similar to what they were showing yesterday? Asset swap thing actually this this example does exchange it's not exactly the same but it uses fabric in ethereum ledger it sends coin and NFT is transferred in the fabric ledger so I think this example is close to very similar to yesterday's demo We were trying to look for an example where you can make commitment in one ledger let's say in fabric and then generate a proof and validate that in another ledger so we have an example for that we're looking for something similar here is there something already there or do we have to create it? So an example whereby you have two ledgers fabric and in the fabric ledger you make a commitment some sort of some asset state changes and then we want to generate the proof of that and then validate it within the cord ledger and that creates a commitment in the cord ledger No we don't do things in that way I sent a link to an image that showing what it does in this example it does transfer in one ledger and does another transfer in another ledger but I think it doesn't send proof to fabric network but it is determined in the business logic not in the ledger smart contract or something like that so we do things in a different way from their example Right but we wanted to show a use case whereby we could use different ways to achieve something like this so for the purpose I think this one is fit okay thank you let me study this and the discounted asset I'll study the example then sorry final thing I know we have 15 minutes over talk about documentation so right now we still are referring to the weaver documentation published under the weaver names because we didn't have the packages published yet but we do need to have a common documentation page this is part of what we've been discussing as project best practices too I know I agree sorry I just had absolutely no time to work on the documentation at all let's do that maybe we can set up a separate time to discuss and work on that you'll see sometime later this week with tomorrow I mean I can do it maybe after the TOC call maybe before 30 before or a bit after that works next week but not this week I just messaged Tracy saying I have to miss the TOC call this week I have another thing okay then how much after the TOC call my TOC call ends at 8 yeah I could start at 8.30 so 30 minutes after the TOC call finally but this is next week you said right or tomorrow no if we do that then I can do it this week as well okay that sounds good to me we can look at it okay Isra is it okay for you yes I think it's going to be really late for Isra right I think it is late but in late if it is very late then there will be no conflicting schedule so probably that's but that works for me so in San Francisco that will be the 18th because 16th is Tuesday 17 Wednesday and then we are saying 8.30 that's past midnight okay it's okay oh we can do it like Friday morning like the same time exact duties from now Friday morning same time sorry go ahead sorry I think on Friday if it starts at the same time then I only have 30 minutes because there is another meeting already scheduled so I think 30 minutes should be okay I just want to go over the document we have and then sketch out what we need to build then that is okay for me just to clarify is this what you mean 1.30pm okay yes 1.32pm yes alright give me one second to double check that's my first day evening I think it's available just have to make sure I'm not lying yeah that should be okay I can send out invite for that that's basically 48 hours from today's meeting yes okay yeah that works let's just create it right now because otherwise I may forget at the event let's try to finish it in half an hour but no it goes however long it goes shoot I have to copy paste from the other one I always forget which link put that out there oh and it's okay put that out there oh and it's first day my time half an hour 9.30pm specific time that's the right one at the event and invite group we just mentioned description and documentation presentation presentation presentation presentation is important usually we have to wish the client okay it's out there oh and agenda documents I don't know what happened I don't know why If I click create meeting agenda, it comes out here, but it doesn't matter. So this is going to be on 18th, get timing to enter agenda announcements. But there's one in TVZ, yes, okay. Sorry, I just figured I will do all of that while screen sharing so that we can all see how it's done anyway. Yeah, that's good. All right, then thanks everyone for joining. And if anything urgent comes up, let me know, but otherwise I will look into this test failure issue that Sandeep was talking about. Thank you. Thanks everyone, I'll talk to you later. Bye-bye. See you later, bye. Bye.