IRC meeting summary for 2016-01-21



Main topics

  • 0.11 backport release for chainstate obfuscation
  • C++11 update
  • EOL Policy / release cycles

Short topics

  • Recently a configuration option “-permitrbf” has been merged, which allows nodes to choose whether to replace opt-in RBF transactions or not. Some discussion ensued to change the default behavior of 0.12.0 and set it to false. As most participants voiced their opinion on the relevant pull-requests (#7386 & #7388) this wasn’t discussed further in the meeting.

  • There are some issues being filed concerning database corruptions in bitcoin core. Although the problem hasn’t been pinpointed to LevelDB, the long-term plan is still to switch to a new, well maintained database.

0.11 backport release for chainstate obfuscation


As some windows users might have experienced in the past, anti-virus software regularly detects values in the bitcoin database files which are false-positives. Thereby deleting those files and corrupting the database.
To prevent this from happening developers discussed a way to obfuscate the database files and implemented it last year.
While downgrading after upgrading is possible, if you start from a new 0.12 installation or you’ve done a -reindex on 0.12 it’s impossible to downgrade to 0.11 (without starting from scratch).

meeting comments

The proposed pull-request detects the obfuscation in 0.11 so it throws a relevant error message.
To avoid this in the future it would be good to have versionnumbers for the chainstate.

meeting conclusion

Release a 0.11 backport release right after the 0.12 final release to avoid confusion.

C++11 update


C++11 is an update of the C++ language. It offers new functionalities, an extended standard library, etc.
Zerocash had to be written with some c++11 libraries and some IBLT simulation code was written in c++11, which they want to recycle for the eventual core commit.

meeting comments

All changes needed for C++11 have gone in and it’s ready to switch.
Cfields talked to the travis team and all the features needed (trusty, caching) will be ready by the end of the month, so he proposes to wait until then to flip the switch.
Wangchun from f2pool indicated he would not run code that required a C++11 compiler. Noone knows what his exact concerns are. Wumpus notes the gitian-built executables don’t need any special OS support after the C++11 switch.

meeting conclusion

Wait for Travis update to switch to C++11.
Talk to wangchun about his concerns.

EOL Policy / release cycles


In general bugfixes, translations and softforks are maintained for 2 major releases. btcdrak proposed to makes this official into a software life-cycle document for bitcoin core in order to inform users what to expect and developers what to code for.
Pull request for this document.
Given the huge 0.12 changelog jonasschnelli asks whether shorter release cycles might be a good idea. Currently there’s a +/- 6 month release cycle.

meeting comments

Gmaxwell notes he doesn’t know how useful the backports are given there’s no feedback about them, but thinks the current policy is not bad. “I am observing the backports appear to be a waste of time. From a matter of principle, I think they are important, but the industry doesn’t appear to agree.”
If no one is using the backports, it might not see sufficient testing. People generally agree with the 2 major releases approach.

The cyclelength also contributes to frustration and pressure to get features in, as it won’t see the light of day for 6 months if it doesn’t make the new release.
For users it’s not really better to have more frequent major releases, as upgrading may not always be a trivial process. There’s also a lot of work going into releases.
If the GUI and wallet where detached there could be more frequent releases for that part.

meeting conclusion

Policy will be: final release of 0.X means end-of-life of 0.(X-2), which means a 1 year support on the 6 month cycle.


wumpus          Wladimir J. van der Laan
gmaxwell        Gregory Maxwell
jonasshnelli    Jonas Schnelli
cfields         Cory Fields
btcdrak         btcdrak
sipa            Pieter Wuille
jtimon          Jorge Timón
maaku           Mark Friedenbach
kangx_          Kang Zhang
sdaftuar        Suhas Daftuar
phantomcircuit  Patrick Strateman
CodeShark       Eric Lombrozo
bsm117532       Bob McElrath
dkog            dkog
jeremias        Jeremias Kangas

Comic relief

jonasschnelli   maaku: refactoring? We have a main.cpp. We don't need refactoring. :)
gmaxwell        jonasschnelli: can we move everything back into main.cpp? I'd save a lot of time grepping. :P

wumpus          #endmeeting
lightningbot`   Meeting ended Thu Jan 21 19:55:48 2016 UTC.
btcdrak         wumpus: hole in one
maaku           Did it right this time!
gmaxwell        Hurray!