News:Project Update 2025-01-17

From Nexus Wiki
Jump to navigation Jump to search

GitHub Projects Organization:

  • Creation of three projects: desktop wallet, mobile wallet, and LLL-TAO.
  • Improved tracking of issues, enhancements, bugs, and project milestones.

Development Updates:

  • Revamped the indexing system to improve performance.
  • Addressed and resolved several bugs related to the mempool and transactions.
  • Improved syncing performance, achieving twice the speed compared to the old architecture.
  • Removed certain opcodes (e.g., OP:LEDGER:TIMESTAMP) for better reliability.

Upcoming Features and Focus Areas:

  • Development of session management for remote login in both desktop and mobile wallets.
  • Peer-to-peer messenger integration, likely coinciding with or slightly after the hard fork.
  • Focus on optimizing mobile wallet for specific use cases in South America and the media industry.

Testing and Deployment:

  • Significant progress on the new syncing code for better performance across nodes.
  • Efforts to ensure stable integration with platforms like TradeOgre and XeggeX.

Media Use Case:

  • Early-stage development of a use case tailored for the alternative media industry.

Future Plans:

  • Completion of indexing system revamping by early next week.
  • Mobile wallet development prioritized for release to address emerging use cases.
  • Preparation for hard fork milestones.

Full transcription:

  • Notice: This text was transcribed using AI. There is a high likelihood of spelling, grammatical, and translative errors.

GitHub Projects

Hello everybody. Welcome to development update for January 17, 2025. One of the main things that I've been doing this week is getting really organized with goo GitHub projects again. So if anybody recalls, we used to use this. So I have made 3 projects.

1 for the desktop wallet, 1 for the mobile wallet, and one for the LLL-TAO. So I posted a link in this in the General channel. I encourage anybody that's not technically minded to be checking on this to keep an eye on what the development is happening. This is also good. This is where I'm tracking issues in.

So you'll see there's a hard fork section. These are the features that are going to be necessary to launch the 6 point o hard fork. And then I have an enhancement section. This is basic feature request enhancements, to improve the protocol. And then I have bugs, and that's just issues that people submit, and then I put them in bugs, and then in progress, and done.

Indexing System Revamp

So, currently, I have removed the OP:LEDGER:TIMESTAMP. I'm in the process of revamping the indexing system. I improved sanitize unconfirmed, and I got a lot of that logic. I also found an interesting logic issue with the mempool and transactions. They, when there's a reorganization, it should be resurrected in the mempool.

But in the mempool check for the accept function, I was checking if it was on disk already, but if it's already been accepted and reorganized, it's already on disk. And so the transactions weren't getting brought back into the mempool. So that was the first problem.

TradeOgre and Xeggex Resolutuion

Then the second problem was that I wasn't checking if that transaction was indexed when I was reading the contract for a memory pool state, so that your notifications processor would see that and think that was an expired contract and try to claim it. And that's essentially what happened to TradeOgre and Xeggex.

And there was another issue on XeggeX side too, where they weren't they were checking confirmations based off of the debit and not off the credit. And so that created a couple other issues. So we got all of that sorted. It was a myriad of different things. The last little bit that I have right now is revamping the indexing system.

So I've already split it up into 2 different database instances. Then I'm going through and I'm changing the internal indexing logic. It seems sometimes the indexes don't fire, and I haven't been particularly super enthusiastic with the code. It was something that worked, but I wasn't looking at it as, oh, wow. This is this is great work.

Mobile Wallet

So and I've noticed that with Nexus. If if I ever leave something like that, usually at some point, you run into issues and it kinda kicks it back and, you know, has these weird idiosyncrasies that happen. So that's being completely revamped. I'm gonna have that done by Monday or Tuesday. I did not get too much in a mobile wallet this week.

I know that was a goal that I had for last week, so I'm going to be pushing that milestone for next week. But I did start in the mobile project. Kendal and Krysto are starting for the desktop wallet and the mobile wallet, the, sessions management. This is a front end that's gonna be important for remote login. So that's gonna be a feature that's gonna be coming out along with the peer-to-peer messenger, probably around the hard fork time, maybe a little bit past the hard fork time because we do need to have a functional interface for it to be valuable to people.

Sync Improvements

