FISCO BCOS代碼分析

FISCO BCOS源代碼目錄

FISCO BCOS的代碼大量參考了以太坊C++的代碼

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

目錄

UTXO

以太坊使用賬戶管理余額,比特幣則使用UTXO模型森枪。以太坊的賬戶模型主要有兩點限制:

  • 對于以太坊的賬戶模型挡育,來源賬戶在給去向賬戶進行轉賬時着茸,直接從本賬戶的余額中扣減轉賬數(shù)額资昧,但無法確定所扣減的數(shù)額全部/部分來源于先前哪一筆交易,有哪些前置的消費條件耘斩,從而無法進行轉賬前的業(yè)務邏輯校驗顺少。

  • 當同一來源賬戶在給多個去向賬戶進行轉賬時,存在多個交易共同操作來源賬戶余額的情況倦始,基于以太坊數(shù)據(jù)一致性方案中交易列表及交易回執(zhí)的有序性要求斗遏,區(qū)塊鏈網(wǎng)絡無法對轉賬交易進行并行處理。

因此FISCO BCOS增加了對于UTXO的支持鞋邑,可以使用帶有Token的資產(chǎn)诵次,這些資產(chǎn)有明確的金額和所有權。

具體內容請參考以下鏈接:以太坊上基于UTXO模型的轉賬交易方案使用手冊
返回目錄

abi

CNS(合約命名服務)模塊代碼

cert

CA認證生成腳本枚碗。和以太坊不同逾一,所有的節(jié)點都必須持有CA認證才允許加入網(wǎng)絡。

cmake

deps

doc

docker

Docker鏡像示例

eth

主入口目錄肮雨,其中main.cpp包含main函數(shù)入口

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(鏈上鏈下通信協(xié)議)實現(xiàn)目錄

libcontact

libdevcore

基礎通用組件實現(xiàn)目錄遵堵,如工具類函數(shù)、基礎數(shù)據(jù)類型結構定義怨规、IO操作函數(shù)陌宿、讀寫鎖、內存DB椅亚、TrieDB限番、SHA3實現(xiàn)、RLP編解碼實現(xiàn)呀舔、Worker模型等等

libdevcrypto

加密算法包弥虐,相對于以太坊源代碼,F(xiàn)ISCO BCOS添加了對于國產(chǎn)密碼學標準的支持媚赖。

算法類型 國密版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

存儲層面上的加密, 落盤存儲加密實現(xiàn)目錄

libethcore

區(qū)塊鏈核心數(shù)據(jù)結構目錄霜瘪。如ABI、秘鑰管理惧磺、區(qū)塊頭颖对、預編譯、交易結構等等

libethereum

區(qū)塊鏈主框架邏輯目錄磨隘。如交易池缤底、系統(tǒng)合約、節(jié)點管理番捂、塊鏈个唧、塊、鏈參數(shù)等等

libevm

虛擬機主目錄设预。如解釋器徙歼、JIT等等

libevmcore

OPCODE指令集定義、定價

libodbc

支持數(shù)據(jù)庫分布式存儲

libp2p

p2p包實現(xiàn)了通用的p2p網(wǎng)絡協(xié)議。包括節(jié)點的查找魄梯,節(jié)點狀態(tài)的維護桨螺,節(jié)點連接的建立等p2p的功能。p2p 包實現(xiàn)的是通用的p2p協(xié)議酿秸。 某一種具體的協(xié)議(比如eth協(xié)議灭翔。 whisper協(xié)議。 swarm協(xié)議)被封裝成特定的接口注入p2p包允扇。所以p2p內部不包含具體協(xié)議的實現(xiàn)缠局。 只完成了p2p網(wǎng)絡應該做的事情。FISCO BCOS添加了節(jié)點SSL校驗考润,用于節(jié)點介入控制和認證狭园。
和以太坊一樣,F(xiàn)ISCO BCOS也支持RPLx糊治。RLPx協(xié)議屬于會話層的協(xié)議,主要功能是在節(jié)點之間建立并維持通信,節(jié)點的發(fā)現(xiàn)和節(jié)點之間數(shù)據(jù)流的傳輸主要是由傳輸層的UDP和TCP協(xié)議完成.
RLPx協(xié)議實現(xiàn)了完備的前向安全性(Perfect Forward Secrecy),即現(xiàn)有的密鑰泄漏不會導致之前信道上的信息被破解,因為RLPx協(xié)議每次建立的連接都使用了不同的密鑰.
實現(xiàn)過程是通過了一次Diffie–Hellman密鑰交換,連接的雙方各隨機生成一個私鑰,然后將算出的公鑰發(fā)送給對方,最后雙方通過手中的密鑰和對方的公鑰生成了一個共享密鑰,此次連接的信道上將會使用此共享密鑰加密傳輸信息.
回到目錄

