• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

ethereumj代码走读

相关文章 搞代码 3年前 (2022-04-21) 18次浏览 已收录 0个评论

查看代码目录,看我的项目蕴含哪些组件
查看构建工具,包含build.gradle、travis.yml

一、从简略的依赖少的模块开始,json模块。

依赖fastjson包,蕴含两个类, JSONHelper 和 EtherObjectMapper。
JSONHelper用于dump Block。EtherObjectMapper对fastjson的ObjectMapper序列化分隔符做了调整。

二、再看facade模块,这个模块是这个我的项目的对外入口。
先看Blockchain,这是个接口,次要是对Blockchain store的查问接口,包含依据块高块hash查问块的函数、查问最新块,也有间接查问blockStore实例对象。注解里有函数阐明及参数返回值。

Ethereum也是个接口,定义了节点治理办法,包含启动节点发现、连贯节点等,定义了解决交易的办法,包含创立交易、发送交易、执行只读交易,提供取得Repository实例对象的接口,定义查问节点状态,包含交易池中的交易、miner信息、gas价格、admininfo等。

类EthereumFactory,用来创立并启动一个Ethereum服务,其中应用AnnotationConfigApplicationContext从配置类中读取配置。

类EthereumImpl蕴含Ethereum所有组件和服务。组件包含 WorldManager、AdminInfo、ChannelManager、ApplicationContext、BlockLoader、ProgramInvokeFactory、Whisper、PendingState、SyncManager、CommonConfig等,组件还包含监听器CompositeEthereumListener、GasPriceTracker,每一个组件都对应一个外围性能,能够逐个合成钻研。

  • 节点发现、链接,通过WorldManager组件实现。块信息也通过WorldManager组件取得。同步信息从SyncManager取得。
  • 交易创立后写入PendingState,写入以前先创立一个future,放入channelManager,在工作实现时回调。执行流程细节待深刻查看。
  • replayBlock,块重放。执行流程是先依据hash获取上一个块的Repository快照,(这个性能作为存储组件的一个非凡性能阐明),依据Repository结构一个TransactionExecutor执行器,模仿执行块中的每笔交易,执行完所有交易,Repository回滚。

(未完待续)


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ethereumj代码走读

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址