Geth客户端的结构

Geth客户端包含面向客户的界面(命令行)、面向网络的功能以及EVM虚拟机。 除了不能编译二进制 EVM 代码外,几乎能够执行一切和用户相关、网络相关、合约相关的操作。它承接了客户对于以太坊区块链的操作,对内维持了账户体系,世界状态,虚拟机运行以及数据的存储,对外与其他网络中的客户端节点通信,交换信息。它的主要功能如下。

  • 账户管理功能
    • 生成、删除、管理用户的账户。
    • 签名、打包用户的交易请求。
  • 存储、虚拟机功能
    • 存储交易树、状态树、收据树。
    • 启动虚拟机,执行智能合约的代码并存储结果。
  • 网络功能
    • 与其他节点通信,同步下载、分享区块链数据。
    • 参与网络中区块的播报、交易的播报。
    • 验证区块合法性,参与挖矿。
    • 提供Web3,JSON-RPC,Websocket通讯接口。
../_images/Picture44.png

Geth 客户端的结构示意图,虚线框内为Geth程序的功能