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 {@Overridepublic 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.co

以太坊怎么扫块,Magician-Web3 1.0.5 发布啦,加入了负载均衡 和 重试策略相关推荐

  1. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明

    以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实 ...

  2. Python开发以太坊智能合约指南(web3.py)

    在以太坊上获得一个基本的智能合约是一个很简单的事,只需google查询"ERC20代币教程",你会发现有关如何做到这一点的大量信息.以编程方式与合约交互完全是另一回事,如果你是一个 ...

  3. 以太坊智能合约项目开发——Web3.py库安装及错误解决方案

    一.Web3.py库介绍 web3.js 是一组用来和本地或远程以太坊节点进行交互的 js 库,它可以使用 HTTP 或 IPC 建立与以太坊节点旳连接,那么 web3.py 则是一个使 python ...

  4. 什么是以太坊,它是区块链2.0的代表,它又什么特点?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 以太坊 是一种全球共享计算,是各种分散应用程序的基础.它有一个独立于比特币的独立区块链,但与之类似.以太坊的区块链有显着 ...

  5. MIMIC 以太坊医疗项目开发(6)Web3智能合约API

    web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互. 它具备如下性质: •通过JSON-RPC与Ethereum客户端进行交互 •支持所有的JSON-RPC方法类型 ...

  6. 【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别

    一.前言 博主在安装web3.js的时候,偶然间安装了不同版本的web3.js,API操作也不相同,虽然都能达到目标,但是到底区别在哪呢?网上查找半天并没有人专门总结一下这块,所以今天斗胆总结一下,也 ...

  7. 使用 Web3.js 连接以太坊节点并查询区块链数据

    Web3.js 是一个用于连接以太坊网络的 JavaScript 库.在本文中,我们将介绍如何使用 Web3.js 来连接以太坊节点,并且查询以太坊区块链上的数据. 1. 安装 Web3.js 首先, ...

  8. 以太坊:Web3.js 0.20 使用说明

    web3简介 注意 web3.js 有两个不兼容的版本:0.20.x及1.0beta,1.0对0.20版本做了重构. 本文档是web3.js 0.20.x版本翻译,其对应的官方文档地址在 JavaSc ...

  9. 以太坊Ghost协议和叔块

      GHOST(Greedy Heaviest Observed Subtree)是一种主链选择协议(不是侧链选择协议).举例来说:经典的Proof-of-Work(POW)是以取最长的主链为基本原则 ...

最新文章

  1. 红外协议之NEC协议
  2. 吞吐量达到瓶颈后下降_中港协:八大枢纽港集装箱吞吐量增速创新高
  3. 一文简述FFmpeg
  4. 面试必会系列 - 1.1 Java SE 基础
  5. 服务器设备日常维护与管理论文,浅谈设备管理与维护论文
  6. CentOs搭建svn
  7. linux内核实验教程答案,20199310《Linux内核原理与分析》第十五周作业 Linux安全实验...
  8. 吴恩达深度学习5.1练习_Sequence Models_Character level language model - Dinosaurus land
  9. JAVA反射--通过反射对pojo进行UT覆盖率测试
  10. 在电脑上修改apk、重新签名apk
  11. CDH6.3.2安装部署
  12. Juniper SRX密码恢复
  13. 利用360安全卫士的“网络连接查看器”获取网络游戏的服务器IP地址
  14. 淘宝商品详情,1688商品详情滑块的解决方法和接口
  15. 送给1987年左右的朋友,看完是不是有些泪水
  16. 序列的运算、操作、函数/方法
  17. 病毒virus - 拓扑排序
  18. H5-ffmpeg.js压缩视频
  19. 从友盟获取自己软件最新版本的版本名称
  20. css设置竖排字体时letter-spacing无法有效设置字体间距

热门文章

  1. 怎么把apk文件安装到android模拟器上
  2. Linux:modprobe: ERROR: could not insert ‘tcrypt‘: Resource temporarily unavailable
  3. Java实现PC微信扫码支付
  4. python控制台进度条_飘逸的python - 实现控制台进度条效果
  5. 2021年终总结——分享快乐
  6. 有限状态机实现按键防抖动电路
  7. SpringBoot —— 整合mybatis+微服务注册
  8. php中的js弹窗,浅谈javascript中的三种弹窗
  9. 完整的卸载Oracle 11g数据库
  10. 最强5G生态联盟诞生!苏宁天猫携手打造最大5G换新平台