Do not fail hard on shard state mismatch

This is because CalculateNewShardState() has been seen to be
nondeterministic (different output with the same input).
pull/839/head
Eugene Kim 6 years ago
parent be151a81b9
commit 7eaf379757
  1. 7
      node/node_handler.go

@ -315,7 +315,12 @@ func (node *Node) validateNewShardState(block *types.Block, stakeInfo *map[commo
if types.CompareShardState(expected, proposed) != 0 { if types.CompareShardState(expected, proposed) != 0 {
// TODO ek – log state proposal differences // TODO ek – log state proposal differences
// TODO ek – this error should trigger view change // TODO ek – this error should trigger view change
return errors.New("shard state proposal is different from expected") err := errors.New("shard state proposal is different from expected")
// TODO ek/chao – calculated shard state is different even with the
// same input, i.e. it is nondeterministic.
// Don't treat this as a blocker until we fix the nondeterminism.
//return err
ctxerror.Log15(utils.GetLogger().Warn, err)
} }
} else { } else {
// Regular validators fetch the local-shard copy on the beacon chain // Regular validators fetch the local-shard copy on the beacon chain

Loading…
Cancel
Save