package main import "time" // Blockchain keeps a sequence of Blocks type Blockchain struct { blocks []*Block } // AddBlock saves provided data as a block in the blockchain func (bc *Blockchain) AddBlock(data string) { prevBlock := bc.blocks[len(bc.blocks)-1] newBlock := &Block{time.Now().Unix(), []byte(data), prevBlock.hash, []byte("")} newBlock.SetHash() bc.blocks = append(bc.blocks, newBlock) } // NewBlockchain creates a new Blockchain with genesis Block func NewBlockchain() *Blockchain { return &Blockchain{[]*Block{NewGenesisBlock()}} }