public async Task TestThatThreeNodesRemainSynchronisedAfter10AddsToAllNodes()
        {
            _n1Address = new NodeAddress("127.0.0.1", 6131);
            _n2Address = new NodeAddress("127.0.0.1", 6132);
            _n3Address = new NodeAddress("127.0.0.1", 6133);

            _addresses = new List <NodeAddress> {
                _n1Address, _n2Address, _n3Address
            };

            _node1 = new Node(_n1Address, _addresses);
            _node2 = new Node(_n2Address, _addresses);
            _node3 = new Node(_n3Address, _addresses);

            _state1.WireUpNode(_node1);
            _state2.WireUpNode(_node2);
            _state3.WireUpNode(_node3);

            _state1.LocalAdd("someData1");
            _state2.LocalAdd("someData2");
            _state3.LocalAdd("someData3");
            _state1.LocalAdd("someData4");
            _state2.LocalAdd("someData5");
            _state3.LocalAdd("someData6");
            _state1.LocalAdd("someData7");
            _state2.LocalAdd("someData8");
            _state3.LocalAdd("someData9");
            _state1.LocalAdd("someData10");

            Assert.That(_state1.GetLatestBlock().Transaction.GetData <string>(), Is.EqualTo("someData10"));
            Assert.That(_state2.GetLatestBlock().Transaction.GetData <string>(), Is.EqualTo("someData10"));
            Assert.That(_state3.GetLatestBlock().Transaction.GetData <string>(), Is.EqualTo("someData10"));
        }
        public async Task TestThatTwoNodesCanSynchronise()
        {
            _n1Address = new NodeAddress("127.0.0.1", 6101);
            _n2Address = new NodeAddress("127.0.0.1", 6102);

            _addresses = new List <NodeAddress> {
                _n1Address, _n2Address
            };

            _node1 = new Node(_n1Address, _addresses);
            _node2 = new Node(_n2Address, _addresses);

            _state1.WireUpNode(_node1);
            _state2.WireUpNode(_node2);

            _state1.LocalAdd("someData");

            Assert.That(_state1.GetLatestBlock().Transaction.GetData <string>(), Is.EqualTo("someData"));
            Assert.That(_state2.GetLatestBlock().Transaction.GetData <string>(), Is.EqualTo("someData"));
        }