libpaillier

FISCO BCOS支持加法同態(tài)唱矛,可以在不解密的情況下,對于加密數(shù)據(jù)進行加法操作井辜,而不泄露參與加法的具體數(shù)字绎谦。
回到目錄

libpbftseal

不同于比特幣的PoW,和以太坊的PoS粥脚,PBFT(拜占庭容錯)是FISCO BCOS的共識算法之一窃肠。
回到目錄

libraftseal

RAFT是FISCO BCOS支持的另外一種共識算法,相比于PBFT的1/3刷允,RAFT可以提供1/2的容錯率冤留。RAFT本質上是一種同步算法,不解決容錯的作惡的問題树灶。
回到目錄

libsinglepoint

共識算法插件

libstatistic

訪問頻率統(tǒng)計與控制實現(xiàn)目錄

libweb3jsonrpc

web3 RPC實現(xiàn)目錄

libwebthree

libwhisper

Whisper協(xié)議——Whisper協(xié)議是DApp間通信的通信協(xié)議纤怒。Whisper是為需要大規(guī)模的多對多數(shù)據(jù)發(fā)現(xiàn)、信號談判和最少的傳輸通信天通、完全的隱私保護的下一代DApp而設計的泊窘。此功能為以太坊基礎通訊協(xié)議。
Whisper(低語者)是以太坊的一個功能擴展像寒。它是以太坊生態(tài)中的一個重要一環(huán)(以太坊的智能合約smart contract實現(xiàn)了分布式邏輯烘豹,以太坊的Swarm實現(xiàn)了分布式存儲,以太坊的Whisper實現(xiàn)了分布式消息)诺祸。
Whisper將實現(xiàn)智能合約間的消息互通吴叶,屆時可以實現(xiàn)功能更加復雜的DApp。

sample

一鍵安裝與部署

script

與安裝相關的腳本

smartcontract

系統(tǒng)合約實現(xiàn)目錄

tool

utils

web3lib

web3 是一個通過RPC 調用 和本地節(jié)點進行通信的js庫序臂。web3可以與任何暴露了RPC接口的以太坊節(jié)點連接。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市奥秆,隨后出現(xiàn)的幾起案子逊彭,更是在濱河造成了極大的恐慌,老刑警劉巖构订,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侮叮,死亡現(xiàn)場離奇詭異,居然都是意外死亡悼瘾,警方通過查閱死者的電腦和手機囊榜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亥宿,“玉大人卸勺,你說我怎么就攤上這事√潭螅” “怎么了曙求?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長映企。 經(jīng)常有香客問我悟狱,道長,這世上最難降的妖魔是什么堰氓? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任挤渐,我火速辦了婚禮,結果婚禮上双絮,老公的妹妹穿的比我還像新娘浴麻。我一直安慰自己,他們只是感情好掷邦,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布白胀。 她就那樣靜靜地躺著,像睡著了一般抚岗。 火紅的嫁衣襯著肌膚如雪或杠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天宣蔚,我揣著相機與錄音向抢,去河邊找鬼。 笑死胚委,一個胖子當著我的面吹牛挟鸠,可吹牛的內容都是我干的。 我是一名探鬼主播亩冬,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼艘希,長吁一口氣:“原來是場噩夢啊……” “哼硼身!你這毒婦竟也來了?” 一聲冷哼從身側響起覆享,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤佳遂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后撒顿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丑罪,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年凤壁,在試婚紗的時候發(fā)現(xiàn)自己被綠了吩屹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡拧抖,死狀恐怖煤搜,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情徙鱼,我是刑警寧澤宅楞,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站袱吆,受9級特大地震影響厌衙,放射性物質發(fā)生泄漏。R本人自食惡果不足惜绞绒,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一婶希、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蓬衡,春花似錦喻杈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壁晒,卻和暖如春瓷们,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秒咐。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工谬晕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人携取。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓攒钳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親雷滋。 傳聞我的和親對象是個殘疾皇子不撑,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內容