Skip to content

Commit 5781748

Browse files
hardingjnewbery
authored andcommitted
Add newsletter #5 2018-07-24
Includes suggested changes by John Newbery
1 parent e762a4c commit 5781748

File tree

3 files changed

+187
-0
lines changed

3 files changed

+187
-0
lines changed

_includes/link-to-issues.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{% assign _issues = include.issues | split: "," %}
2+
{% for _issue in _issues %}
3+
[#{{_issue}}]: https://github.com/bitcoin/bitcoin/issues/{{_issue}}
4+
{% endfor %}

_includes/references.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% comment %}
2+
<!--REQUIRES PERIODIC UPDATE: update rpc_version below to latest
3+
version of BitcoinCore.org's RPC docs-->
4+
{% endcomment %}
5+
{% assign rpc_version = "0.16.1" %}
6+
[rpc fundrawtransaction]: https://bitcoincore.org/en/doc/{{rpc_version}}/rpc/rawtransactions/fundrawtransaction/
7+
[rpc abandontransaction]: https://bitcoincore.org/en/doc/{{rpc_version}}/rpc/rawtransactions/fundrawtransaction/
8+
9+
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
---
2+
title: 'Bitcoin Optech Newsletter #5'
3+
permalink: /en/newsletters/2018/07/24/
4+
name: 2018-07-24-newsletter
5+
type: newsletter
6+
layout: newsletter
7+
lang: en
8+
version: 1
9+
---
10+
This week's newsletter includes information about a new language to describe
11+
output scripts, an update on Bitcoin Core's support for partially-signed
12+
Bitcoin transactions, and news on several other notable Bitcoin Core merges.
13+
14+
## Action items
15+
16+
- Bitcoin Core [0.16.2RC2][] released for testing in preparation for a
17+
maintenance release that will provide bugfixes and backports.
18+
Community testing is highly appreciated. Note, there was no RC1 due
19+
to a metadata problem being detected during the release process.
20+
21+
## Dashboard items
22+
23+
- Transaction fees are lower than they were this time last week. Anyone
24+
who can wait 12 or more blocks for confirmation can reasonably pay the
25+
default minimum feerate. It's a good time to [consolidate UTXOs][].
26+
27+
- The number of [native segwit outputs][p2shinfo bech32] had been
28+
increasing steadily over time, but dropped by about 400,000 (80%) this
29+
week, possibly due to UTXO consolidation by an exchange. The average
30+
number of new native segwit outputs created per hour remains
31+
relatively constant, indicating no obvious decrease in adoption.
32+
33+
## News
34+
35+
- **Bitcoin Optech publicly announced:** we received great coverage in
36+
[Bitcoin Magazine][announce bmag], [Coindesk][announce cdesk], and several
37+
other publications. This wouldn't have been possible without the
38+
support of our founding sponsors and member companies. Thank you!
39+
40+
- **First Optech workshop held in San Francisco:** as
41+
[previously announced][workshop announce], we held our first workshop
42+
in San Francisco last week. There were 14 engineers from Bay Area companies and
43+
open source projects in attendence, and we had great discussions about
44+
coin selection, replace-by-fee, and child-pays-for-parent. Thanks
45+
to Square for hosting and Coinbase for helping with organization.
46+
47+
If you work at a member company and have any requests or suggestions for
48+
future Optech events (be that location, venue, dates, format, topics,
49+
or anything else), please contact us. We're here to help our member
50+
companies!
51+
52+
- **Coin selection RPC unlikely:** In Bitcoin Core's weekly
53+
meeting, Andrew Chow raised the possibility of
54+
creating an RPC that would allow users to pass in information about a
55+
transaction they wanted to create, including a list of available
56+
inputs, and receive back a list of which inputs would be selected by
57+
the Bitcoin Core wallet's coin selection algorithm.
58+
59+
Meeting participants were mostly opposed to providing this feature,
60+
suggesting that it would be better if it was a library and that
61+
Bitcoin Core's recent and continuing work towards encapsulating its
62+
coin selection code would simplify development of a third-party
63+
library later. A particular opposition to the idea was that it
64+
might reduce the pace of development for direct users of the Bitcoin
65+
Core wallet; as Gregory Maxwell said, "Pressure to maintain a stable
66+
interface to [coin selection] would be harmful to the project. [...]
67+
I don’t want to hear 'we can't implement privacy feature X because
68+
it'll break [the coin selection] interface'."
69+
70+
- **First use of output script descriptors:** Pieter Wuille has opened
71+
PR [#13697][] to Bitcoin Core that implements his [output script
72+
descriptors][] language for describing which output scripts
73+
(scriptPubKeys) a wallet should monitor for. This particular PR only
74+
applies to the recently-added [`scantxoutset`][#12196] RPC but Wuille's
75+
ultimate goal is to use this new language elsewhere in the API and "to
76+
remove the need for importing scripts and keys entirely, and instead
77+
make the wallet just be a list of these descriptors plus associated
78+
metadata."
79+
80+
- **BIP174 Partially-Signed Bitcoin Transaction (PSBT) support merged:** this
81+
provides a standardized format that multiple wallets can use to
82+
communicate information about transactions that need to be signed,
83+
so that hot wallets can get signatures from cold wallets or hardware
84+
wallets, multisig transactions can be signed by multiple wallets, and
85+
multiple wallets can collaboratively create multiparty transactions such
86+
as CoinJoins. Several RPCs are added with this merge:
87+
`walletprocesspsbt`, `walletcreatefundedpsbt`, `decodepsbt`,
88+
`combinepsbt`, `finalizepsbt`, `createpsbt`, and `convertpsbt`. For a
89+
full description, see PR [#13557][].
90+
91+
## Notable Bitcoin Core merges
92+
93+
*Not including those previously discussed in the News section.*
94+
95+
{% comment %}
96+
git log --merges b25a4c2284babdf1e8cf0ec3b1402200dd25f33f..07ce278455757fb46dab95fb9b97a3f6b1b84faf
97+
{% endcomment %}
98+
99+
- [#9662][]: New wallets can now be created with private keys disabled.
100+
This is primarily meant for users who want to exclusively use their
101+
wallet in conjunction with another program or hardware wallet that
102+
stores private keys. This could also be useful to companies that want
103+
to use Bitcoin Core features (like coin selection) by creating a
104+
wallet, importing their addresses (but not private keys), and then
105+
performing whatever actions they desire, such as using the
106+
[`fundrawtransaction`][rpc fundrawtransaction] RPC.
107+
108+
- [#12196][]: New `scantxoutset` RPC method that allows searching the
109+
set of spendable bitcoins (UTXOs) for those matching an address,
110+
public key, private key, or HD keypath. The main expected use for
111+
this is "funds sweeping" where transactions matching an old wallet are
112+
found and transferred to a new wallet. Although this RPC will almost
113+
certainly be included in Bitcoin Core 0.17, it will likely be marked
114+
as experimental so that its API can be freely changed in subsequent
115+
releases. This API is likely to be
116+
updated to support output script descriptors, which is planned to
117+
happen before 0.17.
118+
119+
- [#13604][]: Bitcoin-Qt is now built by default in addition to bitcoind
120+
on 32-bit ARM systems, and should be distributed by default with the
121+
other binaries for that system from BitcoinCore.org for future
122+
releases. Bitcoin-Qt with 64-bit ARM is not yet supported by default.
123+
124+
- [#13298][]: The node now sends all announcements ([invs][inv]) for
125+
new transactions to all of its incoming peers at the same time, after
126+
a random delay. Previously, Satoshi Nakamoto [added a feature][rand
127+
delay] to Bitcoin (the software) that waited for a different random
128+
delay for each peer before sending an announcement so that a
129+
transaction would propagate around the network somewhat unpredictably,
130+
preventing spy nodes from being able to assume that the first peer
131+
they received a transaction from was likely the peer that created it.
132+
133+
However, later investigators realized that someone operating
134+
multiple spy nodes could make multiple connections to each node to
135+
increase their chances of being the first to receive a given
136+
transaction, allowing the spy to again guess which node create the
137+
transaction. This merge improves the situation by preventing a spy
138+
making multiple connections from receiving any more information than
139+
a spy with one connection. Outgoing connections (which are selected
140+
by the node itself using certain rules) continue to use the old
141+
behavior so that transactions continue to propagate unpredictably.
142+
143+
This change might increase transaction propagation delay slightly,
144+
although developers commenting on the PR think the effect will be
145+
minimal. It may also cause bandwidth usage to be less evenly
146+
distributed over time. However, it could (in theory) end up
147+
reducing the number of incoming connections to upgraded nodes, if spy
148+
nodes no longer find making multiple connections to be useful,
149+
reducing overall wasted bandwidth.
150+
151+
- [#13652][]: The [`abandontransaction`][rpc abandontransaction] RPC has
152+
been fixed to abandon all descendant transactions, not just children.
153+
154+
## Coming attractions
155+
156+
Next week's newsletter will feature a field report from Anthony Towns, a
157+
developer at Xapo, about how they consolidated around 4 million UTXOs to
158+
prepare for potential future fee increases.
159+
160+
We love getting contributions to the newsletter from member companies. If you'd like
161+
to share your experiences in implementing better Bitcoin technology, please contact us!
162+
163+
[rand delay]: https://github.com/bitcoin/bitcoin/commit/22f721dbf23cf5ce9e3ded9bcfb65a3894cc0f8c#diff-118fcbaaba162ba17933c7893247df3aR718
164+
[p2shinfo bech32]: https://p2sh.info/dashboard/db/bech32-statistics?orgId=1
165+
[consolidate utxos]: https://en.bitcoin.it/wiki/Techniques_to_reduce_transaction_fees#Consolidation
166+
[0.16.2rc2]: https://bitcoincore.org/bin/bitcoin-core-0.16.2/test.rc2/
167+
[announce bmag]: https://bitcoinmagazine.com/articles/chaincode-devs-google-alumni-create-industry-group-help-bitcoin-scale/
168+
[announce cdesk]: https://www.coindesk.com/bitcoins-biggest-startups-are-backing-a-new-effort-to-keep-fees-low/
169+
[output script descriptors]: https://gist.github.com/sipa/e3d23d498c430bb601c5bca83523fa82
170+
[inv]: https://bitcoin.org/en/developer-reference#inv
171+
[workshop announce]: /en/newsletters/2018/06/26/#first-optech-workshop
172+
173+
{% include references.md %}
174+
{% include link-to-issues.md issues="13697,13557,12196,9662,12196,13604,13298,13652" %}

0 commit comments

Comments
 (0)