区块链V1版本实现之二
部分程序代码(生成并调用hash代码):
1 //创建区块,对Block的每一个字段填充数据 2 func NewBlock(data string, prevBlockHash []byte) *Block{ 3 block := Block{ 4 PrevBlockHash: prevBlockHash, 5 Hash: []byte{}, //先填充为空 6 Data: []byte(data), 7 } 8 9 //V1之二版本添加实现hash输出 10 block.SetHash() 11 12 return &block 13 } 14 15 //为了生成区块哈希,实现一个简单的函数,来计算哈希值,没有随机值,没有难度值 16 func (block *Block) SetHash() { 17 var data []byte 18 data = append(data, block.PrevBlockHash...) 19 data = append(data, block.Data...) 20 21 hash /* [32]byte */:= sha256.Sum256(data) 22 block.Hash = hash[:] 23 }
输出效果: