以太坊怎么扫块,Magician-Web3 1.0.5 发布啦,加入了负载均衡 和 重试策略
Magician-Web3 是一个区块链开发工具包。它由两个功能组成。一个是扫描区块链,根据开发者的需要监控交易。另一个是对 web3j 的一些二次打包,可以减少开发者在一些常见场景下的工作量。它计划支持三种链,ETH(BSC、POLYGAN 等)、SOL 和 TRON
本次更新的点
加入了负载均衡,只要配置多个 RPC URL 即可自动轮询,可以将流量分散给多个节点,不用一直盯着一个节点 “祸害了”
加入了重试策略,当出现了某些意外的原因 导致区块被跳过扫描,那么被跳过的区块高度将进入重试策略,你可以自己进行处理
修改了一点点细节
负载均衡
直接设置多个 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();
重试策略
在符合以下两个条件时,会触发重试策略,两个条件必须全都符合 才会触发重试
当前正在扫描的块高 是空的(块不存在 或者 块里面没交易)
当前正在扫描的块高 < 链上的最新块高
当上面两个条件同时符合的时候,扫描任务会跳过这个块,然后继续扫描下一个块,同时 重试策略会收到被跳过的块高, 你可以在重试策略里 自己处理
创建一个重试策略
public class EthRetry implements RetryStrategy {@Overridepublic void retry(BigInteger blockNumber) {}
}
将重试策略添加到扫描任务中
MagicianBlockchainScan.create().setRetryStrategy(new EthRetry())// 调用这个方法添加.start();
需要注意线程数量的配置
如果你此时开了一个扫块任务 + 一个 重试策略,那么需要占用两个线程,所以参数必须传 2
// 初始化线程池,核心线程数必须 >= 扫块的任务数量 + 重试策略的数量
EventThreadPool.init(2);
细节调整
扫描频率最低可以设置 500 毫秒
设置 RPC 地址的 传参类型变了
由于第二点的优化,现在可以根据 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.co
以太坊怎么扫块,Magician-Web3 1.0.5 发布啦,加入了负载均衡 和 重试策略相关推荐
- 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明
以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实 ...
- Python开发以太坊智能合约指南(web3.py)
在以太坊上获得一个基本的智能合约是一个很简单的事,只需google查询"ERC20代币教程",你会发现有关如何做到这一点的大量信息.以编程方式与合约交互完全是另一回事,如果你是一个 ...
- 以太坊智能合约项目开发——Web3.py库安装及错误解决方案
一.Web3.py库介绍 web3.js 是一组用来和本地或远程以太坊节点进行交互的 js 库,它可以使用 HTTP 或 IPC 建立与以太坊节点旳连接,那么 web3.py 则是一个使 python ...
- 什么是以太坊,它是区块链2.0的代表,它又什么特点?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 以太坊 是一种全球共享计算,是各种分散应用程序的基础.它有一个独立于比特币的独立区块链,但与之类似.以太坊的区块链有显着 ...
- MIMIC 以太坊医疗项目开发(6)Web3智能合约API
web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互. 它具备如下性质: •通过JSON-RPC与Ethereum客户端进行交互 •支持所有的JSON-RPC方法类型 ...
- 【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别
一.前言 博主在安装web3.js的时候,偶然间安装了不同版本的web3.js,API操作也不相同,虽然都能达到目标,但是到底区别在哪呢?网上查找半天并没有人专门总结一下这块,所以今天斗胆总结一下,也 ...
- 使用 Web3.js 连接以太坊节点并查询区块链数据
Web3.js 是一个用于连接以太坊网络的 JavaScript 库.在本文中,我们将介绍如何使用 Web3.js 来连接以太坊节点,并且查询以太坊区块链上的数据. 1. 安装 Web3.js 首先, ...
- 以太坊:Web3.js 0.20 使用说明
web3简介 注意 web3.js 有两个不兼容的版本:0.20.x及1.0beta,1.0对0.20版本做了重构. 本文档是web3.js 0.20.x版本翻译,其对应的官方文档地址在 JavaSc ...
- 以太坊Ghost协议和叔块
GHOST(Greedy Heaviest Observed Subtree)是一种主链选择协议(不是侧链选择协议).举例来说:经典的Proof-of-Work(POW)是以取最长的主链为基本原则 ...
最新文章
- 红外协议之NEC协议
- 吞吐量达到瓶颈后下降_中港协:八大枢纽港集装箱吞吐量增速创新高
- 一文简述FFmpeg
- 面试必会系列 - 1.1 Java SE 基础
- 服务器设备日常维护与管理论文,浅谈设备管理与维护论文
- CentOs搭建svn
- linux内核实验教程答案,20199310《Linux内核原理与分析》第十五周作业 Linux安全实验...
- 吴恩达深度学习5.1练习_Sequence Models_Character level language model - Dinosaurus land
- JAVA反射--通过反射对pojo进行UT覆盖率测试
- 在电脑上修改apk、重新签名apk
- CDH6.3.2安装部署
- Juniper SRX密码恢复
- 利用360安全卫士的“网络连接查看器”获取网络游戏的服务器IP地址
- 淘宝商品详情,1688商品详情滑块的解决方法和接口
- 送给1987年左右的朋友,看完是不是有些泪水
- 序列的运算、操作、函数/方法
- 病毒virus - 拓扑排序
- H5-ffmpeg.js压缩视频
- 从友盟获取自己软件最新版本的版本名称
- css设置竖排字体时letter-spacing无法有效设置字体间距
热门文章
- 怎么把apk文件安装到android模拟器上
- Linux:modprobe: ERROR: could not insert ‘tcrypt‘: Resource temporarily unavailable
- Java实现PC微信扫码支付
- python控制台进度条_飘逸的python - 实现控制台进度条效果
- 2021年终总结——分享快乐
- 有限状态机实现按键防抖动电路
- SpringBoot —— 整合mybatis+微服务注册
- php中的js弹窗,浅谈javascript中的三种弹窗
- 完整的卸载Oracle 11g数据库
- 最强5G生态联盟诞生!苏宁天猫携手打造最大5G换新平台