Hi Greg, 2017-12-18 21:42 GMT+01:00 Gregory Maxwell : > Because it would make no meaningful difference now, Sure. > and if you are not > going to check the history I'm not going to do any less checks than a node running with assumevalid. Well not exactly true, because a node running today with assumevalid will verify the witness root hash, right? > there are much more efficient things to > do-- like not transfer it at all. > I'm not sure what you are referring to. Thank you /Kalle > > On Mon, Dec 18, 2017 at 8:32 AM, Kalle Rosenbaum via bitcoin-dev > wrote: > > Dear list, > > > > I find it hard to understand why a full node that does initial block > > download also must download witnesses if they are going to skip > > verification anyway. If my full node skips signature verification for > > blocks earlier than X, it seems the reasons for downloading the > > witnesses for those blocks are: > > > > * to be able to send witnesses to other nodes. > > > > * to verify the witness root hash of the blocks > > > > I suppose that it's important to verify the witness root hash because > > a bad peer may send me invalid witnesses during initial block > > download, and if I don't verify that the witness root hash actually > > commits to them, I will get banned by peers requesting the blocks from > > me because I send them garbage. > > > > So both the reasons above (there may be more that I don't know about) > > are actually the same reason: To be able to send witnesses to others > > without getting banned. > > > > What if a node could chose not to download witnesses and thus chose to > > send only witnessless blocks to peers. Let's call these nodes > > witnessless nodes. Note that witnessless nodes are only witnessless > > for blocks up to X. Everything after X is fully verified. > > > > Witnessless nodes would be able to sync faster because it needs to > > download less data to calculate their UTXO set. They would therefore > > more quickly be able to provide full service to SPV wallets and its > > local wallets as well as serving blocks to other witnessless nodes > > with same or higher assumevalid block. For witnessless nodes with > > lower assumevalid they can serve at least some blocks. It could also > > serve blocks to non-segwit nodes. > > > > Do witnessless nodes risk dividing the network in two parts, one > > witnessless and one with full nodes, with few connections between the > > parts? > > > > So basically, what are the reasons not to implement witnessless > > nodes? > > > > Thank you, > > /Kalle > > > > _______________________________________________ > > bitcoin-dev mailing list > > bitcoin-dev@lists.linuxfoundation.org > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > > >