Getting invalid blocks

+2 votes

Hi Team, 

I 'm trying to perform a sustained load test on multichain with 2 peers. Recently I 've started seeing a lot of invalid blocks. Can you please let me know the reason for getting such blocks. Right now I 'm not sending any request to my multichain still new blocks are getting mined which I think because of autocombining feature which I included in the runtime. But why blocks are being marked invalid, that's a concern and when it happens so I lose all transactions in that block? 


2017-11-30 07:58:27 MultiChainMiner: Block Found - 00e0b15d819fb821d2157f5bbf931e3550991ae50238b7495d78136e28a04d65, prev: 005d3ddc79d86b6900f1958a96682ac24297ac5b26d909df2ea38bc7bc3b0568, height: 5123, txs: 2
2017-11-30 07:58:27 ERROR: ContextualCheckBlock : block height mismatch in coinbase
2017-11-30 07:58:27 ERROR: ProcessNewBlock : AcceptBlock FAILED
2017-11-30 07:58:27 ERROR: MultiChainMiner : ProcessNewBlock, block not accepted


It  is a very critical issue as per me. 




asked Nov 30, 2017 by ashish235

1 Answer

+1 vote
The tech team has discussed this. We think we know what is causing it (a block being mined by one node while another block comes in from another node, so it has the wrong height). But in any event it is not a cause for concern – these invalid blocks are simply ignored and play no role in the chain.
answered Nov 30, 2017 by MultiChain
Yeah, I 've round robin mining so both my nodes are mining the blocks. So if in a blocktime say there are 30 transactions and that particular block was marked invalid (which I think means this block doesn't get to be part of the blockchain) what happens to that 30 transactions? The same block with 30 transactions would be mined by the other node since all the nodes are aware of every transaction?

My blocktime is 15 secs, and for mining I think it shouldn't take more than 1 sec with default difficulty settings. So how did this mismatch happen.
There's no problem with transactions that are in a block that doesn't end up in the chain. Those transactions are automatically re-added to a node's pending list ("memory pool") once the block containing them is not accepted.