IRC meeting summary for 2015-10-29
- Main topics
- Upcoming softfork
- Clang format
- BIP68 and BIP112 implementations**
- Upcoming softfork
- Chain limits
- Clang format
- BIP68 and BIP112 implementations
The LevelDB topic was started but deferred till after the meeting as there are currently no plans to move to another database. However research and testing is encouraged. mcelrath volunteered to make a LMDB branch, jgarzik already has a sqlite branch.
CheckLockTimeVerify (CLTV) aka “how you thought nLockTime worked before you actually tried to use it” is a softfork scheduled for release at the end of October (ends up being early November).
Check to see if there’s anything that needs to be included in this release that’s not already in. Luke-jr has a Pull-request open to add bugfixes.
Check to see if there’s any coordination for the softfork in regards to other clients. btcd is ready for it, bitcoinj historically hasn’t implemented any softforks.
Release with only CLTV as softfork.
Chain in this context means connected transactions. When you send a transaction that depends on another transaction that has yet to be confirmed we talk about a chain of transactions.
Miners ideally take the whole chain into account instead of just every single transaction (although that’s not widely implemented afaik). So while a single transaction might not have a sufficient fee, a depending transaction could have a high enough fee to make it worthwhile to mine both.
This is commonly known as child-pays-for-parent.
Since you can make these chains very big it’s possible to clog up the mempool this way.
With the recent maleability attacks, anyone who made transactions going multiple layers deep would’ve already encountered huge problems doing this (beautifully explained in let’s talk bitcoin #258 from 13:50 onwards)
Proposal and github link.
25 as limit is still very high and could be lower.
Discussion on which statistics and measurements would be useful and relevant to this proposal.
Morcos will do some extra measurements to back up the proposal.
Just like libconsensus this is something to tidy up the code, but more about the style and format of the code itself. Quoting part of a github comment by gmaxwell:
“Stylistic consistency has actual benefits; it aids newcomers in their contributions because it is easier for them to make sure their work is okay on styleistic grounds; though this may be offset by having to install some particular version of clang-format before they can get started. It eases review because the uniformity creates better expectations; but reformating makes looking at the history harder, which harms review. Good style choices (as opposed to merely consistent) have, at times, been shown to lower defect rates in software– but there is not a universal opinion on what choices are good.”
Proposal a while ago was to clang-format file set <a b c …> Once done, maintain those files’ formatting with automation.
Opinions diverge pretty hard. From let’s not change anything for existing files to let’s change the entire bitcoin repository.
Some behavior changes from one Clang version to another, which would require everyone to use the same version of clang format, which is burdensome.
BIP68 and BIP112 implementations**
- BIP 68 Consensus-enforced transaction replacement signaled via sequence numbers , and current implementation.
- BIP 112 CHECKSEQUENCEVERIFY, and current implementation.
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.
Concerns about the fact that the LockTime function skips non-existing inputs.
For review purposes btcdrak combined both pull-requests ( https://github.com/bitcoin/bitcoin/compare/master…btcdrak:sequenceandcsv )
Both implementations should stay separate pull-requests.
No use in deploying BIP 112 before BIP 68.
gmaxwell Gregory Maxwell dcousens Daniel Cousens sipa Pieter Wuille jgarzik Jeff Garzik morcos Alex Morcos Luke-Jr Luke Dashjr wumpus Wladimir J. van der Laan mcelrath Bob McElrath jtimon Jorge Timón jonasshnelli Jonas Schnelli btcdrak btcdrak petertodd Peter Todd dstadulis Daniel Stadulis dgenr8 Tom Harding jeremyrubin Jeremy Rubin warren Warren Togami rusty Rusty Russell sdaftuar Suhas Daftuar
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.