5
Each node has a very clear view of what is valid and what is not. With conflicting blocks (Blockchain fork) or transactions (double-spending attack) it will always choose the first it sees, until it gets prove otherwise (longer blockchain or other transaction is included in a block).
I'm wondering whether the Satoshi Client relays any of the transactions or blocks he thinks are not valid. So will I ever see a transaction if all my neighbors have seen a conflicting transaction first? Will I see forked blocks if all my neighbors agree on which block came first?
@PieterWuille, Doesn't this depend on the client? What's stopping a rogue client from relaying invalid blocks? – Pacerier – 2014-05-22T20:43:39.787
Nothing. Which is why everyone else who cares verifies them :) – Pieter Wuille – 2014-05-22T21:49:22.673
Almost correct. Only valid blocks and transactions are relayed, but for blocks there is another rule: they're only relayed if they are part of the (new) best known chain. Relaying blocks in sidechains is usually a waste of work anyway. – Pieter Wuille – 2012-09-13T03:08:36.857