IRC meeting summary for 2016-01-14

Overview

Logs

Main topics

  • Versionbits
  • Status of segregated witness
  • Status of 0.12 bitcoin-core release
  • Consensus code encapsulation (libconsensus)
  • Locktime PRs

Versionbits

background

BIP 9
Currently softforks have been done by the isSuperMajority mechanism, meaning when 95% of the last 1000 blocks have a version number higher than X the fork is deployed.
A new way of doing this is currently being worked on and that uses all bits of the version number, appropriately being called versionbits. So instead of a fork happening when the version is larger than (for example) 00000000011 (3), a fork happens when (for example) the 3rd bit is up (so 00100000011).
This way softforks can be deployed simultaneous and independent of each other.

meeting comments

Morcos is volunteering to take over championing this proposal as CodeShark and Rusty are busy on other things. He’ll review both implementations and then decide on which implementation he’ll base his work upon.
He notes that if non-core implementations are trying to do something else (and are using nVersion for their signaling) while segregated witness is being deployed, not conflicting will be important so users of other versions can also support segregated witness.
If there’s an agreement with this approach it’s necessary that versionbits is ready before the segregated witness deployment.
jtimon has some suggestions to make the implementation less complicated and more flexible.

meeting conclusion

Morcos will champion the new reference implementation for BIP9: Versionbits.

Status of segregated witness

background

Segregated witness changes the structure of transactions so that the signatures can be separated from the rest of the transactions. This allows for bandwidth savings for relay, pruning of old signatures, softforking all future script changes by introducing script versions and solves all unintentional forms of malleability. During the last scaling bitcoin conference Pieter Wuille presented a way of doing this via a softfork, and proposed increasing the maximum amount of transactions in a block by discounting signature data towards the total blocksize.
Segregated witness is part of the capacity increase roadmap for bitcoin-core.
More detailed explanations:

meeting comments

Segnet, the testnet for segregated transactions, will be going to it’s 3rd version soon.
Luke-Jr has assigned all the segregated witness BIPs to a 14x range. Currently there are 4 BIPs: 141, 142, 143 and 144.

Status of 0.12 bitcoin-core release

background

Bitcoin Core 0.12 is scheduled for release around February and introduces a lot of fixes and improvements. (release notes)
There’s a release candidate 0.12rc1 available at https://bitcoin.org/bin/bitcoin-core-0.12.0/test/

meeting comments

Luke-Jr feels PR’s #7149, #7339 and #7340 should have been in 0.12, but are now really late and possibly impractical to get in.
For gitian builders: 0.12rc1’s osx sig attach descriptor fails due to a missing package (that’s not actually needed). Rather than using the in-tree descriptor, use the one from #7342. This is fixed for rc2.
“fundrawtransaction” and “setban” should be added to the release notes. At some point it makes more sense to document these commands elsewhere and link to it in the release notes, as they’ve become very lengthy.
Wumpus thinks the release notes have too much details, they’re not meant to be a substitute for documentation.

meeting conclusion

Close PR #7142 as it’s now part of #7148
Everyone is free to improve on the release notes, just submit a PR.

consensus code encapsulation (libconsensus)

background

Satoshi wasn’t the best programmer out there, which leaves a pretty messy code. Ideally you’d have the part of the code that influences the network consensus separate, but in bitcoin it’s all intertwined.
Libconsensus is what eventually should become this part. This way people can more easily make changes in the non-consensus part without fear of causing a network fork.
This however is a slow and dangerous project of moving lots of code around.

meeting comments

jtimon has 4 libconsensus related PRs open, namely #7091 #7287 #7311 and #7310
He thinks any “big picture branch” will be highly unreadable without merging something like #7310 first.
The longest “big picture branch” he currently has is https://github.com/jtimon/bitcoin/commits/libconsensus-f2
He’ll document the plan and “big picture” in stages:

  1. have something to call libconsensus: expose verifyScript. (Done)
  2. put the rest of the consensus critical code, excluding storage in the same building package (see #7091)
  3. discuss a complete C API for libconsensus
  4. separate it into a sub-repository
    Wumpus notes he’d like to start with 3 as soon as possible as an API would be good to guide this.

meeting conclusion

review #7091 #7287 #7311 and #7310

Locktime PRs

background

BIP 68 Consensus-enforced transaction replacement signaled via sequence numbers.
BIP 112 CHECKSEQUENCEVERIFY.
BIP 113 Median time-past as endpoint for lock-time calculations. In short: BIP 68 changes the meaning of the sequence number field to a relative locktime. BIP 112 makes that field accessible to the bitcoin scripting system. BIP 113 enables the usage of GetMedianTimePast (the median of the previous 11 blocks) from the prior block in lock-time transactions.

meeting comments

We need to make a choice between 2 implementations, namely #6312 and #7184.
PR #7184 is a result of the CreateNewBlock optimisations not being compatible with #6312.
jtimon thinks it could be merged relatively soon as #7184 is based on #6312 which has plenty of testing and review.

meeting conclusion

Close #6312 in favor of #7184.
Morcos will fix the open nits on #7184
btcdrak will update the BIP-text

Participants

wumpus			Wladimir J. van der Laan  
btcdrak			btcdrak  
morcos			Alex Morcos  
jtimon			Jorge Timón  
Luke-Jr			Luke Dashjr  
MarcoFalke		Marco Falke  
jonasshnelli	Jonas Schnelli  
cfields			Cory Fields  
sipa			Pieter Wuille  
kanzure     	Bryan Bishop  
droark			Douglas Roark  
sdaftuar		Suhas Daftuar   
Diablo-D3   	Patrick McFarland  

Comic relief

19:54	wumpus			#meetingstop  
19:54	wumpus			#stopmeeting  
19:54	btcdrak			haha  
19:54	MarcoFalke		#closemeeting  
19:54	wumpus			#endmeeting  
19:54	lightningbot`	Meeting ended Thu Jan 14 19:54:26 2016 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)

Credits

This summary was originally compiled by Stefan Gilis aka “G1lius” and posted to the bitcoin-discuss mailing list with the disclaimer “Please bear in mind I’m not a developer so some things might be incorrect or plain wrong.” and placed copyright in the Public Domain.