Skip to content

Commit f81388a

Browse files
committed
Merge #392: meeting summaries 2017-05-18
b0e82a8 Fix (G1lius) b6ed48a meeting summaries 2017-05-18 (G1lius)
2 parents 0317b1c + b0e82a8 commit f81388a

File tree

1 file changed

+151
-0
lines changed

1 file changed

+151
-0
lines changed
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
---
2+
title: IRC meeting summary for 2017-05-18
3+
permalink: /en/meetings/2017/05/18/
4+
name: 2017-05-18-meeting
5+
type: meetings
6+
layout: page
7+
lang: en
8+
version: 1
9+
---
10+
{% include _toc.html %}
11+
12+
- [Link to this week logs](https://botbot.me/freenode/bitcoin-core-dev/2017-05-18/?msg=85822053&page=2)
13+
- [Meeting minutes by meetbot](http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-05-18-19.01.html)
14+
15+
---
16+
17+
## Notes / short topics
18+
19+
- The new fee estimator has been merged. Running master now will blow away your old fee estimates. Morcos will try to get an improvement in which makes it more seamless for 0.15.
20+
21+
## Main topics
22+
23+
- clientside filtering
24+
- pruned-node serving
25+
- bytes_serialized
26+
27+
## clientside filtering
28+
29+
### background
30+
31+
To make lightweight SPV clients not having to download the entire content of the blockchain, [BIP37][] was created. This BIP uses [bloomfilters](https://en.wikipedia.org/wiki/Bloom_filter) via the peer-to-peer protocol to let full nodes send a small subset of transactions to the SPV client that include all the relevant transactions the SPV client needs for his wallet.
32+
33+
Over time this approach appeared to not be as strong as originally thought.
34+
- The expected privacy in [BIP37][] as a result of the probabilistic nature of bloom filters ended up being [non-excistant](https://eprint.iacr.org/2014/763.pdf).
35+
- As the blockchain grows larger, there's a significant processing load on the full nodes as they have to process the entire blockchain to serve a syncing SPV client. This also makes it vulnerable to DoS attacks.
36+
- SPV clients can not have strong security expectations, as the merkle path allows them to validate an output was spendable, but it does not prove the output is unspent later on.
37+
38+
There have been many ideas proposed to improve this situation, all with their own trade-offs. Recently Roasbeef has been working on an idea based on [golomb coded sets](https://en.wikipedia.org/wiki/Golomb_coding), which are small than bloom filters, but requires more CPU-time.
39+
40+
### meeting comments
41+
42+
To start this would be something that nodes would precompute and store. Letting blocks commit to this can be done later on.
43+
44+
Gmaxwell is doubtful about the performance from golomb coding, but he's interested to see it.
45+
46+
Roasbeef was suggesting two filters, one for super lightweight clients which include outpoints and script data pushes, and another for more sophisticated queries which includes the witness stack, sig script data pushes and transaction IDs. Gmaxwell comments adding witness data has long term implications as in a few years from now we can expect most nodes not to store witness data from more than a year back. Roasbeef clarifies the rationale for including witness data was to allow light clients to efficiently scan for things like stealth addresses. However in practice no one uses it that way, and anyone who has implemented it are scanning via a centralized server. Sipa's preference would be to just have outpoints and full scriptPubKeys. The only advantage of data pushes over the full scriptPubKey is for bare multisig, however those aren't really used in practice.
47+
48+
Jonasschnelli adds Kallewoof has a [draft implementation](https://github.com/kallewoof/bitcoin/pull/1/files) on serving filters over the p2p network through bloom filtering
49+
50+
### meeting conclusion
51+
52+
- Roasbeef will make a BIP which includes the feedback from the meeting ([mailinglist post](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-June/014474.html))
53+
54+
## pruned-node serving
55+
56+
### background
57+
58+
Currently pruned nodes don't advertise themself as having any blocks, and as a result they don't serve any blocks to other peers. As the blockchain size continues to grow it's likely the amount of pruned nodes will rise in the future.
59+
60+
Non-pruned full nodes advertise themself by `NODE_NETWORK`, Jonasschnelli proposed to make a message that advertise pruned nodes that relay and are able to serve the last 144 blocks (1 day worth of blocks), namely `NODE_NETWORK_LIMITED`in the [2017-05-27 meeting](https://bitcoincore.org/en/meetings/2017/04/27/#node_network_limited).
61+
62+
63+
### meeting comments
64+
65+
Sipa has some [data available](http://bitcoin.sipa.be/depths.png) which shows the relative depth of each block downloaded from his node, excluding compact blocks. It confirms 144 block is too small and the pruning minimum of 288 is better. Gmaxwell thinks the BIP shouldn't have any headroom/buffer, just advertise what they actually store. If it turns out a node doesn't have all the blocks you need you can connect to someone else. It should also just state the amount of blocks which need to be stored, and not make any connection with time, as light clients know how many blocks they are behind after the header sync, independent of time. Gmaxwell adds the BIP should also mention that you can serve headers for the whole chain.
66+
67+
### meeting conclusion
68+
69+
- Jonasschnelli will incorporate the feedback into the BIP.
70+
71+
## bytes_serialized
72+
73+
### background
74+
75+
Currently `gettxoutsetinfo` has a field called `bytes_serialized` which is based on some theoretical serialization of the UTXO set data to show how large the database is in bytes. However in practice this isn't a good metric on how much space the UTXO set takes on disk.
76+
77+
### meeting comments
78+
79+
Wumpus thinks there should be a neutral way of representing the UTXO size, that doesn't rely on estimates of a specific database format. He'd be fine with it just being the size of keys and values in a neutral format, not accounting for the levelDB prefix compression.
80+
81+
Changing the format of `bytes_serialized` allows for changing the definition.
82+
83+
We should report the actual disk usage as well in `gettxoutsetinfo`.
84+
85+
Wumpus thinks it would make sense to rename the field as well.
86+
87+
### meeting conclusion
88+
89+
- PR [#10195][] will remove `bytes_serialized`, Sipa will create a separate PR to add a new `disk_size` and `bogosize` to replace it.
90+
91+
## High priority review
92+
93+
- Ryanofsky likes more review on [#10295][] (Move some WalletModel functions into CWallet) as it's blocking his IPC PRs.
94+
- Jonasschnelli added [#10240][] (Add HD wallet auto-restore functionality)
95+
96+
## Comic relief
97+
98+
{% highlight text %}
99+
wumpus time to close the meeting I think
100+
instagibbs 2 minutes
101+
luke-jr defer BIP148 to next week?
102+
wumpus luke-jr: oh forgot about that one
103+
luke-jr it's okay, a week might be good anyway
104+
gmaxwell I'm sure you can discuss it in one minute.
105+
gmaxwell :p
106+
kanzure we need a meeting extension block
107+
luke-jr gmaxwell: well, to be fair, we've never had a formal time limit for meetings..
108+
luke-jr :p
109+
instagibbs it's a standardness rule...
110+
kanzure it was to prevent spam
111+
gmaxwell I like that they're limited. even though I always spend another half hour in resulting discussions.
112+
gmaxwell kanzure: that limit was temporary!
113+
sipa we should revert to the original limit of 24 hours
114+
luke-jr sipa: IMO the original limit was 5 hours
115+
luke-jr sipa: since that's how long until the day changes in UTC
116+
gmaxwell luke-jr: That isn't consistent with Craig Wright^W^WSatoshi's vision!
117+
luke-jr gmaxwell: it's consistent with tonal though
118+
cfields sipa: nah, let's just use an accounting trick and have meetings on a plane zooming through timezones.
119+
cfields I'm pretty sure we can cram 2 days into 1 that way :p
120+
gmaxwell too bad they stopped flying the concord.
121+
sipa you just need a plane circeling the arctic
122+
{% endhighlight %}
123+
124+
## Participants
125+
126+
| IRC nick | Name/Nym |
127+
|-----------------|---------------------------|
128+
| jonasschnelli | [Jonas Schnelli][] |
129+
| sipa | [Pieter Wuille][] |
130+
| cfields | [Cory Fields][] |
131+
| luke-jr | [Luke Dashjr][] |
132+
| kanzure | [Bryan Bishop][] |
133+
| gmaxwell | [Gregory Maxwell][] |
134+
| instagibbs | [Gregory Sanders][] |
135+
| wumpus | [Wladimir van der Laan][] |
136+
| morcos | [Alex Morcos][] |
137+
| sdaftuar | [Suhas Daftuar][] |
138+
| CodeShark | [Eric Lombrozo][] |
139+
| roasbeef | [Olaoluwa Osuntokun][] |
140+
| jtimon | [Jorge Timón][] |
141+
| ryanofsky | [Russell Yanofsky][] |
142+
143+
## Disclaimer
144+
145+
This summary was compiled without input from any of the participants in the discussion, so any errors are the fault of the summary author and not the discussion participants.
146+
147+
[#10295]: https://github.com/bitcoin/bitcoin/pull/10295
148+
[#10240]: https://github.com/bitcoin/bitcoin/pull/10240
149+
[#10195]: https://github.com/bitcoin/bitcoin/pull/10195
150+
151+
{% include _references.md %}

0 commit comments

Comments
 (0)