package main
import (
"bytes"
"crypto/sha256"
"strconv"
"time"
)
type Block struct {
Timestamp int64
Data []byte
PrevBlockHash []byte
Hash []byte
}
func (b *Block) SetHash() {
timestamp := []byte(strconv.FormatInt(b.Timestamp, 10))
headers := bytes.Join([][]byte{b.PrevBlockHash, b.Data, timestamp}, []byte{})
hash := sha256.Sum256(headers)
b.Hash = hash[:]
}
func NewBlock(data string, prevBlockHash []byte) *Block {
block := &Block{time.Now().Unix(), []byte(data), prevBlockHash, []byte{}}
block.SetHash()
return block
}
func NewGenesisBlock() *Block {
return NewBlock("Genesis Block", []byte{})
}
weixin_45133652
- 粉丝: 2
- 资源: 2
最新资源
- Java实现小飞机游戏.zip学习资源代码
- Java实现网络对战俄罗斯方块,可单人游戏,多人PK,有音效.zip
- Java实现坦克大战游戏.zip学习资源
- java立体仓库WMS管理系统源码带教程数据库 MySQL源码类型 WebForm
- Java实现坦克大战游戏(软件设计模式).zip
- Delphi 12 控件之PowerMAP.zip
- Delphi 12 控件之DelphiXEIdHTTPServerUTF-8转换JSON解析源码测试可用89097-main.zip
- Delphi 12 控件之DelphiHTTP服务器代码36469-main.zip
- NamePipe winsrc
- Delphi 12 控件之dotConnect-for-Oracle-v10.3.104-Professional.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