核心数据结构
链 -> 区块 -> 交易 -> 输入、输出、签名、智能合约
钱包 -> 账户、交易输出数据/密钥镜像
共识机制
架构设计:
- Server 专指对外提供 RPC 时,自己担当服务端
- Core 除 Server 外,大大小小事务
- self 高度、难度、当前手续费等,虽然信息比较少,但也有
- has_many 区块、孤儿块(软分叉)、硬分叉
- has_one 存储、网络、交易池、主链
当前看来核心功能有:
- 挖矿 - 新币的产生、共识(工作量证明)
- 转账 - 所有权的交换、签名验证
- 智能合约 - 允许在没有第三方的情况下进行可信交易,涉及编写和执行(第一代“比特币”没有,第二代“以太坊”提供)
使用 BlockDAG 而非 BlockChain 结构,需面临新的难点及方案:
- 主链的选择确认
- 区块的全排序
- 奖罚机制的调整
引入智能合约后,还有延迟执行等方案。
区块链最核心模块:
- 内核
- 钱包
本模块功能分为:
参考我对区块链的模块分类,以及数据结构划分,可以提前
- 链、区块、交易(产生交易、交易打包成块,产生区块、区块上链,上述过程中的中间状态,以及相关概念,涉及很多细节)
- 网络传输(数据进来、数据出去)
- 数据存储(读数据、写数据)
- 服务端、客户端(身为服务端,为客户端服务)