GOCN社区Go高级工程师实战营
验证哈希是否符合PoW
/**
验证哈希的前缀是否包含difficulty个0 已报名Go底部评 */func isHashValid(hash string, difficulty int) bool {
prefix := strings.Repeat("0", difficulty)
return strings.HasPrefix(hash, prefix)}
选择长链
因为在实际场景中,区块链可能会产生分叉,造成A和B长短不一的情况,故而选择长的作为新链
/**
选择长链作为正确的链
*/
func replaceChain(newBlocks []Block) {
if len(newBlocks) > len(BlockChain) { // 计算数组长度
BlockChain = newBlocks }
}