Architecture

../../_images/dependency_graph.svg
  • 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, 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: stand-alone 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.