I forgot to preface my post with “A short progress report”.
In the 0.9/10/11 series, nearly all of the network-related coin- and chain-specific parameters such as
pchMessageStart,
pszTimeStamp,
rpcport, etc. have been migrated out of the codebase and into a separate file: “chainparams.cpp”. This approach was introduced late in the 0.8 series and one side-effect of this rationalisation is that it allows the coin to be (comparatively) cleanly migrated across upgrades. In VCoin's case, the elderly codebase of the OP meant that this marshalling task had to be done from scratch, hence the preliminary port to 0.9 as a means of establishing --- and, importantly, testing --- the VCoin-specific content of the chainparams file.
The net result of this is that the process of creating a parameter-variant clone of Bitcoin Core 0.11 is made vastly more controllable. As this is a p2p project, m’peers may appreciate a walk-through.
1. Clone the code: git clone
https://github.com/bitcoin/bitcoin2. Create a “vcoin” branch and check it out as the working space
3. Change each
implicated instance of the string “Bitcoin” to “VCoin”, observing both case and word boundary conditions and
not changing every single instance of
CBitcoinAddressString into, e.g.
CCrapcoinAddressString throughout the codebase (okay, it technically won’t/shouldn’t affect the execution but even so, yuk).
4. Copy chainparams.cpp from VCoin 0.9, adjust to reflect the upstream re-factorisation that was done between 0.9 and 0.11.
5. Compile
6. Run tests, commit the re-branding and the re-parameterisation, job done.
It’s not
quite as straightforward as that, there are a few scattered parameters/variables also to be changed but it’s a closely-defined task and hence relatively trivial to perform programmatically.
Now that I have all the required values, I shall repeat the walkthrough and replace the vcoincore repos with the cleaned-up version which tracks the upstream release schedule, i.e. offering a vcoincore-0.11 release as well as a vcoincore-master.
In this instance, a hardfork would manifest itself as the blockchain splitting into a vcoincore blockchain mined only by 0.11 nodes and a vcoin blockchain mined only by 0.8 nodes.
It is up to the community to prefer one codebase over another. It would be collegial to canvass Bleutrade’s perception and publish it here. I'm given to understand that certain recent developments in the Bitcoin codebase are quite significant in terms of developing new services.
In essence, the only notable differences between Bitcoin Core 0.11 and VCoin Core 0.11 are that VCoin offers 1bn coins vs Bitcoin’s 21m, a block reward of 50 VCN vs 1000 BTC and a block time of 30s vs Bitcoin’s 600s. That's about it, not even the halving schedule differs.
Keeping it this tight opens up the possibility of a later rebase to BitcoinX (assuming no significant regression involved).
There is just one small piece of legacy Zetacoin code to be integrated but I've yet to properly understand its role in the model.
Cheers
Graham