Anyhow, so I've basically gone through I improved the syncing code. So I've actually gotten my metrics about twice as fast. And this will also be for any any specific computer because it was basically doing random reads for the transactions, and that can get really, really slow for hard drives because the disk seek is the slowest part of a hard drive. So, basically, what I'm doing is I'm doing a sequential read of the transactions and a sequential read of the blocks so that it's more optimized for hard drives and solid state drives as well, which improves our throughput on the sender's side. So I'm just testing 2 nodes side by side, one running the old syncing architecture and one running the new syncing architecture.

I've managed to improve the syncing by a factor of 2. So that's very good numbers for us. That means that, you know, what would take 2 hours would take about 1 hour depending on the node that you're connecting to. Since we have a much better distributed topology on our network too, we're gonna be syncing from each other more, and that could cause you to sync pretty slowly if you have somebody with a really slow connection or with a slow disk. So this will help with that substantially as well.

So I spent a lot of time fine tuning that this week. And little granular details, like I said, I added index checks inside the read contracts. I checked the index on connect for mempool states because you should have the dependent already confirmed in order for it to be accepted into the mempool. And made a couple other micro adjustments. I changed some of the syncing code to show the number of contracts that I've been processing so that I can kinda keep an eye on that rather than the number of blocks.

LEDGER:TIMESTAMP

And then I have added some initial hard fork. I have removed the OP:LEDGER:TIMESTAMP and OP:LEDGER:SUPPLY. Basically, the ledger variables because the ledger if you have it tied to a ledger contract that can be kind of right on the the outer edge. So if you say, like, I want to take the the best blocks time stamp, when it gets accepted into the memory pool, it works. But then it gets accepted onto the block, and then that tells you your ledger time stamp.

But that timestamp will continually change as new blocks get added, and you could run into a window of error issue there. So I've just removed the ledger timestamp. I don't think that's a good opcode for us to be able to use. I've started some of the basic legacy truncation, architecture and code so that basically you're gonna be able to sync from the first tritium block. And, you know, we're going to be having that fully activate on the hard fork.

New Use Case – Alternative Media

I've also, added a couple new rules for OP:DEBIT, a few version 4 activations for the hard fork. And, also, Kendal and and myself are working on a new use case. This, is beyond just the AI one. This is gonna be focused on media. I have some contacts in the media industry, alternative media.

Very well known people. I'm not gonna mention names, but once we get this specific use case done, we have a really nice launching pad for it. So I'm gonna just leave that at that. We're working on something that's gonna be actually really, really beneficial for alternative

media, essentially. So I'm not gonna say much more than that, but we have started the initial drafting on that.

Wrap-Up and Future Plans

We're doing our dev calls every Thursday. So next Friday, I'll be adding updates from what Kendal and have been working on. And, I think that's pretty much it for this week. So if you want to watch the, GitHub, check the GitHub's projects. You can see little projects tab.

You should see the 3 projects. There's LLL-TAO, Nexus mobile wallet, and Nexus desktop wallet. We're gonna have all 3 of those so that we can start doing better task management. That's for the layman people that don't understand all the code and commits and all of that different stuff. So this should help you guys monitor progress and priorities and milestones and all of that, in the interim.

And yeah. And then next week, hopefully, we get a new beta out next week. This week is really a lot of it has been chasing these bugs, which I'm glad we found them because this was a this was a combination of a few that happened only in a very specific circumstance, which is good to catch these now before we get on MEXC and all that. We wanna make sure everything's solid there. So that wraps up for this development update for January 17, 2025.

I will be doing another update next Friday. And, also, any questions, feel free to post them in the community. We will be having, you know, interim text updates throughout the week and then another developer update next Friday. Like I said, I will have the indexing system revamping done by Monday or Tuesday. TradeOgre should be getting online fairly soon.

They needed to make one adjustment on their side. I believe XeggeX is getting online relatively soon as well. I did develop a feature for them, for showing the spending credit and stuff like that. So everything looks to be in a good state there. So, I'm not sure if they've opened up their deposits and withdrawals yet, but that should be relatively soon.

And trade over the same. Like I said, I will be working on this, and getting that is my next major priority for Monday, Tuesday. And then getting some of the more hard fork stuff done. And I'm gonna be really focusing on mobile lot next week because there's a use case, 2 use cases in South America that's gonna really need the mobile wallet. And this new media use case is gonna really need the mobile wallet.

And all of you really need the mobile wallet out and about. So I've got a couple things on that to get tidied up, and then we should be able to start getting that out and ready to go. So, I guess, until next time, everybody. I will talk to you again next week.