区块链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 }

输出效果:

 

posted @ 2020-11-21 21:37  北漂的尘埃  阅读(87)  评论(0编辑  收藏  举报