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

Ethereum 源碼分析(一)

spa hash算法 ner eth 運行 war 機構 warp 目的

一、源碼框架

    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節點的協議。

Ethereum 源碼分析(一)