Bitcoin Unlimited Code Changes
gandrewstone merged 4 commits by deadalnix and gandrewstone from “deadalnix:cpp11” into “BitcoinUnlimited:0.12.1bu”. During the merge, 9 files were changed for a total of 581 additions and 3 deletions. These changes enable the usage of C++11 within the client, and were the final step committed after a list of prerequisites had been achieved. One piece of these commits was backporting from bitcoin Core developers iaanwj and theuni. The backports included the ability to perform C++11 builds and a compiler for the same. Another element of these inclusions were specific changes for ARM and Mac architectures made by gandrewstone, who collaborated with deadalnix on a few of these particular commits.
gandrewstone merged 1 commit by Justaphf from “Justaphf:12.1mingw64” into “BitcoinUnlimited:0.12.1bu”. During the merge, 1 file was changed for a total of 43 additions and 33 deletions. These changes update the dialogue in the document file “doc/build-windows-mingw.md”, and specifically see the inclusion of the build out instructions for the 64bit client for Windows users. When an individual wishes to build our their client, one easy way they can do so is the “MinGW”, or rather the “Minimalist GNU”, which is a free and open source software developed for windows systems and specifically utilized for creating applications. By utilizing this software, users can build out different applications to their exact specifications, so long as they have the proper guidelines. Previously, the document providing such guidelines for Windows buildouts only had instructions for the 32bit build. These changes see the inclusion of the 64bit instructions, and help the client become more viable and flexible for users with Windows operating systems.
gandrewstone merged 3 commits by sickpig from “sickpig:fix/gitian-fixes-0.12.1bu” into “BitcoinUnlimited:0.12.1bu”. During the merge, 3 files were changed for a total of 14 additions and 26 deletions. These changes all deal with Gitian building, and apply several fixes to the system. One issue that was present with Gitian building was that binaries for “bitcoin-qt” were installed in the file “depends/x86_64-linux-gnu/bin” rather than “depends/x86_64-linux-gnu/native/bin”, and this problem was corrected by providing the static build lines for bitcoin-qt. Another element of these changes was provided by developer theuni from bitcoin Core. This backport by sick pig addressed a potential error output of “unexpected operator” that might occur is a user were to input “make download”. The last element of these changes separates the 32 and 64 bit gitian builds from “aarch64/armhf”.
gandrewstone merged 3 commits by deadalnix from “deadalnix:prunedfunds” into “BitcoinUnlimited:0.12.1bu”. During the merge, 13 files were changed for a total of 353 additions and 25 deletions. These changes included backports from bitcoin Core developer instagibbs. The changes implement two new RPC’s or “Remote Procedure Calls” into the bitcoin Unlimited client, as well as updates the code for these calls to include language for the newest edition of Python. A remote procedure call is a means by which two systems communicate. It functions by first passing the input arguments from a user to a different system via a remote procedure, allowing the system the inputs are transferred into to perform its coded functions, and then return the outputs of its functions to the caller. A remote procedure call allows for systems to be dispersed across different platforms, computers, and servers, and is a very useful communication tool. The two different remote procedure calls added in these changes deal with “pruned funds” and how they are added to and removed from the client.
Bitcoin Classic Code Changes
zander committed “Add some more unit tests for the CMF parser” within 1 file for a total of 101 additions and 1 deletion. The bulk of these changes saw the inclusion of several new unit tests for the CMF, (Compact Message Format) parser. A parser, as implied, is a program that parses a set of data, in this case: the CMF builder. Including these new unit tests allows for much more detailed outputs after tests are run, making any potential future adjustments or improvements more accurate and pinpointed. The sole deletion seen in these changes is the modification of the copyright notice present in the Classic code to include 2017.
zander merged 2 commits by patobrien from “patobrien:develop” into “bitcoinclassic:develop”. During the merge, 30 files were changed for a total of 27 additions and 144 deletions. These changes remove a particular “sysperms”, or rather a “System Permission” configuration option that was present in the client. This permission applied certain parameters to different files if they fell under the sysperms jurisdiction. This configuration streamlined the client, but it had the potential to be problematic, as it could result in a large variety of files becoming unmasked. These changes removed the configuration, and instead changed the functionality that the configuration had to be the default, removing the option of unmasking files and keeping the client streamlined.
jamoes committed “Follow XDG Base Directory Spec for config files” within 1 file for a total of 10 additions and 1 deletion. These changes were made as an update to the configuration files of the client to allow compliance with XDG. XDG references freedesktop.org, and is specific for the interplay of technologies for the “X Window System” that is available to individuals who use this software. Since this software is only available for Unix like systems, (such as linux), these changes only affect the client downloads for this software.
zander merged branch “develop” into branch “master”. During the merge, 1 file was changed for a total of 47 additions and 10 deletions. This merging of the develop branch into the master branch moved various commits made over the several days prior across, bringing the master branch level with the develop branch. As the client describes its architecture: “The classic team uses two branches, a stable and a develop branch (called master). The stable branch is one that has only tested code on it and this is where releases are made from. The ‘master’ branch
is used for actual development and that branch should be used with caution”. This merge effectively elements the need for the branch titled “develop” in the teams GitHub, organizing and streamlining the teams workflow.
Bitcoin XT Code Changes
dgenr8 merged 2 of his own commits from “dgenr8:revert_2MB” into “bitcoinxt:master”. During the merge, 20 files were changed for a total of 83 additions and 899 deletions. These changes were made as a reversion to BIP109 that had been implemented in the client. As BIP109 describes, a one time increase in block size would be made from 1mb to 2mb with various limitations. This path for the team has been deemed non-optimal at this time, and these changes remove the full body of BIP109 from the client.
dgenr8 merged 21 commits by dagurval from “dagurval:univalue” into “bitcoinxt:master”. During the merge, 44 files were changed for a total of 1,154 additions and 2,767 deletions. These changes were backports from bitcoin Core, and serve as a conversion of the bitcoin XT source tree from the “json_spirit” library to “UniValue”. UniValue is written by Jeff Garzik, a longtime bitcoin and blockchain developer, and includes a C++ specific universal value object and a JSON library. These backports upgrade the source tree to this more bitcoin friendly JSON library. JSON is a simple data interchange format for the storing and sending thereof, and you can read much more about it here.
Bitcoin Core Code Changes
iaanwj merged 1 commit by dooglus from “dooglus:subtractFeeFromAmount-in-fundraw” into “bitcoin:master”. During the merge, 5 files were changed for a total of 117 additions and 14 deletions. These changes see the inclusion of an optional fee subtraction from the outputs of “fundrawtransaction”. Following more recent developments, it became possible for the client to filter the fees of a transaction from the code outputs so long as the user specified the parameters during input. Previously, the only two systems that could be set to filter fees from their outputs were “sendtoaddress” and “sendmany”. These changes bring this optional functionality to “fundrawtransactions” as well.
sipa merged 16 commits by theuni from “theuni:connman-locks” into “bitcoin:master”. During the merge, 4 files were changed for a total of 107 additions and 125 deletions. These changes are all pieces of a larger project that developer theuni undertook: speeding up and streamlining the network. This more recent chunk of work, pull #9441, is based upon and includes pull #9289. Following these changes being implemented on testnet, theuni describes theit functionality to: “cut network latency to ~50%. In some cases, more like 30%.”. This means that a fresh node will be able to synch with another node much faster, and more efficiently. One other issue these changes address was that of network lockup. In the comments of pull request #9415, theuni raised several concerns over a network loop with “ThreadMessageHandler”. Apart from one one element of the handler waking spuriously, there were also issues with “cs_vRecvMsg” being held in the loop until the end of message processing, causing lockup issues. These changes also resolve these network lockup problems, ensuring smooth operation and communication with the network.
sipa merged 14 commits by thebluematt from “TheBlueMatt:2016-12-compact-fast-relay” into “bitcoin:master”. During the merge, 8 files were changes for a total of 220 additions and 60 deletions. These changes take advantage of a prior pull, (#9026), and utilize it to communicate a compact blocks announcements to the client prior to the block being fully validated. In addition, these changes also allow a freshly created compact block to respond to “getblocktxn” requests from the client without needing to deserialize the block. This allows much faster updates of the blockchain without waiting on verification times. These changes also saw the brief cleanup of “net_processing” so that it no longer has construction access to “CBlockIndex*es”.
sipa merged 2 commits by gmaxwell and jnewbery from “gmaxwell:script_elide_verified” into “bitcoin:master”. During the merge, 8 files were changed for a total of 266 additions and 12 deletions. These changes provide a new option for block validation: “Assume Valid Block”. This new option “assumevalid” allows a user to toggle a specific block with already charted ancestors, essentially flagging the block as having valid script signatures before verifying it. This allows for a great increase in speed. One downside of this approach is that users utilizing older versions of releases will find that their clients synch much slower than this newer software. These changes also move “Checkblocks” and “checklevel” off the user interface and places them into the hidden debug options. Moving them makes room in the interface for the new “assumevalid” optional functionality, as well as helping users not mistakenly alter their client settings unnecessarily.