以太坊源代码-geth初始化以及交易提交

从geth的初始化过程可以看出,geth源代码层次结构比较清楚的。geth由两部分组成:node以及eth。node主要负责以太“节点”相关的服务,主要是账户管理(AccountManager)以及P2P协议(节点底层点对点协议)。eth是整个以太逻辑的后端,负责以太区块链逻辑的方方面面,由Ethereum数据结构表现。Ethereum数据结构中包括:BlockChain(区块链),TxPool(交易池),ProtocolManager(以太协议),以及Miner(挖矿相关)。

geth本身是以太坊自带的钱包,可以通过json-rpc,提交交易:

通过web3.js的sendRawTransaction接口提交一个交易。先通过rlp解码获得Transaction信息,再通过EthApiBackend的addLocal将Transaction加入TxPool(addRemote函数会处理从网络广播来的交易)。每个地址的交易会添加到地址对应的队列中。promoteExecuteables函数将每个地址queue中的交易prmote到pending队列中。在每个交易被加入TxPool后,TxPool会发出TxPreEvent事件通知Miner打包。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504G1Y8XQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券