Yeastplume - Progress update thread - May - Sept 2018

Update Friday Sept 21st, 2018

Going to be a very short one today, as all of the detailed information on what’s been happening is contained within the links.

  • The bulk of the week was taken up with finishing The Mega-PR for T4; basically finishing off the list of task I outlined in the post above. It’s ready to go, but is fairly consensus-smashing so needs to wait until we’re just about ready for T4. In the meantime, I need to keep it updated with the ongoing updates to master to keep it merge-able.

  • And the rest of it was moving straight into the other major bit of work needed for T4, Cuckatoo PoW changes. We need a few things here, namely validation, a way to mine it, and a test miner (to replace the plain-cuckoo one we have for development. So to that end I’ve done some work on a simple rust cuckoo miner based on @tromp’s original C code. It’s mostly there, but still a few issues to iron out. Once that’s working and the changes to validation is in place, I can probably a second large PR to change the PoW to cuckatoo based on the groundwork @igno.peverell has already done in https://github.com/mimblewimble/grin/pull/1534.

So that will be the focus for the next few days of work, as well as extending cuckoo-miner and grin-miner to incorporate cuckatoo solvers. Fortunately there should be no changes to any interfaces as a result (inputs to and solution outputs from cuckoo are the same,) so it should really be a matter of turning the cuckatoo solvers into grin-miner compatible plugins.

So with some luck, we might be within reach of T4 over the next week or so (even if we’ll only be able to CPU mine it in the beginning).

That’s it for now. Time for a weekend.

3 Likes

Update for Friday Sept 28th 2018 -

And going to be the last update for this thread, cause I’ll be starting a new one for the October-February “Contract”).

So aside from the odd segue to keep the T4 Mega-PR up to date, most of this week has been about trying to get a validator and test miner in place to support the upcoming cuckatoo algorithm. I’ll leave any discussions about mining and PoW plans in general for another (more heated) thread, but all I’ve been doing at the moment is trying to put supporting code in place to cover all cuckoo/cuckatoo possibilities.

So, without any ado:

  • The Cuckatoo PR puts support for Cuckatoo in place and refactors the Cuckoo verifier and test miner somewhat to allow for easier switching of algorithms as needed. I’ve keep the actual choice of miner compatible with T3 to avoid creating more merging headaches, so am able to merge it directly. I’ve redone the interface into them to be consistent with the C solvers, and, as an added bonus, I’ve written/rewritten the simple Rust solvers to support either u32s or u64s for edgepoints (the older version just hardcoded u64s). In theory it should allow us to run test-solvers with slighly less ram, but in practice I’m not sure this will have much benefit, (it make make it slightly easier to run test miners,) but at least it’s more consistent with the C solvers and should be easily upgraded when humanity’s transcendent core-mind can solve cuckoo-sizes that require 128-bit edge points.

And that is basically it. With this done, we should be able to start discussing when and how we’re going to put a T4 branch together and when we expect to release it. We generally want to minimise the window where we have distinct T3 and T4 branches, but hopefully this time we can do it without creating too many development annoyances.

There’s still one piece that needs to be in place before we can seriously think about T4 though, and that’s of course a way to actually mine Cuckatoo blocks via Grin-miner. I think my next move should be to start getting support for cuckatoo plugins in place, (which should mostly be config infrastructure anyhow, since the interface into them is the same,) and start getting some test cuckatoo miners in place based on @tromp’s ongoing work. It’s been a while since I’ve updated cuckoo/grin-miner anyhow, so it’s long overdue some attention, will hopefully get some QoL updates into it while I’m there.

That’s it for now, keep Grinning.

5 Likes

great,keep Grinning.