Skip to content

Boog900 Cuprate FCMP++ support (Rust Monero node).

Boog 900 requested to merge Boog9001/ccs-proposals:boog into master

Who

I am Boog900, you can see my last CCS here.

What

I am going to integrate FCMP++ into Cuprate. By the end of this CCS Cuprate will participate in all FCMP++ (test/stress)nets.

Last CCS I implemented wallet RPC into Cuprate, and then we put out a preview release for beta. In our performance tests Cuprate's RPC performs much better than monerod's.

Here is the plan for this CCS:

Tree building

I laid out a plan for this here: https://github.com/Cuprate/cuprate/issues/591. The core of that proposal is keeping the tree manager as an independent sub-system. This means that when syncing it will not be waited on to advance. This should significantly speed up tree building while fast syncing or syncing pre-FCMP blocks. It also means that when handling gossiped blocks we do not need to wait for the tree to advance before freeing up the blockchain manager. The tree manager will only be waited on if we need a root it has not yet generated.

By storing each layer in a tape we also get all the benefits of the tape database: being able to get all child chunks that need hashing in 1 read operation. In practice, we won't get all at once but the ability is there. Also, the fast writes. The tree fits perfectly into the tape model.

Tx-relay V2

We have not yet implemented this into Cuprate. I have been keeping up and helping where needed with the impl in monerod. I do have ideas on how we can do this efficiently.

Tx/Block type updates

I will work on updating the types in the monero-oxide crate to support FCMP++. The underlying structures are there, they have just not been integrated yet.

Tx/Block verification

The consensus crate will need updating to support the new proofs and consensus rules that have been added. I will add new rules to the consensus book: https://monero-book.cuprate.org/

RPC changes

I will add the new endpoints needed for FCMP++, and make the changes needed to the current ones we have.

Other misc stuff

Reviewing PRs to Cuprate and fixing bugs etc.

Funding

$70/hr for 540 hrs at $375/XMR: 100 XMR

Merge request reports

Loading