<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2017-12-18 13:43 GMT+01:00 Eric Voskuil <span dir="ltr"><<a href="mailto:eric@voskuil.org" target="_blank">eric@voskuil.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-"><br>
> On Dec 18, 2017, at 03:32, Kalle Rosenbaum via bitcoin-dev <<a href="mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.<wbr>linuxfoundation.org</a>> wrote:<br>
><br>
> Dear list,<br>
><br>
> I find it hard to understand why a full node that does initial block<br>
> download also must download witnesses if they are going to skip verification anyway.<br>
<br>
</span>Why run a full node if you are not going to verify the chain?<br></blockquote><div><br></div>I meant to say "<span style="color:rgb(80,0,80);font-size:12.8px">I find it hard to understand why a full node that does initial block</span><br style="color:rgb(80,0,80);font-size:12.8px"><span style="color:rgb(80,0,80);font-size:12.8px">download also must download witnesses when it is going to skip verification of the witnesses anyway."</span></div><div class="gmail_quote"><span style="color:rgb(80,0,80);font-size:12.8px"><br></span></div><div class="gmail_quote"><span style="color:rgb(80,0,80);font-size:12.8px">I'm referring to the "assumevalid" feature of Bitcoin Core that skips signature verification up to block X. Or have I misunderstood assumevalid?</span></div><div class="gmail_quote"><span style="color:rgb(80,0,80);font-size:12.8px"><br></span></div><div class="gmail_quote"><span style="color:rgb(80,0,80);font-size:12.8px">/Kalle</span></div><div class="gmail_quote"> <br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><div class="gmail-h5"><br>
> If my full node skips signature verification for<br>
> blocks earlier than X, it seems the reasons for downloading the<br>
> witnesses for those blocks are:<br>
><br>
> * to be able to send witnesses to other nodes.<br>
><br>
> * to verify the witness root hash of the blocks<br>
><br>
> I suppose that it's important to verify the witness root hash because<br>
> a bad peer may send me invalid witnesses during initial block<br>
> download, and if I don't verify that the witness root hash actually<br>
> commits to them, I will get banned by peers requesting the blocks from<br>
> me because I send them garbage.<br>
> So both the reasons above (there may be more that I don't know about)<br>
> are actually the same reason: To be able to send witnesses to others<br>
> without getting banned.<br>
><br>
> What if a node could chose not to download witnesses and thus chose to<br>
> send only witnessless blocks to peers. Let's call these nodes<br>
> witnessless nodes. Note that witnessless nodes are only witnessless<br>
> for blocks up to X. Everything after X is fully verified.<br>
><br>
> Witnessless nodes would be able to sync faster because it needs to<br>
> download less data to calculate their UTXO set. They would therefore<br>
> more quickly be able to provide full service to SPV wallets and its<br>
> local wallets as well as serving blocks to other witnessless nodes<br>
> with same or higher assumevalid block. For witnessless nodes with<br>
> lower assumevalid they can serve at least some blocks. It could also<br>
> serve blocks to non-segwit nodes.<br>
><br>
> Do witnessless nodes risk dividing the network in two parts, one<br>
> witnessless and one with full nodes, with few connections between the<br>
> parts?<br>
><br>
> So basically, what are the reasons not to implement witnessless<br>
> nodes?<br>
><br>
> Thank you,<br>
> /Kalle<br>
</div></div>> ______________________________<wbr>_________________<br>
> bitcoin-dev mailing list<br>
> <a href="mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.<wbr>linuxfoundation.org</a><br>
> <a href="https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" rel="noreferrer" target="_blank">https://lists.linuxfoundation.<wbr>org/mailman/listinfo/bitcoin-<wbr>dev</a><br>
</blockquote></div><br></div></div>