133 XMR of the remaining milestone has been sent to vtnerd for his work on completing this project; the remaining 867 will be delivered to the General Fund

First and foremost, this is more or less a formal proposal, since there is still about 5K XMR “stuck” in the forum funding system. This is due to another developer not delivering. The other proposal can be seen here:

https://forum.getmonero.org/9/work-in-progress/2355/improved-nvidia-mining-software

It also states:

“FYI - This a non-refundable system. If, for whatever reason, things don't work out, the funds are kept for future developers to receive.”

Therefore, we thought it would be appropriate to direct these funds to tewinget to work on 0MQ. However, I have created this proposal to get some input from the community and also to see if no one (or at least no majority), and in particular the funders of the other proposal, is opposed to it.

WHAT

Predominantly 0MQ, which is going to replace our interprocess RPC with IPC using 0MQ. Basically the first priority is to replace the RPC communication between the daemon and client apps (simplewallet, blockchain_* tools) and also create a stub application (monero-rpc-deprecated) to still be able to serve the calls that used to be in the daemon. Furthermore, all new code will be documented and new tests will be written.

WHO

I am writing this on behalf of Thomas Winget (tewinget), who has been contributing to the Monero codebase since approximately June 2014. His largest contribution is the migration from storing the blockchain in a static, binary format to storing the blockchain using a database API, as well as two BlockchainDB implementations (LMDB and BerkeleyDB). In addition, he documented and cleaned up the source code. Other contributions of his can be found via the network graph on Github or simply looking at his fork.

As a side effect of the work he has done already on Monero, he is rather familiar with most of the codebase. This puts him in a good position to work on 0MQ. Furthermore, he will further cement the knowledge he has of the codebase and gain knowledge in areas he is less familiar with, enabling him to efficiently implement new features in the future and guide others who may have questions regarding a specific module.

WHY

First and foremost, 0MQ is way more efficient than the current RPC. In addition, 0MQ will enable walletnotify / blocknotify functionality. It will also enable a new RPC API implementation and a Bitcoin compatible RPC API implementation. The latter will arguably make it easier for merchants / exchanges / wallet services to implement Monero.

PROPOSAL AND MILESTONES

At first, tewinget is going to spend approximately 10 hours per week working on 0MQ and if possible more. In addition, the hours might increase in the future. His rate currently is 25 XMR, which is approximately 22$, taking the 30 day weighted average dollar price from:

http://moneroprice.i2p.xyz/

NOTE: This proposal was actually written approximately 2-3 weeks ago and tewinget also basically started to work on 0MQ then. However, Fluffypony was travelling and was therefore unfortunately unable to review the proposal. Back then, we were bouncing around 85-90cents. Bear in mind that the developer also takes a huge risk by taking payment in XMR. For all we know, the price would have slided down further, like the last time (i.e. autumn / winter) Bitcoin went up significantly. I genuinely hope the community doesn't have any issues with these, because 0MQ is a critical part of our ecosystem.

tewinget will first start working on 0MQ and provide some more concrete milestones (with the hours it is going to take) further on. In addition, notes will be kept which will show how many hours was spent on everything. For now, payouts will be made monthly corresponding to the hours worked.

You can follow his activity here:

https://github.com/tewinget?tab=activity https://github.com/tewinget/bitmonero/tree/zmq-dev

As you can see he is already actively working on 0MQ

P.S. tewinget also briefly discussed in the dev meeting yesterday how things were going. I hope to push out the logs tonight so you can all read that as well.