This post will answer what happened in Bitcoin Classic since the last report
In an continuing push to make the Bitcoin Classic client the best one to
use on Linux we have seen some support added some time ago for the
XDG Base Directory Spec for config files.
Continuing in that direction Contributor Stephen McCarthy has been hard at
work with the command-line parser code.
The code we inherited when we started Classic is shared between various projects, in all of those a set of problems are present which make sysadmins and operators life a lot more difficult.
Passing in a not-existing config option or command line argument was
silently ignored. So typos would go undetected. The most common problem
was that when you added a
- to a config file option you would have your
option silently ignored.
Flags usage was very inconsistent and not very predictable. The only solution that consistently worked was '-flag=1', but sometimes -flag works too and the most fun problem was that '-flag=true' would more often than not end up turning off the flag.
Inputs were not validated at all. If you passed something that wasn't numbers to a option that expected numbers, the effect typically was that the option would be set to zero. At best you might get a warning in the logs.
In the last weeks, Bitcoin Classic contributor Stephen McCarthy fixed all those issues and many small ones as well. If any command-line option is passed in that doesn't exist, or is expecting a number and you passed something else, you will get an error and your node won't start. Additionally, yes/no flags become more intuitive and will work properly with any of 0/1, false/true and also with yes/no.
Tom Zander committed a small change to prepare for a world where block-size
is no longer a centralized rule, allowing for a healthier network;
Punish nodes relatively for oversize blocks
In Flexible Transactions we have undefined tokens which are ignored by current software if present. This allows nodes to stay compatible when new tokens are invented. For miners this policy rule should likely be turned on so transactions that use tokens that are not yet defined will be rejected.
Tom Zander imported the "Expedited forwarding" technology to Classic's master branch commit.
Tom Zander created a new class which now becomes responsible for all orphan transaction handling. This is one step towards solving the problem of having no code structure and everything in one big 5000 line sourcefile. This a non-functional change, aimed to making the code better to maintain and easier to understand. commit.
Tom Zander did a refactor of the blocks database handling code. Similar to the orphan code above this is a non-functional change that moves code to be easier to understand and maintain. commit, commit, commit.
Amaury Sechet created a new PR which updates the 3rd party library secp256k1 to a newer version. We also realised that it is confusing for many that imported libraries are placed in the src directory as that makes the fact that they are snapshots and developed elsewhere not very obvious. But no solution has appeared at this time.
A PR by Stephen
McCarthy was merged and had the purpose to
Fix assertion error on
-disablewallet, fixing a regression introduced by another dev just a
couple of days before.
Another PR by Stephen McCarthy was merged and introduced a change that made 'Abort' the default button on the dialog that is very destructive, and a user input mistake there could cause many hours of work to recover from.
Tom Zander created a commit with the subject
Make splashscreen work on
Tom Zander imported the historical release notes on the website; https://bitcoinclassic.com/news/
If you are interested in the Bitcoin Classic project, please look at our community page for how to get involved.