rust编写简单区块链

区块链概念

比特币

  • 2008年,《Bitcoin: A Peer-to-Peer Electronic Cash System》
  • 去中心化的,共享的,防篡改的分布式账本;
    • 分布式账本的同步策略是什么样的?
    • 如何防篡改?
    • 广播方式,如何保证网络传输效率?

比特币是区块链的一种应用。

区块链除了比特币还有哪些应用场景?

区块链交易流程

  1. 用户发起交易
  2. 交易广播
  3. 各矿工节点打包区块
  4. 区块广播
  5. 节点将区块加入到账本

详细内容可以找一些其他介绍资料

用 Rust 写区块链

介绍

  • 实现简单的链式结构,能够创建区块;
  • 用到序列化、反序列化、求hash等知识点;

区块结构

区块头

1
2
3
4
5
pub struct BlockHeader {
pub time: i64, // timestamp
pub tx_hash: String, // transactions merkle hash
pub pre_hash: String, // hash of the pre block
}

区块体

1
2
3
4
5
pub struct Block {
pub header: BlockHeader,
pub hash: String, // hash of the block header
pub data: String, // transactions data
}

这里block之间链接的方式,是通过存储前一block hash的做法达到,而不是常规 list 的存储前一block 指针的形式。

问题:是不是因为 rust 实现 list 比较麻烦,所以这里改用简单的形式?

区块链结构

1
2
3
pub struct BlockChain {
pub blocks: Vec<block::Block>,
}

参考资料

其他

编写简单区块链代码

  1. 定义方法时,可以参考已知库中类似的方法的签名;
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2023 ligongzhao
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信