当前位置: 首页 > article >正文

以太事件解析 #6 事件侦听_01

背景

        在前面的文章中其实简单的介绍过我们的区块链侦听服务的大概框架和模型,本身来说我们是有两个版本事件侦听,正常微服务的情况下我们会用到这个JAVA版本,其实还有一个python版本,那个主要是当时用来测试下大数据的情况下,存储在mongodb里的,整体的配置也是存储在数据库中,因为我们开发过程中大部分情况下是用java版本进行处理的,所以这里介绍的也是java的微服务版本。

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=O83Ahttps://gitcode.com/YouYouLongLong/dapp-chain-event.git

表结构

已经上传到代码仓库中

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=O83Ahttps://gitcode.com/YouYouLongLong/dapp-chain-event/blob/master/doc/%E4%BA%8B%E4%BB%B6%E4%BE%A6%E5%90%AC%E8%A1%A8%E7%BB%93%E6%9E%84.sql

事件侦听流程

侦听初始化

事件初始化由job发起,链和合约相关信息更改后这个定时任务会定期初始化这些配置,其实定时任务也是利用了我们框架集成的quartz的,这部分内容会在框架重构的相关文章中编写。如下是初始化JOB的源代码路径

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=O83Ahttps://gitcode.com/YouYouLongLong/dapp-chain-event/blob/master/dapp-chain-event-app/src/main/java/com/unknown/chainevent/app/job/InitLogFilterJob.javaInitLogFilter 是一个负责初始化和管理区块链日志订阅的核心组件,主要用于处理链配置(ChainConfig)及其相关的订阅服务。本类的主要职责包括:

  1. 初始化订阅:根据链配置列表,创建或重置日志过滤器(BaseLogFilter),实现对区块链事件的监控。
  2. 清理订阅:支持清理某条链的日志订阅器,以便更新链配置或禁用订阅。
  3. 动态更新订阅器:支持根据链的状态和配置,动态调整日志过滤器的状态。

事件确认

事件确认是整个区块链一个必不可以少的部分,其中原因防分叉、防双花等,这里就不多讲。只讲一下具体的相关逻辑和处理,其实也就是简单的比对下当前区块和事件所在区块的相差值和我们配置的高度情况及通过rpc调用交易回执来确认交易是否存在或者被拒绝的情况,其中涉及到web3j的一些api和如何使用的问题,还有eth的rpc的一些方法的问题,详细的可以看下源代码:

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=O83Ahttps://gitcode.com/YouYouLongLong/dapp-chain-event/blob/master/dapp-chain-event-biz/src/main/java/com/unknown/chainevent/biz/service/ChainConfigService.java


http://www.kler.cn/a/407761.html

相关文章:

  • 基于深度学习CNN算法的花卉分类识别系统01--带数据集-pyqt5UI界面-全套源码
  • Fakelocation Server服务器/专业版 Windows11
  • 获取商店里的应用的中文和英文名称
  • LeetCode 力扣 热题 100道(九)反转链表(C++)
  • window11编译pycdc.exe
  • Spark——安装步骤详细教程
  • HTTP 协议应用场景
  • 并发和并行的基础知识
  • 利用浏览器录屏
  • Python 爬虫从入门到(不)入狱学习笔记
  • 【初阶数据结构篇】单链表OJ题(下篇)
  • 微深节能 平板小车运动监测与控制系统 格雷母线
  • 【HAProxy11】企业级反向代理HAProxy高级功能之访问控制列表(ACL)
  • 【LeetCode面试150】——202快乐数
  • 使用ENSP实现浮动静态路由
  • 贴代码框架PasteForm特性介绍之query,linkquery
  • 算法学习笔记(八):单调栈
  • SpringMVC 执行流程详解
  • 架构图解析:如何构建高效的微服务系统
  • Cocos creator 3.8 支持的动画 7
  • 2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析
  • 【Apache paimon】-- 7 -- tag 创建与管理
  • 【C++】list使用详解
  • 【从零开始的LeetCode-算法】3297. 统计重新排列后包含另一个字符串的子字符串数目 I
  • java操作doc——java利用Aspose.Words操作Word文档并动态设置单元格合并
  • 基于Java Springboot高校教室资源管理系统