22 lines
556 B
Go
22 lines
556 B
Go
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()}}
|
|
}
|