1. 程式人生 > >Ethereum 原始碼分析(一)

Ethereum 原始碼分析(一)

一、原始碼框架

    accounts        實現了一個高等級的以太坊賬戶管理
    bmt             二進位制的默克爾樹的實現
    build           主要是編譯和構建的一些指令碼和配置
    cmd             命令列工具,又分了很多的命令列工具,下面一個一個介紹
        
/abigen     合約abi生成測試         /bootnode   啟動一個僅僅實現網路發現的節點 /clef 用來簽名交易和資料,同時作為geth賬戶管理工具的替代 /ethkey 操作以太坊keyfiles的命令列工具         /evm        以太坊虛擬機器的開發工具,用來提供一個可配置的,受隔離的程式碼除錯環境         
/faucet     faucet is a Ether faucet backed by a light client         /geth       以太坊命令列客戶端,最重要的一個工具 /internal 內部工具,提供了與使用者瀏覽器互動的實用程式         /p2psim     提供了一個工具來模擬http的API         
/puppeth    建立一個新的以太坊網路的嚮導         /rlpdump    提供了一個RLP資料的格式化輸出         /swarm      swarm網路的接入點         /util       提供了一些公共的工具         /wnode      這是一個簡單的Whisper節點,它可以用作獨立的引導節點。此外,可以用於不同的測試和診斷目的     common          提供了一些公共的工具類     consensus       提供了以太坊的一些共識演算法,比如ethhash, clique(proof-of-authority)     console         提供JavaScript互動執行環境 containers 容器,提供一些linux系統開發環境和正式環境的dockerfile     contracts    合約     core            以太坊的核心資料結構和演算法(虛擬機器,狀態,區塊鏈,布隆過濾器)     crypto          加密和hash演算法 dashboard 提供嵌入在geth裡面的一個數據觀察儀,用來收集和觀察以太坊節點有用的資訊     eth          實現了以太坊的協議     ethclient       提供了以太坊的RPC客戶端     ethdb           eth的資料庫(包括實際使用的leveldb和供測試使用的記憶體資料庫)     ethstats        提供網路狀態的報告     event           處理實時的事件 internal 內部工具,提供編譯、debug、ethapi等     les          實現了以太坊的輕量級協議子集     light           實現為以太坊輕量級客戶端提供按需檢索的功能     log          提供對人機都友好的日誌資訊     metrics         提供磁碟計數器     miner           提供以太坊的區塊建立和挖礦     mobile          移動端使用的一些warpper     node            以太坊的多種型別的節點     p2p          以太坊p2p網路協議 params 以太坊多種引數     rlp          以太坊序列化處理     rpc          遠端方法呼叫 signer 簽名機構,包含規則、儲存等     swarm           swarm網路處理     tests           測試     trie            以太坊重要的資料結構Package trie implements Merkle Patricia Tries     whisper         提供了whisper節點的協議。