首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

以太坊源代码-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
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券