I know, I know – I’ve been awfully quiet recently …. new job, new responsibilities, plus several paper deadlines I’m working on (for my day job), and of course, the usual domestic emergencies on top of that. Basically, I’ve been so much under water that I hardly even followed developments in crypto-land any more (let alone having had the time for any serious development…) – and basically, if you guys had not pointed it out to me I probably would even have missed the upcoming changes.
Anyway – you guys did send me a lot of messages recently, so at least I got reminded of the upcoming monero algorithm change (sometime next week, if my math is right). And to say so up front: Yes, I am working hard to try and intercept that. Over the last week or two, I finally did dig through some of the forums (monero, reddit,etc), and look through the existing miners (cpuminer, stak, xmrig, monero reference codebase) to at least figure out what this change will be, and let me say, that alone was an adventure – to put it bluntly: how the heck could we – as a community – end up in a state where each and every post and/or miner seems to be calling this by a different name? Cryptonight R? Random? CN-R? CNvR? Monero? And even better, variant 4 and CNv4? … Four? Seriously? When the last one was either v8 or v2, depending on who you asked? Couldn’t we simply have agree on a serial numbering – or if we can’t agree on that, at least year/month (19/3), or a Ubuntu-like CN19.02, or anything that makes sense? We are working on a technology that requires literally millions of highly distributed machines all over the world to run a parallel consensus protocol, in real time, to jointly agree on the state of a distributed blockchain, and we can’t even agree on an f-ing name for the algorithm we run??? Really? Apologies for my ranting, but I just had to get that off my chest.
Anyway – enough of the ranting, there’s a job to do. As said above, I have already looked through all the reference codes, and think I have a pretty good idea of what has to be done. Bad news: It’s a lot. Good news: I got at least some of that done already. Getting it to do the right thing (and to do it fast) – well, that’s another matter, but I’m still optimistic that I’ll be getting there in time. So far I’m already tracking the blockchain height, have hooked up the random-math code generator every time the height changes, have added the plumbing to pass that through to the miners, and am actually already calling at least an interpreter for that code. It’s still producing wrong hashes on the test net, but at least it’s doing something.
Of course, I do realize that having most of it working isn’t good to man or beast – a slightly wrong hash is just as wrong as a completely wrong one – but still: I’m reasonably optimistic that I should be getting those fixed in time. I’ll still have to hook up some sort of compiler for that code, but that should (knock on wood) actually be the simpler task … well, as they always sayd: we’ll see.
Anyway: Long story short – I’m working on it.
With that … happy mining!
PS: Oh, and in case you were wondering about the title: To make at least some partial fun of all the naming mess I decided that for my miner, I’d use a name that tries to digest as many of these random names as possible. So for me, “xmr-v4r” it’ll be!
4 thoughts on “Upcoming Monero xmr-v4r”
COULDNT AGREE MORE RE: ALGO NAMING CONVENTIONS.
Literally drives me insane.
My proposal: Adopt the ubuntu style: 19.04 is the april 2019 version – so this one should be monero 19.03. If anybody is involved in this community, feel free to suggest that 🙂
The correct version numbers after original CryptoNight were CNv1 and CNv2, with the original being CNv0. 7 and 8 are the version number of the Monero blockchain, not the version number of the PoW algorithm. CNv1 was released with blockchain version 7, CNv2 was blockchain version 8. There is no CN7 / CNv7 / CN8 / CNv8.
Also, 24 hours after the version 8 hardfork, the network silently upgraded to version 9. Likewise the PoW upgraded from CNv2 to CNv3 at the same time. (But in fact, CNv3 is identical to CNv2 so nobody noticed the change in version numbers.)
This is why the next algorithm is correctly named CNv4. Its development name is Cryptonight-R, and we didn’t know if it would be deployed as the next version or not until late in development.
LikeLiked by 1 person
Wow. That’s the first time ever that I found a coherent explanation that makes sense! Thanks indeed! (I particularly like that ‘v9′ thing – I had no idea!).
That said, I’d still argue that there is some work to do on all that naming front. First, that information you provided is super-helpful, but not easy to find even for somebody that looked for it, so I dont’ even want to imagine what a “average” user might think.
Second, though your explanation makes total sense (in particular, from an engineer’s standpoint) I’d still argue it’s too complicated for the end user. E.g., if “nobody noticed the change in version numbers (from v2 to v3)” then the corollary of that sentence is simply “everybody sees us going from v2 to v4” – which means they get confused.
Anyway – I don’t want to start a giant argument here; nor to dis’ anybody. I just really like Monero (_so_ much more than any other coin) that I feel we’re doing ourselves a disservice by confusing potential end user. Either way – thanks for that explanation, it’s been super-helpful!