- 通过实现一个简单的区块链,来加深对区块链运行机制的理解;
- 练习使用 Rust 开发的能力。
- 区块链的细节实现参考了 Bitcoin v0.3.0 的 C++ 源码。
- 提供 P2P 节点发现和同步区块的功能;
- 提供创建公私钥对的功能;
- 提供发送交易的功能;
- 提供交易查询的功能;
- 提供余额查询的功能;
- 提供挖矿的功能,在任意地址上都可以发起单机挖矿;
- 提供基础日志,方便跟踪监视。
-
mini_block_chain:区块链的顶层代码
-
bc_func_api:命令行接口实现
-
bc_explorer:web 前端、后端代码
-
bc_manager:用于管理区块链各种资源的模块
-
bc_consensus:共识模块
-
bc_wallet:钱包模块
-
bc_lib:基础功能
-
bc_p2p:P2P网络
-
bc_block_data: 定义了 block, block-index, transaction, transaction-index, misc 的数据库
-
bc_db: 对 rocketdb 的简单封装
-
bc_util: 定义了实用函数,这些函数只依赖于标准库和第三方库
-
bc_base: Blockchain 相关概念的基础抽象
- tracing:用于日志记录
- serde, bincode:用于序列化与反序列化
- secp256k1, sha2, ripemd, rand:密码学相关的库
- tokio: 异步 IO 库
- rocksdb: Rust 语言的 RocksDB 封装库
- axum: web framework
- libp2p: P2P 网络库
- 比特币白皮书
- Bitcoin Developer Guides en cn
- Bitcoin Reference
- Bitcoin 源码
- Blockchain Explained
- 极客时间的区块链课程
- Rust 权威指南(现在已出第二版)
- 极客时间的 Rust 课程
