Commit Graph
16608 Commits
Author SHA1 Message Date
jl777 e76694e44c test 2018-04-20 19:43:35 +03:00
jl777 f4b367397a Fix polarity of compare 2018-04-20 17:42:58 +03:00
jl777 2ac071da47 KOMODO_LIMITED_NETWORKSIZE
Prior commits relate to supporting a limited size network.

It looks like there is an edge case where it is possible for a hash to
be in the mapIndex, without a pindex. If a block with such a hash is
tried to be Accepted, the AcceptBlockHeader returns true but with a
null pindex, and AcceptBlock fails.

The code says that this indicates that the hash was added from a
blockheader without a block, but I didn’t see that happening. In any
case, it happens a lot on a 2 node network. So much so that if one node
is just mining, before too long the other node will not accept the
block and once that happens, no subsequent block would work as the
prior block is missing.

Of course, with more nodes, these blocks will be around a lot more and
likely it won’t be such an issue, but not so sure that it doesn’t
require restarting the node to get it back on track again.

These prior commits implement a KOMODO_LIMITED_NETWORKSIZE logic where
if it sees that a block has come in which is in the mapIndex but has no
pindex, it automatically addtoblockindex.

There is one edge case still left where both the current block being
processed and its previous block are in this limbo state. Since the
pindex is not mapped to the block, it is problematic to retrieve the
CBlock for the pprev and without the valid pprev the pindex will have a
null pprev and no nHeight set. It is possible that all the other code
will properly deal with such a case and automatically fix it, but
rather than rely on that, in such a case the automatic addtoblockindex
is not done.

A node in such a state would need to exit and restart or somehow fill
in the data from other nodes.

From what I can tell, the above is the main reason why the PoS/PoW
networks were having problems staying in sync. Since even with one
mining node, it was just a matter of time before the other node got
stuck, with more than one mining node we end up with independent forks
that won’t reconcile until the node is restarted.
2018-04-20 17:16:06 +03:00
jl777 a772476349 Test 2018-04-20 16:55:34 +03:00
jl777 3128a24af6 Test 2018-04-20 13:35:16 +03:00
jl777 563d507c61 Test 2018-04-20 13:30:54 +03:00
jl777 cfb55edbbc Test 2018-04-20 13:25:22 +03:00
jl777 7b025a4790 Test 2018-04-20 13:24:48 +03:00
jl777 dd66e3af3a Test 2018-04-20 13:20:26 +03:00
jl777 e16d22ee0f Test 2018-04-20 13:13:18 +03:00
jl777 9464ac21bc Test 2018-04-20 13:03:27 +03:00
jl777 820600d13f Test 2018-04-20 12:43:08 +03:00
jl777 b85130925b Test 2018-04-20 12:42:27 +03:00
jl777 66dd02d288 Test 2018-04-20 12:32:39 +03:00
jl777 b1d85b23e6 Test 2018-04-20 12:21:01 +03:00
jl777 519578c9c9 Test 2018-04-20 12:17:02 +03:00
jl777 0f102ea7e3 Test 2018-04-20 12:14:11 +03:00
jl777 5295318ec4 Test 2018-04-20 12:08:51 +03:00
jl777 8dcf7f3fab Test 2018-04-20 12:07:57 +03:00
jl777 b5d0fe2e24 Test 2018-04-20 11:55:06 +03:00
jl777 b92dfb1eb5 Test 2018-04-20 11:53:02 +03:00
jl777 7732dbc26b Test 2018-04-20 11:34:37 +03:00
jl777 9850dffd80 Test 2018-04-20 11:30:27 +03:00
jl777 fd835d9406 Test 2018-04-20 11:29:12 +03:00
jl777 592f6fa210 Test 2018-04-20 11:24:41 +03:00
jl777 bc2bcf8551 Test 2018-04-20 11:24:01 +03:00
jl777 4aad3872a9 Test 2018-04-20 11:20:57 +03:00
jl777 bee39cbbbb Test 2018-04-20 11:20:11 +03:00
jl777 17522a5557 Test 2018-04-20 11:19:35 +03:00
jl777 415f5097cf Test 2018-04-20 10:59:21 +03:00
jl777 e14073653c Test 2018-04-20 10:55:12 +03:00
jl777 6d3df1e66c Test 2018-04-20 10:47:27 +03:00
jl777 4f48647cdc Test 2018-04-20 10:30:40 +03:00
jl777 26f6fa01cb Add back MoM that dev merge undid 2018-04-20 09:38:46 +03:00
jl777 74d30ec279 Merge branch 'dev' into jl777 2018-04-20 09:32:24 +03:00
jl777 02290a3fd8 Test 2018-04-20 01:15:21 +03:00
jl777 8d028ba061 Test 2018-04-20 01:06:43 +03:00
jl777 7377cedcf6 Test 2018-04-20 00:40:03 +03:00
jl777 65b4e8809d Test 2018-04-20 00:39:38 +03:00
jl777 8eb43ab4ff Decrement notes for assetchains, need to test 2018-04-20 00:23:58 +03:00
jl777 ec5b59fd30 Test 2018-04-19 23:34:55 +03:00
jl777 f1b57a6e76 Test 2018-04-19 23:18:23 +03:00
jl777 13b8b2ed26 Test 2018-04-19 23:11:11 +03:00
jl777 bd87f0c09e Test 2018-04-19 22:43:52 +03:00
jl777 96df006a14 Test 2018-04-19 21:11:09 +03:00
jl777 a1a721bd45 Test 2018-04-19 21:00:57 +03:00
jl777 d07308d221 Test 2018-04-19 20:59:03 +03:00
jl777 d9935f2b61 Test 2018-04-19 20:54:47 +03:00
jl777 8ab6dd61df Test 2018-04-19 20:51:43 +03:00
jl777 6d7537dedb Test 2018-04-19 20:48:27 +03:00