区块链项目 - 2 工作量证明

2.1 ProofOfWork框架

我们在区块中添加一个属性Nonce来表示区块的生成难度,它是区块生成的一个重要条件,Nonce值越高,代表生成区块的难度越大,通过这种难度从而避免区块随意生成,工作量证明则是要完成这一系列难度区块生产所需要的工作量

/Users/xxx/go/src/publicChain/part5-Basic-Prototype/BLC/Block.go

type Block struct {
   //1.block height
   Height int64
   //2.the last block's hash
   PreBlockHash []byte
   //3.transaction data
   Data []byte
   //4.timestamp
   Timestamp int64
   //5.block's hash
   Hash []byte
   //6.Nonce
   Nonce int64
}

当然生成区块的函数也要改一下

/Users/xxx/go/src/publicChain/part5-Basic-Prototype/BLC/Block.go

func Newblock(height int64, preBlockHash []byte, data string) *Block {

	//1.crate a new block

	block := &Block{height, preBlockHash, []byte(data), time.Now().Unix(), nil, 0}

	//2.calling the proof-of-work method returns Hash and Nonce
	
	pow := NewProofOfWork(block)
	hash, nonce := pow.Run()
	block.Hash = hash[:]
	block.Nonce = nonce

	return block
}

我们通过工作量证明来生成区块的哈希和Nonce

//2.calling the proof-of-work method returns Hash and Nonce
	
	pow := NewProofOfWork(block)
	hash, nonce := pow.Run()
	block.Hash = hash[:]
	block.Nonce = nonce

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值