FISCO BCOS代码分析

FISCO BCOS源代码目录

FISCO BCOS的代码大量参考了以太坊C++的代码

================================

目录

UTXO

以太坊使用账户管理余额,比特币则使用UTXO模型。以太坊的账户模型主要有两点限制:

  • 对于以太坊的账户模型,来源账户在给去向账户进行转账时,直接从本账户的余额中扣减转账数额,但无法确定所扣减的数额全部/部分来源于先前哪一笔交易,有哪些前置的消费条件,从而无法进行转账前的业务逻辑校验。

  • 当同一来源账户在给多个去向账户进行转账时,存在多个交易共同操作来源账户余额的情况,基于以太坊数据一致性方案中交易列表及交易回执的有序性要求,区块链网络无法对转账交易进行并行处理。

因此FISCO BCOS增加了对于UTXO的支持,可以使用带有Token的资产,这些资产有明确的金额和所有权。

具体内容请参考以下链接:以太坊上基于UTXO模型的转账交易方案使用手册
返回目录

abi

CNS(合约命名服务)模块代码

cert

CA认证生成脚本。和以太坊不同,所有的节点都必须持有CA认证才允许加入网络。

cmake

deps

doc

docker

Docker镜像示例

eth

主入口目录,其中main.cpp包含main函数入口

evmjit

VM JIT is a library for just-in-time compilation of Ethereum EVM code. It can be used to substitute classic interpreter-like EVM Virtual Machine in Ethereum client.

homebrew

Mac OS包管理软件

libchannelserver

AMOP(链上链下通信协议)实现目录

libcontact

libdevcore

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

libdevcrypto

加密算法包,相对于以太坊源代码,FISCO BCOS添加了对于国产密码学标准的支持。

算法类型 国密版FISCO BCOS 非国密版FISCO BCOS
签名算法 SM2 (公私钥长度:512 bits, 256 bits) ECDSA (公私钥长度: 512 bits, 256 bits)
哈希算法 SM3 (哈希串长度: 256 bits) SHA3 (哈希串长度: 256 bits)
对称加解密算法 SM4 (对称密钥长度: 128 bits) AES (加密秘钥长度: 256 bits)

请参考FISCO BCOS国密特性
回到目录

libdiskencryption

存储层面上的加密, 落盘存储加密实现目录

libethcore

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

libethereum

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

libevm

虚拟机主目录。如解释器、JIT等等

libevmcore

OPCODE指令集定义、定价

libodbc

支持数据库分布式存储

libp2p

p2p包实现了通用的p2p网络协议。包括节点的查找,节点状态的维护,节点连接的建立等p2p的功能。p2p 包实现的是通用的p2p协议。 某一种具体的协议(比如eth协议。 whisper协议。 swarm协议)被封装成特定的接口注入p2p包。所以p2p内部不包含具体协议的实现。 只完成了p2p网络应该做的事情。FISCO BCOS添加了节点SSL校验,用于节点介入控制和认证。
和以太坊一样,FISCO BCOS也支持RPLx。RLPx协议属于会话层的协议,主要功能是在节点之间建立并维持通信,节点的发现和节点之间数据流的传输主要是由传输层的UDP和TCP协议完成.
RLPx协议实现了完备的前向安全性(Perfect Forward Secrecy),即现有的密钥泄漏不会导致之前信道上的信息被破解,因为RLPx协议每次建立的连接都使用了不同的密钥.
实现过程是通过了一次Diffie–Hellman密钥交换,连接的双方各随机生成一个私钥,然后将算出的公钥发送给对方,最后双方通过手中的密钥和对方的公钥生成了一个共享密钥,此次连接的信道上将会使用此共享密钥加密传输信息.
回到目录

libpaillier

FISCO BCOS支持加法同态,可以在不解密的情况下,对于加密数据进行加法操作,而不泄露参与加法的具体数字。
回到目录

libpbftseal

不同于比特币的PoW,和以太坊的PoS,PBFT(拜占庭容错)是FISCO BCOS的共识算法之一。
回到目录

libraftseal

RAFT是FISCO BCOS支持的另外一种共识算法,相比于PBFT的1/3,RAFT可以提供1/2的容错率。RAFT本质上是一种同步算法,不解决容错的作恶的问题。
回到目录

libsinglepoint

共识算法插件

libstatistic

访问频率统计与控制实现目录

libweb3jsonrpc

web3 RPC实现目录

libwebthree

libwhisper

Whisper协议——Whisper协议是DApp间通信的通信协议。Whisper是为需要大规模的多对多数据发现、信号谈判和最少的传输通信、完全的隐私保护的下一代DApp而设计的。此功能为以太坊基础通讯协议。
Whisper(低语者)是以太坊的一个功能扩展。它是以太坊生态中的一个重要一环(以太坊的智能合约smart contract实现了分布式逻辑,以太坊的Swarm实现了分布式存储,以太坊的Whisper实现了分布式消息)。
Whisper将实现智能合约间的消息互通,届时可以实现功能更加复杂的DApp。

sample

一键安装与部署

script

与安装相关的脚本

smartcontract

系统合约实现目录

tool

utils

web3lib

web3 是一个通过RPC 调用 和本地节点进行通信的js库。web3可以与任何暴露了RPC接口的以太坊节点连接。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容