graphene-代码解析
- 应用层Executables:最下层的可执行程序有见证节点witness_node,独立钱包cli_wallet和构造创世区块的工具genesis_util。应用层是对插件库、核心API库以及通用工具库的调用组合,实现其业务功能。
- 插件层Plugin-Ins:插件对核心API进行封装以提供较为完整独立的服务,譬如区块链查询,交易验证执行,打包区块,P2P网络通信等服务。
- 核心API层API/Core: 实现了基础核心业务功能组件,譬如网络、数据库,钱包相关功能(签名,私钥生成,验证),区块打包计算。
- 通用工具库FC utilities:提供业务无关的基础功能工具。
石墨烯的关键技术之一就是高度模块化,将内部节点间的分布式通信能力封装成插件(plugins),由上层的应用程序(DAPP)动态加载调用,使得应用开发者无需关注区块链底层细节,极大降低了开发难度,同时更具可扩展性。
石墨烯架构采用DPoS(Delegated proof of stake)共识算法,使得处理性能可以媲美传统的中心化架构。
对象 ID 类型
object 类中还有三个重要的属性:
每个对象的标识都有三部分组成: space_id, type_id, 和 sequence_id
Graphene 中的对象 ID 总共 64 位, space id 占最高 8 位, type id 占中间 8 位, 最低 48 位是 sequence_id.
在 bitshares 钱包或者区块链浏览器看到过 1.2.12376 这样的标识, 这里 type_id 是 2, 代表的就是对象类型, 12376 代表这个账户是链上的第几个被创建的账户