1. 完善区块链原型,引入交易
1.1 修改块结构,将Data换成交易stuct,删除了原有的block.go文件中的SetHash()方法,因为现在区块的hash是根据交易来计算的,而不是原来的string类型的data模拟数据了。
// 区块
type Block struct {
Timestamp int64 // 当前时间戳,也就是区块的创建时间
Transactions []*Transaction //一个区块可以包含多笔交易
PrevBlockHash []byte // 前一个区块的Hash
Hash []byte // 当前区块的Hash,通过sha256计算而得,所有需要sha256进行hash计算的都需要提供切片类型数据
Nonce int // 工作量证明中使用的计数器
}
1.2 创币交易的函数
func NewCoinbaseTX(to, data string) *Transaction