Off-Chain Data – risk of logical data loss?

+2 votes

Hi, lets assume, that you run a 4 node cluster in two different data centers. Let’s also assume, that each node can mine new blocks and you are using a mining-turnover that is greater 0.

What will happen in a case of a network failure, where both data centers are separated from each other, but internally intact. The chain might create a fork and after both chains are reunited, the blocks added to the „shorter chain“ during the separation phase would be eliminated temporarily.

So here is the question: How will the system manage the off-chain data for blocks in the shorter chain? As I understood transactions in the shorter branch re-enter the memory pool of nodes, which leaves them in the regular situation of waiting for confirmation, but being visible to all nodes. Doesn’t this leave a theoretic possibility of losing data from the mem pool, while the old/new blocks are re-entering the system and the off-chain data is already written?

asked Sep 5, 2018 by Beat Master B

1 Answer

+2 votes

First for any production system we recommend setting mining-diversity over 0.5, so that in this type of network partition event, only one of the partitions will have sufficient mining nodes to keep building the chain. The chain in the other partition will quickly freeze up with no new confirmations.

But to discuss the scenario you mention, so long as there are no double-spend conflicts between transactions in the two forks, all the transactions in the rewound fork can still be confirmed over time. They will be in the memory pools of multiple nodes, so the transactions would only be lost if all of those memory pools were simultaneously destroyed.

answered Sep 5, 2018 by MultiChain