It shouldn't be as simple to do a double spend. I think I am missing something here. I understand Consensus rules and P2P networking. But since a node is connected only to some limited number of other peers, So a subset of nodes will only know a limited reality of blocks among these peers at least at a given point of time. Wouldn't this allow easy possibility of double spend?
For example sake, let's assume there are only 6 nodes globally and they happen to get following pairing to peers.
**Set 1**
1<-->2
2<-->3
3<-->1
**Set 2**
4<-->5
5<--6>
6<-->4
It leads to kind of two sets of isolated groups of 3 each. Let's assume now Adam's wallet is connected to node 4 and does a transaction. How will this be relayed to nodes 1, 2 and 3? Adam in my example can leverage this to do a double spend by doing transaction by connected to nodes in set 1 now.