012-013-part-9 区块的Serialize Deserialize

存储区块链其实是存储所有区块到数据库

kv数据库 boltdb

  1. 把区块序列化成【】byte,
  2. 以当前区块的hash为key,
  3. 以序列化以后的byte数组value

db.put(block.hash,block.Serial() )

以后拿到hash就可以把hash作为key取得value
反序列化就可以得到区块,就可以得到prevhashprevhash0时退出遍历的循环

只要有了最新的hash,依次就可以遍历区块链

怎么序列化,怎么反序列化,怎么创建数据库,数据库原理

想打开数据库,两种情况,数据库存在,

数据库不存在->创建数据库

数据库的表是什么?就是kv,打开数据库后没表要创建表

打开表后取数据

view查看 update更新

命令行工具CLI

编译后在终端里运行,为什么是./tendermint呢?是因为不在bin(在path中)中,不在path中


接下来开始讨论序列化

序列化应该是block的方法哦(返回【】byte)

反序列化就不是block的方法了,用包调用,传入【】byte,返回*Block

打包成【】byte
在这里插入图片描述解包【】byte在这里插入图片描述
测试在这里插入图片描述

不用深究,里面都是io操作在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>