=====ethereum_cpp项目结构===== ^工程名^类型^用途^ |ALL_BUILD|实用工具|编译整个项目| |BuildInfo.h|实用工具|待完善| |cryptopp|实用工具|待完善| |devcore|lib静态库|data structures, utilities, [[rlp|RLP]], trie, memory db| |devcrypto|lib静态库| crypto primitives. Depends on libsecp256k1 and libcrypto++| |eth|exe可执行程序|A command-line Ethereum full-node that can be controlled via RPC.| |ethash|lib静态库|ethash mining POW algorithm implementation| |ethashseal|lib静态库|generic wrapper around the POW block seal engine. Also contains the genesis states for all ethash-based chains.| |ethcore|lib静态库|collection of core data structures and concepts| |ethereum|lib静态库|main consensus engine (minus EVM). Includes the State and BlockChain classes.| |ethkey|exe可执行程序|stand-alone key management| |ethvm|exe可执行程序|stand-alone EVM execution utility| |evm|lib静态库|Ethereum Virtual Machine implementation (interpreter).| |hunter_upload_cache|实用工具|待完善| |INSTALL|实用工具|待完善| |jsonrpccpp|实用工具|待完善| |mpir|实用工具|待完善| |[[ethereum_cpp项目结构_p2p|p2p]]|lib静态库|core peer to peer networking implementation (excluding specific sub-protocols)| |[[rlp|RLP]]|exe可执行程序|stand-alone [[rlp|RLP]] en-/decoder这个工程就包含一个源文件,比较简单,实现了rlp序列化/反序列化工具。| |RUN_TESTS|实用工具|待完善| |scrpyt|lib静态库|scrypt implementation| |secp256k1|实用工具| implementation of the SECP 256k1 ECDSA signing algorithm.| |snark|实用工具|待完善| |test.ClientBase|实用工具|待完善| |testeth|exe可执行程序|tests for the modules formerly within the libethereum repo| |web3jsonrpc|lib静态库| json-rpc server-side endpoint, provides http and IPC (unix socket, windows pipe) connectors| |webthree|lib静态库|service connectors for ethereum, swarm/ipfs and whisper.| |whisper|lib静态库|whisper implementation| |ZERO_CHECK|实用工具|待完善| ====项目整体架构==== 下图是cpp_ethereum整体依赖关系图 {{:wiki:ethereum_cpp项目结构.png|}} * bench: trie benchmarking * cmake: cmake files for build system, contains specification of inter-dependencies * eth A command-line Ethereum full-node that can be controlled via RPC. * ethkey: stand-alone key management * ethminer: stand-alone ethash miner * ethvm: stand-alone EVM execution utility * evmjit: library for the EVM just-in-time compiler * libdevcore: data structures, utilities, [[rlp|RLP]], trie, memory db * libdevcrypto: crypto primitives. Depends on libsecp256k1 and libcrypto++. * libp2p: core peer to peer networking implementation (excluding specific sub-protocols) * libethash: ethash mining POW algorithm implementation * libethash-cl: ethash mining code for GPU mining (OpenCL) * libethashseal: generic wrapper around the POW block seal engine. Also contains the genesis states for all ethash-based chains. * libethcore: collection of core data structures and concepts * libethereum: main consensus engine (minus EVM). Includes the State and BlockChain classes. * libevm: Ethereum Virtual Machine implementation (interpreter). * libevmasm: EVM assembly tools, also contains the optimizer. * libevmcore: elementary data structures of the EVM, opcodes, gas costs, ... * libweb3jsonrpc: json-rpc server-side endpoint, provides http and IPC (unix socket, windows pipe) connectors * libwebthree: service connectors for ethereum, swarm/ipfs and whisper. * libwhisper: whisper implementation * [[rlp|RLP]]: stand-alone [[rlp|RLP]] en-/decoder * testeth: tests for the modules formerly within the libethereum repo * testweb3core: tests for the modules formerly within the libweb3core repo * testweb3: tests for the modules formerly within the webthree repo * utils/json_spirit: JSON parser written for Boost’s Spirit library. * utils/libscrypt: scrypt implementation * utils/secp256k1: implementation of the SECP 256k1 ECDSA signing algorithm. {{:wiki:ethereum_cpp项目结构1.png?400|}}