惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
G
Google Developers Blog
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
博客园 - 叶小钗
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
D
DataBreaches.Net
P
Palo Alto Networks Blog
C
Cisco Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
NISL@THU
NISL@THU
Forbes - Security
Forbes - Security
Microsoft Security Blog
Microsoft Security Blog
T
The Exploit Database - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
N
News and Events Feed by Topic
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
AWS News Blog
AWS News Blog
Security Latest
Security Latest
H
Heimdal Security Blog
小众软件
小众软件
Cyberwarzone
Cyberwarzone
The Hacker News
The Hacker News
P
Privacy International News Feed
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
Scott Helme
Scott Helme
博客园 - 【当耐特】
Latest news
Latest news
Microsoft Azure Blog
Microsoft Azure Blog
Y
Y Combinator Blog
Jina AI
Jina AI
Spread Privacy
Spread Privacy
量子位
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网

以太坊

ERC-4337 的 Bundler 网络会不会成为新的审查单点? 最近学了一点点 web3 开发,我把学习内容做成网站笔记,分享给 web3 初学者 狗屎运。昨晚睡觉前下了单 eth 的 10 倍的做空合约,醒来一看赚了 30%。发帖得瑟一下 BasePaint 以太坊可以随便声明我向外转出 Token?不需要我的同意和授权? 在家里跑 ETH、BSC 节点要紧不 Sign 第二期空投活动已经开始 大毛,领取 Etherscan 积分 以太坊十周年纪念 NFT 地板价 5.01U eth 这次能破前高吗 我从币安提现 eth,为啥钱包 account 1 的 eth 地址只可以用 BSC 网络, account 2 的地址却 BSC 和 ETH 网络都可以用? 以太坊十周年纪念 NFT 复刻一个 etherscan.io 这样的网站需要多少钱? 以太坊是否可以离线验证交易是否成功? [ETHGlobal Cannes] 第一次参加 IRL 黑客松,和同事一起做的项目获奖了,很开心 目前 Ethereum 生态里有哪些形态接近 ko-fi.com / Buy Me a Coffee / Kickstarter 的产品? Uniswap V4 中如何从 PoolManager 获取指定池的 ETH 余额? Uniswap v4 出来了,怎么看不懂啊 有人对 AI 模型根据开源项目依赖和数据生成权重分配赞助资金感兴趣吗? 这个 UI 实在是太酷了 搞爬虫前的一些疑问 - V2EX 目前 eth 全节搭建硬盘占用问题 写了一个以太坊靓号生成器, 支持多节点运行, 让你的任意设备成为计算节点 - V2EX 为什么以太坊的 Uncle rewards 比 block rewards 少那么多? STARK 都领了吗? blockchain.com 还有一点以太币,放了几年了都快忘记了,请问如何提现。 华为云开始做以太坊质押服务了 兄弟们 怎么看? 你们运行的以太坊全节点完全同步用了多久? 今天发现以太坊的手续费下降了很多,发生了啥?好像没看见有升级啊?哪位大佬指点一下?谢谢 现在国内还能运行全节点吗 Magician-Scanning 1.0.12 发布 viem 用 PostgreSQL 来存储以太坊上的所有交易 transaction,如何分表分库? 以太坊全节点和归档节点之间能互相同步数据吗? eth 和 bit 域名本质上是一样的吗?两者关系类似 com 和 net? 升级成千兆宽带, Geth 节点一晚上就同步好了 为什么太坊这种几千亿市值的项目,居然连断电保护都做不好? 以太坊全节点突然断电后无法同步 请教一下购买 ENS 域名支付的问题 有了这个工具包,用 Java 调用智能合约更加简便了 Magician-Web3 1.0.3 发布啦,可以根据 inputData 里的数据 进行监控了 Magician-Web3 1.0.2 发布,支持配置代理 大家好,我开发了一个扫块的 工具包,可以用来方便的监听 交易动态 请教一个 Eth 合约调用 Gas 的计算问题. 以太坊如何查出所有的 Pull Rugged (跑路/割韭菜) 项目? geth 的 bootnodes 好像不能作为服务发现了? 树莓派搭建以太坊全节点的成本是多少? - V2EX PoS 会让以太坊的安全性受到威胁吗? macOS 的快捷指令有啥比较亮眼的用法?
Magician-Web3 1.0.5 发布啦,加入了负载均衡 和 重试策略
Joker123456789 · 2022-11-25 · via 以太坊

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