Please login or register.

Cutting wallet sync time

Who am I?

Developer of one of very few miners in crypto-currency world that did not recycle BTC CPU mining stack written 7 years ago. I am a freelance developer so this is my day job :). I program mainly in C and C++.

What?

Improvements that, taken together, will at very least double sync speed. Technical details are discussed on github.

This is subdivided into two separate goals.

Milestone one

Around 1.5 weeks of work - $2250 - 125XMR

Create and integrate into Monero a special version of the crypto-ops.c that uses amd64-64-24k for the bignum operations. This library will only be used for syncing wallet and only on amd64 builds (Note that both Intel and AMD cpus use amd64 instruction set. ARM cpus are not included in this proposal)

Milestone two

Around 1.5 weeks of work - $2250 - 125XMR

Improve multi-threading and data-feeding in the wallet itself. This will involve creating separate threads to decouple the fetching from processing in order to enable full cpu utilisation as long as the bandwidth (network, disk or DBMS) is not maxed out.

What is not included?

I will work on CLI wallet only right now. If there are any breakages in GUI wallet (might happen especially around milestone two), they will need to be fixed by the GUI wallet developer or as an extra goal at a later date.

Replies: 16
JollyMort edited 7 years ago Weight: 0 | Link [ - ]

Judging by the Github discussion, this could move to "funding required" section soon?

monerowallet posted 7 years ago Weight: 0 | Link [ - ]

I agree, reddit and github discussion shows enough interest to move to funding required.

fluffypony posted 7 years ago Weight: 0 | Link [ - ]

Note that, per the discussion with fireice-uk in a recent Monero dev meeting, Milestones 1 and 2 will be switched around.

pwrz posted 7 years ago Weight: 0 | Link [ - ]

Donated.

monerowallet posted 7 years ago Weight: 0 | Link [ - ]

Donated

antw081 posted 7 years ago Weight: 0 | Link [ - ]

Donated

JollyMort posted 7 years ago Weight: 0 | Link [ - ]

Donated

JollyMort posted 7 years ago Weight: 0 | Link [ - ]

It's at 50% now - does that mean work could start for one milestone considering there's now enough funds to cover the eventual payout?

Madmortigan posted 7 years ago Replies: 1 | Weight: 0 | Link [ - ]

Donated.

Reply to: Madmortigan
Madmortigan posted 7 years ago Weight: 0 | Link [ - ]

Or not... working out issues with BETA2 GUI wallet, THEN I'll donate...

Fireice_uk edited 7 years ago Weight: 0 | Link [ - ]

Thanks to all that donated! Fluffy, can you set the milestones and move it to work in progress?

JollyMort posted 7 years ago Weight: 0 | Link [ - ]

There's been some discussion about the special license introduced in the preview PR.

As a self-appointed mediator (lol) I'd like to chime in, in hope that we can remove friction here and to the mutual benefit of fireice-uk and the Monero project.

I understand that there's a serious lack of trust between fireice-uk and some core members and this special license doesn't help it. I also understand that some people's patience is being stretched in dealing with fireice-uk's special way of going about certain things. I'd like to see this job successfully completed as I think that a x4 speed-up would be rather nice to have, and I've started to like the guy. More importantly, my heart is with the project and I believe that doing this helps the cause.

The situation is like this:

  • we can't have PRs with a special license as it goes against principles of the project.
  • since fireice-uk doesn't trust that upon completing the job he will get paid and wants to protect himself somehow, he doesn't want to release the work with the open license until he receives the funds. While unfortunate, I think we can still make it work without too much drama and wasting any more time.

I'd like to highlight this quote by smooth:

> Closing the PR does not mean that the work doesn't get completed, nor that fireice doesn't get paid, nor that the code doesn't get merged into the repo (under the appropriate license).

> This is more a question of process and maintaining a highly productive culture than anything else. There isn't even anything wrong with being absolutely focused on being paid, but there are different ways to do that, as I commented earlier, and gave the example of the GUI work, where there was a formal contract. Though it is a bit late to start bringing that up since no such special requirements/structure were mentioned in the FFS proposal. I would hope that it isn't a blocker on any of them items in the first paragraph, and there is no reason it should be.

