Magician-Web3 1.0.5发布啦,加入了负载均衡和重试策略
Magician-Web3 是一个区块链开发工具包。它由两个功能组成。一个是扫描区块链,根据开发者的需要监控交易。另一个是对 web3j 的一些二次打包,可以减少开发者在一些常见场景下的工作量。它计划支持三种链,ETH(BSC、POLYGAN 等)、SOL 和 TRON
本次更新的点
1. 加入了负载均衡,只要配置多个RPC URL 即可自动轮询,可以将流量分散给多个节点,不用一直盯着一个节点“祸害了”
2. 加入了重试策略,当出现了某些意外的原因 导致区块被跳过扫描,那么被跳过的区块高度将进入重试策略,你可以自己进行处理
3. 修改了一点点细节
负载均衡
直接设置多个rpc地址即可
MagicianBlockchainScan.create() .setRpcUrl( // 可以设置1到n个 rpc地址了,超过一个将自动轮询使用 EthRpcInit.create() .addRpcUrl("https://data-seed-prebsc-1-s1.binance.org:8545") .addRpcUrl("https://data-seed-prebsc-2-s1.binance.org:8545") .addRpcUrl("https://data-seed-prebsc-1-s2.binance.org:8545") ) .setScanPeriod(1000) .setBeginBlockNumber(BlockEnums.LAST_BLOCK_NUMBER.getValue()) .addEthMonitorEvent(new EventOne()) .addEthMonitorEvent(new EventThree()) .setRetryStrategy(new EthRetry()) .start();
重试策略
在符合以下两个条件时,会触发重试策略,两个条件必须全都符合 才会触发重试
1. 当前正在扫描的块高 是空的(块不存在 或者 块里面没交易)
2. 当前正在扫描的块高 < 链上的最新块高
当上面两个条件同时符合的时候,扫描任务会跳过这个块,然后继续扫描下一个块,同时 重试策略会收到被跳过的块高, 你可以在重试策略里 自己处理
创建一个重试策略
public class EthRetry implements RetryStrategy { @Override public void retry(BigInteger blockNumber) { } }
将重试策略添加到扫描任务中
MagicianBlockchainScan.create() .setRetryStrategy(new EthRetry())// 调用这个方法添加 .start();
需要注意线程数量的配置
如果你此时开了一个扫块任务 + 一个 重试策略,那么需要占用两个线程,所以参数必须传2
// 初始化线程池,核心线程数必须 >= 扫块的任务数量 + 重试策略的数量 EventThreadPool.init(2);
细节调整
1. 扫描频率最低可以设置500毫秒
2. 设置RPC地址的 传参类型变了
3. 由于第二点的优化,现在可以根据RPC地址的类型来判断你要扫描什么链了,所以去除了ChainType的设置
MagicianBlockchainScan.create() .setRpcUrl(// 这里发生了改变 EthRpcInit.create() .addRpcUrl("https://data-seed-prebsc-1-s1.binance.org:8545") .addRpcUrl("https://data-seed-prebsc-2-s1.binance.org:8545") .addRpcUrl("https://data-seed-prebsc-1-s2.binance.org:8545") ) .setScanPeriod(1000)// 这个参数最低可以设置为500了 .setBeginBlockNumber(BlockEnums.LAST_BLOCK_NUMBER.getValue()) .addEthMonitorEvent(new EventOne()) .addEthMonitorEvent(new EventThree()) .setRetryStrategy(new EthRetry()) .start();
可以访问官网了解更多:https://magician-io.com

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
.NET MAUI 正式支持在 Visual Studio for Mac 17.4 中使用
.NET MAUI / Visual Studio 产品经理近日发表博客称,两周前发布的.NET MAUI 7 GA现已正式支持在Visual Studio for Mac 17.4 中使用。作为 .NET 7 的一部分,.NET MAUI 7 提升了 .NET MAUI SDK 的稳定性和可靠性。 在 Visual Studio for Mac 17.4 中,开发者现在可以使用的.NET MAUI 生产力特性和在Visual Studio (Windows) 上保持一致。 单一项目 (Single Project) 和针对 Android/iOS/Mac Catalyst 进行调试 .NET MAUI 单一项目采用开发应用时通常遇到的特定于平台的开发体验,并将其抽象化为可面向 Android、iOS、macOS 和 Windows 的单个共享项目。 无论面向的平台如何,.NET MAUI 单一项目都提供简化且一致的跨平台开发体验。 .NET MAUI 单一项目提供以下功能: 可面向 Android、iOS、macOS 和 Windows 的单个共享项目 用于运行 .NET MAUI ...
- 下一篇
Apache DolphinScheduler <2.0.6 存在信息泄露漏洞
漏洞描述 Apache DolphinScheduler 是一个分布式、易扩展、可视化的工作流任务调度平台。 Apache DolphinScheduler 在 2.0.6 之前的版本中存在存在信息泄露漏洞,在实例任务读取配置文件时,攻击者可利用此漏洞获取系统配置文件敏感信息(如数据库密码等)。 漏洞名称 Apache DolphinScheduler <2.0.6 存在信息泄露漏洞 漏洞类型 路径遍历 发现时间 2022-11-25 漏洞影响广度 极小 MPS编号 MPS-2022-6253 CVE编号 CVE-2022-26885 CNVD编号 - 影响范围 org.apache.dolphinscheduler:dolphinscheduler-server@[1.2.0, 2.0.6) 修复方案 将组件 org.apache.dolphinscheduler:dolphinscheduler-server 升级至 2.0.6 及以上版本 参考链接 https://www.oscs1024.com/hd/MPS-2022-6253 https://nvd.nist.gov/...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)