A segwit supporting server would be required to support relaying segwit transactions, although a non-segwit server could at least inform a wallet of segwit txns observed, even if it doesn't relay all information necessary to validate.
Non segwit servers and wallets would continue operations as if nothing had occurred.
On Sat, Dec 12, 2015 at 1:43 AM, Gavin Andresen via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
On Fri, Dec 11, 2015 at 11:18 AM, Jorge Timón <jtimon@jtimon.cc> wrote:It is necessary to maintain compatibility with SPV nodes/wallets.This is basically what I meant by
struct hashRootStruct
{
uint256 hashMerkleRoot;
uint256 hashWitnessesRoot;
uint256 hashextendedHeader;
}but my design doesn't calculate other_root as it appears in your tree (is not necessary).
Any code that just checks merkle paths up into the block header would have to change if the structure of the merkle tree changed to be three-headed at the top.If it remains a binary tree, then it doesn't need to change at all-- the code that produces the merkle paths will just send a path that is one step deeper.Plus, it's just weird to have a merkle tree that isn't a binary tree.....----
Gavin Andresen