老师为什么我运行的结果是invalid block 这是怎么引起的?
调试这个函数试试,看看是那个返回false
func isValid(newBlcok Block, oldBlock Block) bool { if newBlcok.Index-1 != int64(oldBlock.Index) { return false } if newBlcok.PreBlockHash != oldBlock.Hash { return false } if calculateHash(newBlcok) != newBlcok.Hash { return false } return true }
Block结构体中的GenerateNewBlock函数中的hash必须等data赋值完之后再计算,顺序换一下就可以了