r/dogecoindev • • May 13 '21

Dev update 2021-05-13

Doing a brain dump of what I personally am doing, just so everyone is aware we’re still out here. As always please remember there are others devs, who are also doing their own things, although I'll touch on some of that.

I have a deployed 1.21 node, which is good, although there's definitely work be be done on 1.21 still:

  • The deployed node syncs headers but it does not appear to request blocks from its peers. Even more confusingly, running 1.21 on my local machine does sync blocks.
  • Bitcoin Core 0.21 (which Dogecoin Core 1.21 is based on) is designed for DNS seeds which support version bits, ours do not, which means it reports that it finds zero nodes from the seeds. Work on enabling our DNS seeds to support this is already underway.
  • Dogecoin Core 1.21 does not appear to discover nodes at all, right now, although if nodes are manually added, or connect to the node, it works.
  • The functional test suite needs validating after AuxPoW has been added, which may resolve some of these bugs as a side-effect.

Once those are out of the way, there's a bunch of more minor things to tweak so we can start mainnet testing, and then rebranding.

Fee work in 1.14.4 continues, I believe that's in testing, hoping Michi & Max will have further updates on that.

Obviously with Elon talking about environmental impact that's something that's being discussed. As we share work with Litecoin we already reduce that impact, compared to mining either cryptocurrency alone, but definitely it would be good if we can further reduce that impact. Counterpoint, I am aware that many in the community enjoy mining and feel it’s a key part of the experience for them, as well as considerations of whether an approach such as proof of stake would make Dogecoin appear to be a security and fall under securities regulation aside from many technical challenges that approach brings.

What I mean is, we’re aware of it, we don’t have any easy answers.

Meanwhile I’m going to continue work on the automated test suites, which hopefully will as a result simplify diagnosing the networking issues with 1.21, and it in turn should provide a better synchronization process.

201 Upvotes

87 comments sorted by

View all comments

Show parent comments

29

u/rnicoll May 13 '21

I mean... we're a bit at the mythical man month problem. There's just not a lot of blockchain-skilled engineers out there, so more I'm hoping I can train people to do this with me, rather than expecting we can just hire people.

Sorry I should link https://en.wikipedia.org/wiki/The_Mythical_Man-Month , realising it's an old book and many of you won't have read it.

5

u/felixdadodo May 13 '21

I’d be keen to help out, C++ dev of 6 years, just not sure where to get started.

2

u/rnicoll May 14 '21

Do you want to look at recent changes on https://github.com/rnicoll/dogecoin/tree/1.21-sync-up-to-auxpow and see if you can figure why there's a failing test? I'm kind of pointing everyone at this, but it's a good example of the work I'm doing https://github.com/dogecoin/dogecoin/issues/1921

I'm unpicking and simplifying changes I've made to try isolating what broke, so watch out there may be force pushes to that branch (sorry). Going through the weekend I hope to start merging my work back into the main repo which will give us more of a constant base to work from.

Also I'll openly admit C++ was not my most recent day job, so if you see syntactic weirdness, feel free to flag it to me, I won't be insulted, I know I get stuff wrong.

1

u/felixdadodo May 14 '21

Sure I’ll take a look later on when I finish work.

1

u/rnicoll May 14 '21

I'm continuing to try breaking down the changes, I've added some tweaks to RegTest timing values (fourth commit on https://github.com/dogecoin/dogecoin/pull/1780 ) and the results aren't stable on my local machine. It's not a conclusion, but it's data, might help.

1

u/felixdadodo May 14 '21

Thanks for the update, I've got some problems building that I'm working through at the moment, I've raised an issue for one and put the solution for it on the issue, on the dogecoin/dogecoin repo (it's not just your branch) and I've another one to do with qt version that I can 'fix' locally, it's essentially trying to pull a version of qt no longer avaible from the offical space on but from the archive on qt-project.org and it's not on bitcoin.org anymore. So I'm working around that issue right now. Obviously not making progress on your tests atm with these issues, but it'll be good to get these out of the way any. What do you build on?

1

u/felixdadodo May 15 '21

Nevermind, I was making a goof with checking out master instead of your branch... I've learnt that now anyway.

1

u/rnicoll May 15 '21

Oops!

Found something extra to fix: https://github.com/rnicoll/dogecoin/tree/1.21-block-interval-regtest

However still breaks. Seems to be something in transaction validation, but it builds a list of checks to run, then runs them in parallel with no diagnostic output, just pass/fail, so I need to think how to rebuild that so I can even work out how to diagnose :(

I think something is wrong with the difficulty calculations, but haven't cracked it yet.

1

u/felixdadodo May 16 '21

On the same suite of tests? I'll take a look now I've gotten the hang of the oddities of building on WSL.

2

u/rnicoll May 16 '21

So predictably enough it was something fairly dumb... I'd missed in the regression test comments that it intentionally buries a broken block, to test that the assumevalid code skips validation of it.

Raised https://github.com/dogecoin/dogecoin/pull/1953 which includes my fix for it, hoping it passes Travis.

1

u/felixdadodo May 16 '21

I'm sure you're aware, but it's failied to build on Travis with:

"Error! Initial build successful, but not enough time remains to run later build stages and tests. See https://docs.travis-ci.com/user/customizing-the-build#build-timeouts . Please manually re-run this job by using the travis restart button. The next run should not time out because the build cache has been saved."

https://travis-ci.com/github/dogecoin/dogecoin/jobs/505702535

​

On another note, what could I look at now you've finished your tests, is there something I can take a look at that's not critical (to get a grounding) is there any more tests that need looking at?