Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: G1lius on November 02, 2015, 04:14:00 PM



Title: Bitcoin dev IRC meeting in layman's terms (2015-10-29)
Post by: G1lius on November 02, 2015, 04:14:00 PM
Once again my attempt to summarize and explain the weekly bitcoin developer meeting in layman's terms. 
Link to last weeks summarization (https://bitcointalk.org/index.php?topic=1222156.msg12800716#msg12800716)     


Disclaimer

Please bear in mind I'm not a developer and I'd have problems coding "hello world!", so some things might be incorrect or plain wrong. 
Like any other write-up it likely contains personal biases, although I try to stay as neutral as I can. 
There are no decisions being made in these meetings, so if I say "everyone agrees" this means everyone present in the meeting, that's not consensus, but since a fair amount of devs are present it's a good representation. 
The dev IRC and mailinglist are for bitcoin development purposes. If you have not contributed actual code to a bitcoin-implementation, this is probably not the place you want to reach out to. There are many places to discuss things that the developers read, including this sub-reddit.


link to this week logs (http://bitcoinstats.com/irc/bitcoin-dev/logs/2015/10/29#l1446145259.0) 
Meeting minutes by meetbot (http://www.erisian.com.au/meetbot/bitcoin-dev/2015/bitcoin-dev.2015-10-29-19.02.html) 
Meeting google doc (https://docs.google.com/document/d/1t3kGkAUQ-Yui57P29YhDll5WyJuTiGrUhCW8so-E-iQ/edit)


Main topics discussed where: 
 
Upcoming softfork   
Chain limits 
Clang format 
BIP68 and BIP112 implementations


Short topics/notes

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.


Upcoming softfork

- background 

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).


- meeting comments

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 (https://github.com/bitcoin/bitcoin/pull/6825) open to add bugfixes. 
Check to see if there's any coordination for the softfork in regards to other clients. btcd (https://github.com/btcsuite/btcd) is ready for it, bitcoinj (https://github.com/bitcoinj/bitcoinj) historically hasn't implemented any softforks. 


- meeting conclusion 

Release with only CLTV as softfork.


Chain limits

- background 

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 (https://letstalkbitcoin.com/blog/post/lets-talk-bitcoin-258-liquidity-and-malleability) from 13:50 onwards)   
Proposal (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-October/011401.html) and github (https://github.com/bitcoin/bitcoin/pull/6771) link.

- meeting comments

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.

- meeting conclusion

Morcos will do some extra measurements to back up the proposal.


Clang format

- background

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." 
 

- meeting comments

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.


- meeting conclusion

No conclusion.

BIP68 and BIP112 implementations

- background

BIP 68 (https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki)  Consensus-enforced transaction replacement signaled via sequence numbers , and current implementation (https://github.com/bitcoin/bitcoin/pull/6312). 
BIP 112 (https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki) CHECKSEQUENCEVERIFY, and current implementation (https://github.com/bitcoin/bitcoin/pull/6564). 
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.

- meeting comments

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 ) 

- meeting conclusion

Both implementations should stay separate pull-requests. 
No use in deploying BIP 112 before BIP 68.


Participants

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


Title: Re: Bitcoin dev IRC meeting in layman's terms (2015-10-29)
Post by: pereira4 on November 02, 2015, 04:51:09 PM
This is a really good idea. I often when reading on Bitcoin forums, see people quoting entire logs of devs talking to each other. Since im not an experienced coder I can't understand half of what's being discussed. A lot of important information gets lost in translation in those logs and putting in in ELI5 (well not that exaggerated, let's just say laymans) is a good initiative.