So how about this. Fireice-uk can have the preview code hosted in his personal repository, and invite people to give it a brief check just to see that there won't be major objections to merging the final code (with the Monero project license, of course). I figure that was the main motive behind the current "preview" PR, so that people can look at it now and someone can't later, when the job is done and his time already spent, say something like "ok it works but you didn't do it like x or y - denied, k thx bye and thanx for the free code". I think that fireice-uk's fears are unwarranted since the project adheres to C4, which means merging it as long as it doesn't break stuff and is not malicious. Even if he did annoy some people, the code itself - if as good as advertised (I can't really judge this myself) - doesn't have such burdens.

Anyway, how about this "process":

  1. fireice-uk continues the job under his personal repo with his special license. He can invite people to take a look at the code just to be sure it won't be rejected at the end on technical grounds.

  2. Once completed and ready-to-merge, the deliverables* tarball signed by fireice-uk should be uploaded here (does the forum support attachments?) or somewhere else from where it can't be removed later. Why? Since he doesn't trust the project, the project shouldn't trust him not to escape with the code after the funds are released =) The code must be buildable and the built binaries should work as advertised so that it can be evaluated whether it satisfied the milestone. *the signed tarball should contain the complete working repo with the wallet scan improvement and still under the special license. The license must also specify an address + private view key so that it can be "transformed" to Monero project license by the sole action of releasing the milestone funds to the address.

  3. Funds are released to the address specified in the license. The TX ID is posted here, and anyone can check that the funds were indeed released to the address fireice-uk specified in the signed license. It will also be a nice example on how monero TX-es can be independently audited =)

  4. Since 3. means that the condition in the special license (in the tarball from 2.) is satisfied, now anyone is free to take that tarball, remove the special license text, and merge it to the Monero project under Monero project license.

Phew. Really, I hope that in future dealings with fireice-uk there can be some trust and this cumbersome process avoided. If he proves himself, maybe the project can use him for other tasks? Maybe earning some monero and having a stake in its success will give him some incentive to occasionally participate in similar fashion as other contributors. That's my future expectation and another reason why I'm involving myself like this.

Finally, @Fireice_uk, if you'd like to have a casual chat with the guys but don't like communicating over IRC for whatever reason, you can PM your e-mail to https://www.reddit.com/user/needmoney90 to get a Slack invitation, or join #monero-dev via the Matrix network (https://riot.im/). Getting to know people does help to build a healthy relationship and build some trust.

Fireice_uk posted 7 years ago Weight: 0 | Link [ - ]

Thanks for stepping in, it is always nice to have a third party to look at both sides of the argument. It is true volunteers (i.e. people who got in way too late to be paid in a meaningful way through asset growth) like you that make me think that Monero has a bright future.

I don't have any problems with those steps. I don't think the forum supports attachments, but I don't mind emailing it to the official email. Also due to the decentralised nature of how git works, every reviewer would have a checked out copy anyway.

One thing to keep in mind is that 4x is my estimate of the final result. Formal specification after some feedback is here - https://github.com/monero-project/monero/issues/1828#issuecomment-284874390 (I didn't put either in the post above as it would just serve to confuse non-technical users).

JollyMort posted 7 years ago Replies: 1 | Weight: 0 | Link [ - ]

@Fireice_uk regarding your resignation from this FFS, and to make it without loose ends, would you be willing to put a price tag on the code released under the preview PR so future contributors could continue to build on top of it?

Of course, people who funded this FFS would need to agree to release it for the purpose, too.

Reply to: JollyMort
Fireice_uk posted 7 years ago Replies: 1 | Weight: 0 | Link [ - ]

That would be possible, but given that the devs in https://www.reddit.com/r/Monero/comments/66cxi1/announcement_wallet_concurrency_improvements/ didn't have enough of the flames yet, I will put this off until the next developer specifically asks for it.

Reply to: Fireice_uk JollyMort
JollyMort posted 7 years ago Weight: 0 | Link [ - ]

For the record, that is one individual contributor, just like you =)