FISCO-BCOS结构总览

By | 2018年7月14日

【FISCO】abi:CNS(合约命名服务)模块代码

将合约接口调用映射为名称,并内置合约版本管理。可以简化合约调用且灰度升级友好。此部分完全由FISCO-BCOS添加,是其一大特性。其内包含:

ContractAbiDBMgr:合约abi数据库管理。

ContractAbiMgr:合约abi管理,包括初始化,获取合约地址信息等

SolidityAbi:(对solidity)进行rlp编解码,其中包含当前abi中的所有函数、事件等信息,并包含自解析这些是信息的函数。

SolidityBaseType:定义Solidity的基础数据类型

SolidityCoder:对Solidity进行序列化和反序列化

SolidityExp:处理异常(exception)

SolidityTools:工具类。包括对数据进行检查、转换、对各种类型数据进行序列化等(如地址、各种byte、string、int、bool等)

 

eth:主入口目录,包含main()

main:主要进行环境设置、变量初始化、对输入的命令和参数进行识别和处理、处理日志、启动各种连接、处理各种加密、启动网络等

AccountManager:CLI账户管理器

GenesisInfo:创世区块的信息记录

Farm:大概是给矿池用的。这个是由jsonrpcstub生成的,不能进行人为修改。

genesisInfoForWe【FISCO】:给We(我们?)的创世信息。直接以字符串形式存储了静态的创世区块信息、config信息。此文件由FISCO-BCOS编写,功能及意义不详。

 

libchannelserver:AMOP(链上链下通讯协议)实现

【FISCO】AMOP为“基于区块链网络的信息通讯协议”,目标是实现可跨行的点对点即时安全通讯,使一些业务可以通过已有的区块链网络分为链上链下部分完成,并可以主动和已有链下接口交互。另,也可用于跨链通讯。

ChannelSession:管理会话通道。包括握手、信息收发、同步等一个正常会话通道需要的东西。

ChannelServer:管理服务端通道。包括设置SSL、连接管理器、IO服务等

ChannelMessage:定义了Message的结构,自带编解码函数

ChannelException:处理异常

 

libdevcore:基础通用组件实现,如工具类函数、基础数据结构定义、IO操作函数、读写锁、内存DB、TrieDB、SHA3实现、RLP编解码实现、Worker模型等

【FISCO】DBStatLog、easylog、LogGuard、StatCommon(定义了状态码、log标签)、StateMonitor(可以按周期存储、上报state)

 

【FISCO】libdiskencryption:落盘存储加密实现

BatchEncrypto对数据进行加解密

CryptoParam加密参数

DbEncrypto:数据库加解密

GenKey:密钥生成

 

libethcore:核心数据结构目录。如ABI、密钥管理、区块头、预编译、交易结构等

libethereum:主框架逻辑目录。如交易池、系统合约、节点管理、块链、块、链参数等

【FISCO】NodeConnParamsManager:节点连接参数管理器。包含与CA相关的功能,如状态、信息的存储,验证,获取黑/白名单。节点控制管理:添加/删除节点(需要发起网络同步)、链接/断开节点连接

【FISCO】NodeConnParamsManagerApi:节点连接管理器api

【FISCO】NonceCheck:nonce校验

【FISCO】StatLog、SystemContract(系统合约主hub)、SystemContractApi、Web3Observer

 

libevm:虚拟机主目录。包括解释器、JIT等

 

【FISCO】CoverTool

???????????????

 

另,其下有一个“ethcall”目录完全属于fisco,怀疑是传说中管理eth调用的。其中还有签名验证、TrieProof等

 

libevmcore:OPCODE指令集定义、定价

 

libp2p:区块链P2P网络主目录。包括握手、网络包解编码、会话管理等

【FISCO】HandshakeCAData、HandshakeWBCAData、ParseCert(解析)、SessionCAData、SessionWBCAData

libpaillier:同态加密算法。纯C写的,萌新瑟瑟发抖

libpbftseal:PBFT共识插件实现目录。这目录一套PBFT全是FISCO自己写的

linraftseal:RAFT共识插件实现目录。这目录一套RAFT全是FISCO自己写的

libstatistics:访问频率统计、控制实现目录

libweb3jsonrpc:web3 RPC实现目录,Dfs里极其大概都是FISCO写的,Dfs=分布式文件服务

sample:一键安装、部署

systemproxyv2:系统合约实现目录

 

 

 

系统合约:FISCO-BCOS内置的智能合约。主要有:系统代理、节点管理、机构证书、管理权限、全网配置合约。

其重新部署需要全网认可,更新参数配置文件的systemproxyaddress后重启。

系统代理合约:系统合约统一入口,提供路由名称到合约地址的映射

节点管理合约:主要维护网络中的节点列表,可以通过它管理节点的加入/退出

机构证书合约:维护机构证书信息。

权限管理合约:可以管理账户权限,一个外部账户有且只有一个角色,每种角色都有自己的权限列表。权限项通过合约地址+合约接口进行标识

全网配置合约:维护部分全网运行配置信息,目标是为了通过交易的全网共识来达成全网配置的一致更新

 

 

 

路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。

不同的请求地址会交给路由处理来转发给相应的控制器处理,所以说路由就可以在转发前修改转发地址,你可以在这上面大作文章。

在web开发中,“route”是指根据url分配到对应的处理程序。

点击量:538

One thought on “FISCO-BCOS结构总览

发表评论

邮箱地址不会被公开。 必填项已用*标注