web3.0
文章平均质量分 79
文件夹__iOS
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
硬核干货:用 console.log 在 Hardhat 本地节点上“打印”合约日志!
传统调试方式:写事件(Event) → 部署 → 调用 → 看交易回执 → 解析事件日志太麻烦、太慢、太折磨!今天教你一招: 像写 JavaScript 一样,在 Solidity 里直接 console.log! 在 Hardhat 本地节点 上运行,终端直接打印变量值原创 2025-11-12 15:41:45 · 308 阅读 · 0 评论 -
Uniswap V2:Factory、Pair、Router 到实际调用
Uniswap V2的核心架构由三个合约组成:Factory负责创建和管理交易对,Pair合约存储流动性并执行交易逻辑,Router提供用户友好的交互接口。Factory部署后自动生成Pair合约,Router封装了添加流动性、代币兑换等操作。用户通过Router调用Factory查找或创建交易对,最终在Pair上完成交易。这套简洁的架构实现了去中心化交易的核心功能,开发者只需理解这三个合约的协作机制即可掌握Uniswap V2的核心逻辑。原创 2025-10-20 15:42:09 · 933 阅读 · 0 评论 -
Uniswap v1、v2、v3 全面对比
Uniswap发展历程:从AMM雏形到专业做市工具 V1(2018)首创x*y=k模型,仅支持ETH-Token交易,验证AMM可行性但功能有限;V2(2020)实现任意Token交易,新增Flash Swap和预言机,成为DeFi基础设施;V3(2021)创新性引入集中流动性机制,允许LP自选价格区间(资金效率提升4000倍),采用多费率池和NFT仓位,大幅提升资本效率但增加了操作复杂度。三代版本呈现"从简到繁、从粗到精"的演进路径,逐步从通用协议转向专业化做市工具。原创 2025-09-12 15:49:09 · 1136 阅读 · 0 评论 -
区块链里的 “信标” 是啥?
摘要: 信标(Beacon)是区块链中的“中央公告牌”,用于统一管理多个代理合约的实现地址。类比连锁超市,信标相当于总部公告牌,所有分店(代理合约)通过查询信标获取最新系统版本,实现一键升级。其核心优势包括:1)集中升级,无需逐个修改代理合约;2)权限统一管理;3)确保系统一致性。适用于多代理场景(如NFT钱包)、复杂DeFi协议或需频繁升级的合约。信标通过简化升级流程和降低维护成本,成为区块链开发中的高效工具。原创 2025-09-08 17:07:02 · 479 阅读 · 0 评论 -
Solidity 结构体优化,大幅降低 Gas 消耗
优化以太坊智能合约结构体设计可大幅节省Gas费用。核心策略包括:1.按字段大小排序(小字段优先),使存储槽利用率最大化;2.用uint256位操作合并多个小字段;3.避免动态类型,改用固定长度;4.临时结构体使用packed修饰;5.按功能拆分大结构体。通过合理排序和压缩,可减少30-60%的Gas消耗,高频交互合约长期节省显著。关键是将相关小字段组合填充32字节存储槽,避免空间浪费。原创 2025-09-04 15:52:23 · 692 阅读 · 0 评论 -
如何在 Solidity 中编写高效的 gas 循环?
摘要:Solidity智能合约中优化gas循环的关键技巧包括:1)限制循环迭代次数;2)使用unchecked块处理计数器;3)缓存存储变量到内存;4)避免循环内频繁存储写入;5)减少循环内外部合约调用;6)优先使用映射而非数组;7)考虑小循环展开。核心原则是减少存储操作、利用内存缓存、限制迭代次数,并通过工具分析gas消耗选择最佳实现方案。这些优化能显著降低交易成本并避免gas限制问题。原创 2025-09-03 11:11:14 · 325 阅读 · 0 评论 -
Solidity 转账三函数:call、transfer、send 精简指南
摘要: ETH转账方法transfer、send、call的核心差异: 错误处理:transfer失败回滚,send返回false需手动检查,call返回状态+数据,灵活性高但需防重入。 Gas限制:transfer/send固定2300,易失败;call无限制,支持复杂操作。 功能:call可同时调用合约函数,适合DeFi;前两者仅转账。 2025推荐:优先call(需防重入),简单场景用transfer,避免send。关键:查返回值、防重入、多测试。 (字数:150)原创 2025-09-03 10:53:12 · 460 阅读 · 0 评论 -
fallback 和 receive 到底咋区分?啥时候该用哪个?
要分清 fallback 和 receive,关键看两个维度:1. 是否给合约转 ETH;2. 是否携带函数调用数据(比如调用某个函数时,会传函数名、参数等数据,单纯转 ETH 没有这些数据)原创 2025-09-03 10:22:59 · 1301 阅读 · 0 评论 -
Slither 审计自己写的智能合约
Slither 是一款非常好用的自动化审计工具,可以帮你快速找出大部分常见风险。这篇文章专门讲 “只审计自己写的合约” 怎么做,流程简单、注意事项清楚,帮你高效定位风险。原创 2025-08-22 15:54:42 · 871 阅读 · 0 评论 -
智能合约里的 “拒绝服务“ 攻击:让你的合约变成 “死机的手机“
智能合约DoS攻击防护指南 摘要:智能合约可能遭受拒绝服务(DoS)攻击,导致核心功能瘫痪。常见攻击方式包括:1)利用批量操作强制失败;2)通过gas炸弹耗尽资源;3)控制关键权限。防范措施:1)拆分批量操作为小批次;2)限制计算复杂度,避免遍历长数组;3)采用多签钱包或DAO治理替代单一管理员。核心原则是避免单点依赖,控制操作复杂度,为系统预留后路,确保合约在部分功能受阻时仍可运行。原创 2025-08-17 17:30:56 · 828 阅读 · 0 评论 -
重入攻击:区块链世界里的「先上车后买票」骗局
重入攻击是智能合约安全的主要威胁,其核心是利用状态更新滞后进行重复调用套利。本文分析了三种典型重入攻击:1)单函数重入,通过回调函数反复调用同一取款函数;2)跨函数重入,利用关联函数间接实现重复操作;3)跨合约重入,通过多个合约的信任关系形成连锁攻击。防御方案包括:1)采用"检查-生效-交互"模式,先更新状态再转账;2)使用ReentrancyGuard锁机制;3)限制外部调用gas。开发者应遵循"先更新后交互"原则,并善用安全工具,以有效防范重入风险。原创 2025-08-17 17:08:23 · 1117 阅读 · 0 评论 -
合约低级调用三兄弟:call、delegatecall、staticcall
摘要:以太坊提供三种低级调用方式:call(灵活调用合约函数及转账)、delegatecall(借用外部代码但保持自身数据)和staticcall(仅查询不修改数据)。call适合通用调用和转账,delegatecall用于合约升级,staticcall用于安全查询。使用需谨慎,需手动处理错误和安全检查,避免资产损失。高级调用更安全,仅在特殊需求时使用低级调用。原创 2025-08-16 18:20:02 · 1023 阅读 · 0 评论 -
一文看懂 ethers.js:区块链开发
ethers.js 就是一个 JavaScript 库(可以理解为一堆写好的工具函数),专门用来帮你和以太坊(以及类似的区块链,比如 BSC、Polygon 这些)打交道。原创 2025-08-16 17:53:35 · 721 阅读 · 0 评论 -
网页中 MetaMask 钱包钱包交互核心功能详解
下面将详细讲解 MetaMask 钱包交互的四个核心功能,并提供独立的代码实现。原创 2025-08-07 14:14:59 · 534 阅读 · 0 评论 -
如何将 Vue 前端、Hardhat 合约和 Node.js 后端集成到一个项目中
在区块链开发中,DApp(去中心化应用)的开发往往涉及到多个层次:前端、合约和后端。今天我们将演示如何将 Vue 前端、Hardhat 合约 和 Node.js 后端 放在一个项目中,来打造一个完整的区块链应用。原创 2025-08-08 10:56:03 · 476 阅读 · 0 评论
分享