We need to create NS records to point to the seeders. The seeders have A records but the client needs NS records that point to those A records. We can then verify that the DNS seeders are working correctly and update the records in chainparams.cpp to the NS addresses. The new NS records will not interfere with the old A records.
We've added an empty catch statement for reading the subvert without changing the read function. We should not encounter the previous "end of data" error on this new branch.Have to make a note of future versions.We've told the client to set the subver string based on the PROTOCOL_VERSION, when incrementing a release increment the PROTOCOL_VERSION accordingly. We would assume that come 2.9 this bespoke handling of subver could be dropped.
It's a bit cumbersome but a temp fix until some future version and the main thing is that it works as does not interfere with reading serialised data.
Time to add staking
We've already got the code to copy across.
The client thinks it is staking. If it generates a block we'll know for sure, or when we see errors in the log about the block it though it generated.
We've added a small fix for TXs, another bespoke feature is to set the TX time to the network time, do not do this and the network will possibly reject the TX. We've successfully sent a TX from 2.7 to 2.6 and then back from 2.6 to 2.7. At this point in the previous codebase the client could not send or receive but that was likely due to the "end of data" error which is now rectified.
Some commits should be combined. We can work on a perfect history once it is working. Compiling and testing with an existing wallet, it should stake though you will not see anything in the log unless you set the debug argument.
Next up is updating RPC for PoS. Then you could at least check staking via the console/cli.
Then PoS in the Qt GUI.
Then acceptblock/checkblock and any other bespoke checks in the original client that needs to be restored.
Once done we may need to find some beta testers with big wallets that stake regularly to give feedback.
Code for RPC and Qt is done in the master-0.13-experi branch though do not build from that branch as it has issues that have been resolved in the 0.13 branch.