简单区块实现
区块链技术如今已经越来越成熟,但是我们怎么深入到本质用技术的眼光来看待区块链技术,见名知意,区块链的意思就是用链条把区块链接起来,那我们先用代码来看一下,今天我们用go语言来简单的实现一个区块并打印。
我们可以先来理一下思路,我们想要实现一个区块该怎么办,思路理好然后再来代码一步一步实现
- 创建一个结构体来保存一个区块的信息 //大概包括时间戳,数据,前哈希,本哈希这几个数据
- 创建第一个区块并给其中的数据赋值,也就相当于一个创世块,注意这里创世块的前哈希传一个空值就可以
- 给这个区块的数据处理一下然后加密得到本区块的哈希
- 主函数里面打印看一下本区块的哈希 //哈希用16进制打印
大概这样思路就可以理顺了,然后我们就可以一步一步实现了
1:第一步创建一个区块结构体
1 | type Block struct { |
区块结构体创建完成,继续下一步
2:创建第一个区块
1 | func Firstblosk() *Block { //创建第一个区块信息,相当于一个创始块 |
1 | func NewBlock(data string, prevhash []byte) *Block { //创建区块的函数 |
用来创建第一个区块
3:给区块信息数据处理
1 | func (block *Block) setHash() { |
4:主函数里面打印看一下本区块的哈希 //哈希用16进制打印
1 | func main() { |
这样一个简单的区块就创建成功了,我们把所有代码连接起来然后来看一下打印结果
1 | package main |
我们来看一下哈希打印结果
这样一个简单的区块就实现了,那么如果要实现一个简单的区块链呢?其实也按照这样的思路写下去也很容易实现,记住:区块链的本区块的哈希是下一个区块的前哈希,这样链接,下一章我们将讲解一个简单的区块链实现。