GOCN社區(qū)Go高級工程師實戰(zhàn)營
驗證哈希是否符合PoW
/**
驗證哈希的前綴是否包含difficulty個0? 已報名Go底部評 */func isHashValid(hash string, difficulty int) bool {
? prefix := strings.Repeat("0", difficulty)
? return strings.HasPrefix(hash, prefix)}
選擇長鏈
因為在實際場景中,區(qū)塊鏈可能會產(chǎn)生分叉,造成A和B長短不一的情況,故而選擇長的作為新鏈
/**
選擇長鏈作為正確的鏈
*/
func replaceChain(newBlocks []Block) {
? if len(newBlocks) > len(BlockChain) { // 計算數(shù)組長度
? ? ?BlockChain = newBlocks ? }
}
標(biāo)簽: