Segregated witness

freetrader

Moderator
Staff member
Dec 16, 2015
2,806
6,088
Why write "Exact details TBD" in BIP141's Deployment section?
This BIP is to be deployed by version-bits BIP9. Exact details TDB.
Source: https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#Deployment

If Core intends to specify compliance with BIP9, then those words should simply be removed.
Even today Core developers are still saying things like:

"75% is where the rules are enforced but only for those flagging support"
Perhaps the BIP141 is not yet clear enough about the activation threshold.
BIP9 is clear enough alright.
 

Lee Adams

Member
Dec 23, 2015
89
74
Maybe because:

Status: Draft
Also from what I can make out the code still activates at 75%

Code:
// Start enforcing WITNESS rules, for block.nVersion=5
// blocks, when 75% of the network has upgraded:
    if (block.nVersion >= 5 && pindex->nHeight >= chainparams.GetConsensus().SegWitHeight && IsSuperMajority(5, pindex->pprev, chainparams.GetConsensus().nMajorityEnforceBlockUpgrade, chainparams.GetConsensus())) {
        flags |= SCRIPT_VERIFY_WITNESS;
    }
It also looks like it is still BIP65's rules and not BIP9s.
 

johnyj

Member
Mar 3, 2016
89
189
And there is another couple of lines for IsWitnessEnabled, seems to be the same as CSV
bool IsWitnessEnabled(const CBlockIndex* pindexPrev, const Consensus::params& params) { LOCK(cs_main); return (VersionBitsState(pindexPrev, params, Consensus::DEPLOYMENT_WITNESS, versionbitscache) == THRESHOLD_ACTIVE); }

At least they are enforcing 95% threshold for soft fork, that is a good improvement over 75%, but that still does not solve the decision making problem: Why should these code get into bitcoin git at the first place? Who allowed it?
 

freetrader

Moderator
Staff member
Dec 16, 2015
2,806
6,088
I am beginning to wonder if Core is still pursuing an open source development model at all.

They are touting how well wallet developers are getting on with implementing SegWit, but they haven't even finalized the version bit which SegWit will be using despite the release supposedly happening in the next minor version.

Normally, when you want others to develop something, you give them a clear specification. Leaving out trivially decidable bits makes me somewhat suspicious that Core is feeding these details to implementors behind the scenes, while leaving their published specs incomplete.

It reminds me of the old days of Microsoft and its specifications.
 

bitcartel

Member
Nov 19, 2015
95
93
I don't think anything has really changed with regards to the development model. With Bitcoin, the spec has always been the code!
 

johnyj

Member
Mar 3, 2016
89
189
Not code, there are codes that was rejected like BIP101, so there is an unknown decision making process inside core developers that only a few guys decide which code goes in, this process has to be open and transparent, otherwise there will be forks from time to time