|
| 1 | +--- |
| 2 | +title: IRC meeting summary for 2018-07-19 |
| 3 | +lang: en |
| 4 | +permalink: /en/meetings/2018/07/19/ |
| 5 | +name: 2018-07-19-meeting |
| 6 | +layout: page |
| 7 | +type: meetings |
| 8 | +version: 1 |
| 9 | +--- |
| 10 | +{% include toc.html %} |
| 11 | +{% include references.md %} |
| 12 | + |
| 13 | +- View this week's log on [BotBot.me][bbm log] or [MeetBot][mb log] |
| 14 | +- [Meeting minutes by MeetBot][mb minutes] |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +Topics discussed during this weekly meeting included pull requests that |
| 19 | +need to be reviewed before Monday's feature freeze for Bitcoin Core |
| 20 | +0.17, whether or not Bitcoin Core's algorithm for selection of which |
| 21 | +inputs (coins) to spend should be made available as an RPC, a new way of |
| 22 | +describing which outputs the wallet should monitor and an implementation |
| 23 | +of this method for the new `scantxoutset` RPC, whether Pieter Wuille's |
| 24 | +bitcoin-seeder program should become part of the Bitcoin Core GitHub |
| 25 | +organization, whether the Bitcoin Core project should stop publishing |
| 26 | +release notes and binaries to Bitcoin.org, and information about the |
| 27 | +next CoreDev Tech meeting. |
| 28 | + |
| 29 | +Prior to the start of discussion, Wladimir van der Laan mentioned that |
| 30 | +the executables for Bitcoin Core 0.16.2 Release Candidate (RC) 2 are |
| 31 | +[available for testers][0.16.2rc2 bin]. |
| 32 | + |
| 33 | +## High priority for review |
| 34 | + |
| 35 | +**Background:** each meeting, Bitcoin Core developers discuss which Pull |
| 36 | +Requests (PRs) the meeting participants think most need review in the |
| 37 | +upcoming week. Some of these PRs are related to code that contributors |
| 38 | +especially want to see in the next release; others are PRs that are |
| 39 | +blocking further work or which require significant maintenance (rebasing) |
| 40 | +to keep in a pending state. Any capable reviewers are encouraged to |
| 41 | +visit the project's list of [current high-priority |
| 42 | +PRs][]. |
| 43 | + |
| 44 | +A special focus of this meeting was PRs that needed to be merged in the |
| 45 | +next few days if their features are to be included in upcoming version |
| 46 | +Bitcoin Core 0.17, so reviewers are also encouraged to check the list of |
| 47 | +PRs in the [0.17 milestone][]. |
| 48 | + |
| 49 | +**Discussion ([log][log hipri]):** the following PRs were discussed: |
| 50 | + |
| 51 | +- [#9662][] - Add create wallet "disableprivatekeys" option: a sane mode |
| 52 | + for watchonly-wallets. Requested by Jonas Schnelli; Wladimir van der |
| 53 | + Laan said it could probably be merged soon. |
| 54 | + |
| 55 | +- [#9502][] - [Qt] Add option to pause/resume block downloads. |
| 56 | + Requested by Schnelli. |
| 57 | + |
| 58 | +- [#13697][] - Support output descriptors in scantxoutset. Requested by |
| 59 | + Pieter Wuille with support from Schnelli. Discussed in more detail |
| 60 | + [later](#osd) in the meeting. |
| 61 | + |
| 62 | + |
| 63 | +- [#13666][] - Always create signatures with Low R values. Requested by |
| 64 | + Wuille. |
| 65 | + |
| 66 | +- [#13426][] - [Bugfix] Add u8path and u8string to fix encoding issue |
| 67 | + for Windows. Requested by Chun Kuan Lee. |
| 68 | + |
| 69 | +- [#13712][] - Wallet: Fix non-determinism in ParseHDKeypath; avoid |
| 70 | + using an uninitialized variable in path calculation. Requested by |
| 71 | + Andrew Chow. |
| 72 | + |
| 73 | +- [#8469][] - [POC] Introducing property-based testing to Core. |
| 74 | + Requested to be removed from the 0.17 list by Schnelli, as it's not |
| 75 | + ready. |
| 76 | + |
| 77 | +- [#13617][] - Require MacOS 10.10+. Initially requested for removal |
| 78 | + from the list, but added back after a comment by Cory Fields. |
| 79 | + |
| 80 | +**Conclusion:** there were over a dozen PRs tagged for 0.17 by the end |
| 81 | +of this segment of the meeting for a review deadline of Monday. |
| 82 | + |
| 83 | +## Exposing coin selection on RPC |
| 84 | + |
| 85 | +**Background:** Coin selection is the name used for how a wallet chooses |
| 86 | +which of a user's bitcoins to spend in a particular transaction. The |
| 87 | +selected *Unspent Transaction Outputs (UTXOs)*, often simply called |
| 88 | +*coins,* become *inputs* in the transaction. Developers have spent many |
| 89 | +hours in the past year improving Bitcoin Core's coin selection to be |
| 90 | +able to sometimes improve privacy and lower transaction sizes (thus |
| 91 | +reducing fees) for users of Bitcoin Core's built-in wallet, with more |
| 92 | +improvements on the way. |
| 93 | + |
| 94 | +**Discussion ([log][log rpc coin selection]):** Andrew Chow requested |
| 95 | +the topic and introduced it: "This came up in a discussion with some |
| 96 | +companies about coin selection. Basically, some are interested in using |
| 97 | +Core's coin selection (or someone else's) instead of having to |
| 98 | +implement/roll their own. Currently if they wanted to use Core's coin |
| 99 | +selection, the UTXOs need to be in the wallet---i.e., the addresses and |
| 100 | +possibly keys need to be in the wallet." |
| 101 | + |
| 102 | +Wladimir van der Laan and Gregory Maxwell suggested that they could use the |
| 103 | +[`fundrawtransaction`][rpc fundrawtransaction] RPC to use Bitcoin Core's |
| 104 | +coin selection. Jonas Schnelli added, "using private key disabled |
| 105 | +dynamic wallet in conjunction with fundraw seems very efficient," |
| 106 | +referring in part to PR [#9662][]. |
| 107 | + |
| 108 | +Chow said, "that is not ideal for them" and Pieter Wuille followed up |
| 109 | +with, "they'd don't want to use the wallet; they just want to be able to |
| 110 | +run coin selection." |
| 111 | + |
| 112 | +Several meeting participants suggested it could be done as a library, |
| 113 | +but Maxwell argued against doing it within the project as either an RPC |
| 114 | +or a library: "I am doubtful that it is worth our effort in maintaining |
| 115 | +a stable interface for such a thing. E.g. [Kalle Alm]'s recent |
| 116 | +[grouping PR][#12257] would've obliterated the interface for coin |
| 117 | +selection [...] Pressure to maintain a stable interface to [coin |
| 118 | +selection] would be harmful to the project. [...] I don't want to hear |
| 119 | +'we can't implement privacy feature X because it'll break [the coin |
| 120 | +selection] interface'." |
| 121 | + |
| 122 | +Wladimir van der Laan said, "I think this is not a concern for our |
| 123 | +project. Some other people want a coin selection algorithm for their |
| 124 | +own purposes. [That's] fine, they can make a library out of it |
| 125 | +themselves, the code is open source." Maxwell suggested, "Perhaps they |
| 126 | +should contribute to making the wallet code better so they don't have |
| 127 | +to write their own (smiley face with tongue sticking out)." |
| 128 | + |
| 129 | +**Conclusion:** although the idea of an RPC method was generally |
| 130 | +opposed, Wuille did suggest a path forward: "I think the first step for |
| 131 | +this is something we're doing anyway: making the code itself more |
| 132 | +encapsulated. Perhaps once the code is sufficiently encapsulated, |
| 133 | +someone else can librarify that and maintain it." |
| 134 | + |
| 135 | +## <!----> #13697 which changes the API for scantxoutset {#osd} |
| 136 | + |
| 137 | +**Background:** recently-merged PR [#12196][] adds a `scantxoutset` RPC |
| 138 | +that allows the user to search the set of currently-spendable bitcoins |
| 139 | +(UTXO set) for any outputs that correspond to one or more specified |
| 140 | +addresses, public keys, private keys, or set of HD keys. As discussed |
| 141 | +in the [June 28th][meet osd] meeting, Pieter Wuille is working on a [new |
| 142 | +way][osd gist] to specify what outputs (scriptPubKeys) a wallet should |
| 143 | +look for, called Output Script Descriptors, and he has PR [#13697][] open |
| 144 | +to add support for that to `scantxoutset` instead of the current ways |
| 145 | +keys and scripts are described to the wallet. |
| 146 | + |
| 147 | +**Discussion ([log][log scantxoutset api]):** Wuille requested and |
| 148 | +introduced the topic, "first of all, this is part a bigger effort to |
| 149 | +combine keys and scripts and [HD wallet] chains into one concept. |
| 150 | +There's a mini language to specify (sets of) scriptPubKeys, so I'd very |
| 151 | +much first want to hear comments on that language. The other question |
| 152 | +is [whether] `scantxoutset` [is] experimental or not, and [is it so] |
| 153 | +with descriptor support in 0.17 or not?" |
| 154 | + |
| 155 | +Wladimir van der Laan and Jonas Schnelli both said they liked the idea |
| 156 | +of output script descriptors, and they also both supported marking |
| 157 | +`scantxoutset` as experimental for the 0.17 release, which will allow the |
| 158 | +project to freely change its API for subsequent releases and make it |
| 159 | +easy to incorporate feedback from users of the new RPC and new output |
| 160 | +script descriptors language. |
| 161 | + |
| 162 | +Luke Dashjr asked, "Should [output script descriptors] be a BIP? Seems |
| 163 | +potentially useful outside Core." Wuille replied, "potentially yes, but |
| 164 | +not in the first instance. I expect that this will evolve rather |
| 165 | +quickly." |
| 166 | + |
| 167 | +**Conclusion:** No objections were raised to the idea of marking |
| 168 | +`scantxoutset` experimental for the 0.17 release, or to using output |
| 169 | +script descriptors if [#13697][] passes review. |
| 170 | + |
| 171 | +## Bitcoin-seeder under bitcoin-core GitHub organization |
| 172 | + |
| 173 | +**Background:** although Bitcoin uses a peer-to-peer protocol, nodes |
| 174 | +started for the first time don't know the IP addresses of any peers to |
| 175 | +connect to (except for some fallback addresses for last-ditch use), so |
| 176 | +they request a list of IP address for recently-active notes from a |
| 177 | +program called a *Bitcoin seeder.* The node then connects to those |
| 178 | +peers and those peers can tell the new node about other peers, so all |
| 179 | +future connections can often be made completely decentralized---but a |
| 180 | +node can use the seeder again if decentralized peer finding isn't |
| 181 | +working for it. |
| 182 | + |
| 183 | +There are several seeder programs written by different authors. One of |
| 184 | +them is maintained by Pieter Wuille and is simply called `bitcoin-seeder`. |
| 185 | + |
| 186 | +**Discussion ([log][log seeder]):** Lucas Betschart requested and |
| 187 | +introduced the topic: "I thought because there are a few open issues and |
| 188 | +simple PRs for bitcoin-seeder [that] it might make sense that several |
| 189 | +Bitcoin maintainers have merge rights." |
| 190 | + |
| 191 | +Wuille replied, "No problem as far as I'm concerned, but I'm not sure |
| 192 | +it's the right message." Luke Dashjr echoed that sentiment. |
| 193 | + |
| 194 | +**Conclusion:** Sjors Provoost suggested, "another approach could be for |
| 195 | +[Wuille] to give more people access to that repository?" Wuille replied, |
| 196 | +"I'm fine with that!" Betschart said, "That's also fine with me." |
| 197 | + |
| 198 | +## Moving away from Bitcoin.org |
| 199 | + |
| 200 | +**Background:** Since the 2009 release of the original Bitcoin software, |
| 201 | +Bitcoin Core resources were traditionally hosted on Bitcoin.org. But |
| 202 | +over time, this was augmented with additional resources about the |
| 203 | +increasingly diverse Bitcoin network, so (in December 2015) Bitcoin Core |
| 204 | +began using its own domain---initially just to host its resources but |
| 205 | +now also to host its software releases. However, release announcements |
| 206 | +and software continue to be mirrored to Bitcoin.org. |
| 207 | + |
| 208 | +**Discussion:** please see the [log][log bco]. Note some discussion |
| 209 | +also occurred [after the meeting][post-meeting bco]. |
| 210 | + |
| 211 | +[post-meeting bco]: https://botbot.me/freenode/bitcoin-core-dev/msg/102258762/ |
| 212 | + |
| 213 | +**Conclusion:** no explicit conclusion. Post-meeting discussion seemed |
| 214 | +to indicate no significant changes to the current process. |
| 215 | + |
| 216 | +## Next CoreDev tech meeting |
| 217 | + |
| 218 | +**Background:** periodically, some members of the Bitcoin Core team hold |
| 219 | +an invitation-only event mainly for contributors to Bitcoin Core to |
| 220 | +allow everyone to review and discuss various projects in person. For |
| 221 | +more information, see the [CoreDev.Tech][] website. |
| 222 | + |
| 223 | +**Discussion ([log][log coredev meet]):** Steve Lee requested and |
| 224 | +introduced the topic, "I've volunteered to organize the next Core Dev |
| 225 | +Tech meetup. The current thinking is to have it in Tokyo in October |
| 226 | +after Scaling Bitcoin, October 8-10, and to organize it in a similar |
| 227 | +fashion as the last one in NYC." |
| 228 | + |
| 229 | +Several people thanked Lee. |
| 230 | + |
| 231 | +**Conclusion:** Lee said, "I plan to send out a survey to collect some |
| 232 | +feedback. If anyone has specific ideas or suggestions, please feel free |
| 233 | +to contact me." |
| 234 | + |
| 235 | +## Humor |
| 236 | + |
| 237 | +{% highlight text %} |
| 238 | + <sipa> what about #13666 ? |
| 239 | +<provoostenator> What's in a number? |
| 240 | + <sipa> 13 and 666, can't beat those odds |
| 241 | + <wumpus> niice |
| 242 | + <achow101> it was completely planned, obviously |
| 243 | + <sipa> in some timezones it was also opened on |
| 244 | + friday the 13th |
| 245 | + oh, no |
| 246 | + <jonasschnelli> I hope no black cat was sitting on the |
| 247 | + keyboard during coding |
| 248 | +{% endhighlight %} |
| 249 | + |
| 250 | + |
| 251 | +## Participants |
| 252 | + |
| 253 | +| IRC nick | Name/Nym | |
| 254 | +|-----------------|---------------------------| |
| 255 | +| wumpus | [Wladimir van der Laan][] | |
| 256 | +| sipa | [Pieter Wuille][] | |
| 257 | +| jonasschnelli | [Jonas Schnelli][] | |
| 258 | +| achow101 | [Andrew Chow][] | |
| 259 | +| luke-jr | [Luke Dashjr][] | |
| 260 | +| gmaxwell | [Gregory Maxwell][] | |
| 261 | +| moneyball | [Steve Lee][] | |
| 262 | +| provoostenator | [Sjors Provoost][] | |
| 263 | +| jnewbery | [John Newbery][] | |
| 264 | +| cfields | [Cory Fields][] | |
| 265 | +| lclc | [Lucas Betschart][] | |
| 266 | +| ken2812221 | [Chun Kuan Lee][] | |
| 267 | +| kanzure | [Bryan Bishop][] | |
| 268 | + |
| 269 | +## Disclaimer |
| 270 | + |
| 271 | +This summary was compiled without input from any of the participants in |
| 272 | +the discussion, so any errors are the fault of the summary author and |
| 273 | +not the discussion participants. In particular, quotes taken from the |
| 274 | +discussion had their capitalization, punctuation, and spelling modified |
| 275 | +to produce consistent sentences. Bracketed words and fragments, as well |
| 276 | +as background narratives and exposition, were added by the author of |
| 277 | +this summary and may have accidentally changed the meaning of some |
| 278 | +sentences. If you believe any quote was taken out of context, please |
| 279 | +[open an issue](https://github.com/bitcoin-core/bitcoincore.org/issues/new) |
| 280 | +and we will correct the mistake. |
| 281 | + |
| 282 | +[bbm log]: https://botbot.me/freenode/bitcoin-core-dev/msg/102255898/ |
| 283 | +[mb minutes]: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2018/bitcoin-core-dev.2018-07-19-19.02.html |
| 284 | + |
| 285 | +[current high-priority PRs]: https://github.com/bitcoin/bitcoin/projects/8 |
| 286 | + |
| 287 | +{% assign log = "http://www.erisian.com.au/meetbot/bitcoin-core-dev/2018/bitcoin-core-dev.2018-07-19-19.02.log.html" %} |
| 288 | +[mb log]: {{log}} |
| 289 | +[log hipri]: {{log}}#l-13 |
| 290 | +[log rpc coin selection]: {{log}}#l-77 |
| 291 | +[log scantxoutset api]: {{log}}#l-173 |
| 292 | +[log seeder]: {{log}}#l-207 |
| 293 | +[log bco]: {{log}}#l-231 |
| 294 | +[log coredev meet]: {{log}}#l-279 |
| 295 | + |
| 296 | +[meet osd]: /en/meetings/2018/06/28/#output-script-descriptors |
| 297 | +[osd gist]: https://gist.github.com/sipa/e3d23d498c430bb601c5bca83523fa82 |
| 298 | +[coredev.tech]: https://coredev.tech/ |
| 299 | + |
| 300 | +[0.16.2rc2 bin]: https://bitcoincore.org/bin/bitcoin-core-0.16.2/test.rc2/ |
| 301 | +[0.17 milestone]: https://github.com/bitcoin/bitcoin/milestone/33 |
| 302 | + |
| 303 | + |
| 304 | +{% include link-to-issues.md issues="9662,9502,13697,13666,13426,13712,8469,13617,12196,12257" %} |
0 commit comments