区块链V1版本实现之三
部分程序代码(区块链的定义及遍历打印):
1 //创建区块链,使用Block数组模拟 2 type BlockChain struct { 3 Blocks []*Block 4 } 5 6 //实现创建区块链的方法 7 func NewBlockChain() *BlockChain { 8 //在创建的时候添加一个区块:创世块 9 genesisBlock := NewBlock(genesisInfo, []byte{0x0000000000000000}) 10 11 bc := BlockChain{Blocks: []*Block{genesisBlock}} 12 return &bc 13 } 14 15 16 17 func main() { 18 fmt.Printf("HelloWorld!!!\n") 19 20 ////区块实例化 21 //block := NewBlock(genesisInfo,[]byte{0x0000000000000000}) 22 bc := NewBlockChain() 23 24 for _, block := range bc.Blocks{ 25 //区块打印 26 fmt.Printf("PrevBlockHash : %x\n", block.PrevBlockHash) 27 fmt.Printf("Hash : %x\n", block.Hash) 28 fmt.Printf("Data : %s\n", block.Data) 29 } 30 }
输出效果: