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:
- By Pieter Wuille at the San Francisco bitcoin developer meetup (more technical)
- By Andreas Antonopoulos in the let’s talk bitcoin podcast (less technical)
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.