- 博客(89)
- 收藏
- 关注
原创 Solidity入门(15)- Foundry框架
创建和初始化Foundry项目查看和编译合约运行测试并查看结果启动Anvil本地节点编写和运行部署脚本在本地节点上部署合约使用Cast与合约交互进行Gas估算查询账户余额和链信息整个流程展示了Foundry工具链的强大功能。在实际开发中,你可以使用Anvil进行本地测试,使用Forge进行编译和测试,使用Cast进行链上交互,最后部署到测试网或主网。
2025-12-30 16:27:02
837
原创 Aave协议(3)
Aave作为⾏业领导者,实现了强⼤的跨链架构,将其借贷服务扩展到多个区块链⽹络,包括以太坊、Polygon、Avalanche、Arbitrum、Optimism等。Aave不仅是⼀个简单的存借款平台,更是⼀个强⼤的⾦融⼯具,⽀持各种复杂的交易策略。Aave跨链部署的⼀个主要动机是降低⽤户的Gas成本。Aave采⽤了"独⽴部署+跨链桥"的架构模式,⽽⾮像某些应⽤那样使⽤"中⼼化桥接"或"主从部署"模式。⽤⾃有资⾦作为抵押,借⼊稳定币,再⽤稳定币买⼊更多⽬标资产,从⽽增加持仓量,实现杠杆效果。
2025-12-30 10:17:39
779
原创 Aave协议(2)
区块链本质上是⼀个分布式系统,在⽹络共识过程中可能出现临时分叉,当较⻓的分⽀被确认为主链时,短分⽀上的区块会被丢弃,这⼀过程称为"重组"。数据同步服务是DeFi架构中的数据处理中枢,它将来⾃区块链的原始事件数据转换为结构化、易查询的数据模型,并确保链下数据库准确反映链上状态。对于链下服务⽽⾔,重组意味着已经处理的区块和事件可能被"撤销",需要回滚已更新的数据库记录,并处理新的主链上的事件。健康因⼦监控是⻛险监控服务的核⼼组件,通过实时追踪⽤户的健康因⼦变化,预测可能发⽣的清算事件,并采取⼲预措施。
2025-12-29 16:55:51
928
原创 Aave协议(1)
Aave是全球领先的去中⼼化⾮托管流动性市场协议,⽤户可以作为存款⼈(Supplier)或借款⼈(Borrower)参与。该协议于2020年1⽉上线以来,已成为DeFi借贷领域的标杆项⽬。去中⼼化借贷协议:⽆需中介机构,通过智能合约⾃动执⾏借贷逻辑流动性市场:创建资⾦池模型,存款⼈提供流动性,借款⼈获取资⾦闪电贷创新者:⾸创⽆抵押闪电贷(Flash Loan),开创DeFi套利新模式多链DeFi基础设施:⽀持Ethereum、Polygon、Avalanche、Arbitrum等15+区块链。
2025-12-29 11:11:48
610
原创 Compound协议(3)
技术创新:cToken模型成为⾏业标准开启DeFi Summer:COMP挖矿引发流动性挖矿热潮去中⼼化治理:展示DAO治理的可⾏性⾏业影响:⼤量协议fork或参考Compound。
2025-12-28 16:34:37
1015
原创 Compound协议(2)
Compound采⽤JumpRateModel(跳跃利率模型),这是⼀种分段线性的利率曲线,在达到最优利⽤率前线性增⻓,超过后陡峭上升。Comptroller是Compound协议的"⼤脑",负责所有⻛险控制和市场管理功能。利⽤率 U = Borrows / (Cash + Borrows - Reserves)流动性计算是Comptroller最核⼼的功能,决定了⽤户能否借款、是否会被清算。U = 50%(正常区间)U = 90%(⾼利⽤率)U = 95%(接近枯竭)U = 80%(拐点)
2025-12-27 17:14:34
594
原创 Compound协议(1)
Compound是以太坊上最早、最具影响⼒的去中⼼化借贷协议之⼀,由Robert Leshner和Geoffrey Hayes于2018年创⽴。作为DeFi领域的先驱,Compound开创性地引⼊了算法货币市场(Algorithmic Money Market)的概念,通过智能合约⾃动化管理借贷市场的供需关系。去中⼼化货币市场:⽆需许可的开放式借贷平台,任何⼈都可以参与算法利率协议:基于供需关系⾃动调整利率,⽆需⼈⼯⼲预流动性聚合器:创建共享流动性池,提⾼资⾦使⽤效率。
2025-12-27 16:43:51
895
原创 5.Uniswap 技术架构详解
功能作⽤: 闪电贷是DeFi的创新⾦融⼯具,允许⽤户在单个交易中⽆抵押借⼊⼤量资⾦,只要在同⼀个交易中归还即可。在V3中,⼀次交换可能跨越多个tick,每个tick内的流动性是固定的。这个实现使⽤了⾼效的位操作和数学技巧,确保计算的准确性和Gas效率。Uniswap的前端架构采⽤现代化的React技术栈,结合Web3库实现与区块链的交互。SwapMath是V3交换计算的核⼼库,它负责计算单步交换的输⼊输出量。下⾯的代码展示了SwapMath库的核⼼实现。在V3中,价格不是连续的值,⽽是离散的tick。
2025-12-25 15:27:37
1103
原创 4.Uniswap核心业务逻辑详解
这个实现使⽤了Wagmi(React Hooks for Ethereum)和Viem(现代化的以太坊库),⽐传统的ethers.js更类型安全和易⽤。代币交换是Uniswap最核⼼的功能,允许⽤户⽤⼀种代币换取另⼀种代币。这个流程涉及多个组件的协作,每⼀步都有其特定的⽬的和安全检查。下⾯的代码展示了使⽤DFS算法发现所有可能路径的实现。Uniswap的路由算法负责找到最优的交换路径,可能涉及多个池⼦和多个代币。Uniswap的价格预⾔机是DeFi⽣态的重要基础设施,为其他协议提供可靠的价格数据。
2025-12-25 11:30:57
896
原创 0.Uniswap协议概述
Uniswap是全球最⼤的去中⼼化交易所(DEX),采⽤⾃动做市商(AMM)模式,允许⽤户⽆需订单簿即可进⾏代币交换。该协议于2018年11⽉上线以来,已成为DeFi⽣态的基础设施和流动性标准。去中⼼化交易所:⽆需中⼼化服务器,完全基于智能合约运⾏⾃动做市商(AMM):通过数学公式⾃动定价,⽆需传统订单簿流动性提供者(LP):任何⼈都可以提供流动性并获得⼿续费收益DeFi基础设施:为整个DeFi⽣态提供价格发现和流动性基础。
2025-12-24 22:05:42
700
原创 3.Uniswap V4-核心机制详解
Uniswap V4 于 2025 年 1 月正式上线,它在保留 V3 集中流动性等核心优势的基础上,通过架构重构与功能创新,实现了更低的交易成本、更强的可定制性,同时优化了流动性管理体验,成为更适配 DeFi 生态多元化需求的协议。
2025-12-24 17:18:22
644
原创 2.Uniswap V3核心机制详解
*** @dev Tick系统实现合约* @notice 将价格映射到离散的tick空间,实现⾼效的价格计算*/// Tick系统的核⼼常量// 最⼩tick值// 最⼤tick值// 价格计算的基础常量:1.0001^tick// 2^96/*** @dev 将tick转换为价格(sqrtPrice)* @param tick tick值* @return sqrtPriceX96 价格的平⽅根,以Q64.96格式表示。
2025-12-24 16:16:54
986
原创 1. Uniswap V2核心机制详解
功能作⽤: 滑点机制是AMM的核⼼特性,它反映了⼤额交易对市场价格的影响。这个机制的核⼼作⽤是让任何⼈都可以成为做市商,为代币交易提供流动性,同时获得交易⼿续费作为回报。根据恒定乘积公式:x * y = k = 100 * 200,000 = 20,000,000。作⽤: 计算⽤户实际交易时能够获得的代币数量,这个价格考虑了交易对池⼦造成的影响。⼯作原理: ⽤户燃烧LP代币,按⽐例获得池⼦中的两种代币,包括累积的⼿续费收益。则:100 * (200,000 + x) = 20,000,000。
2025-12-24 10:45:41
669
原创 Solidity入门(14)-Hardhat 3 单元测试基础与技巧
自定义错误是Solidity 0.8.4引入的特性,比字符串错误消息更省Gas。// ...});在编写测试时,我们经常需要在每个测试前部署合约。如果使用beforeEach,每次测试都会重新部署,这会消耗大量时间。Hardhat提供了loadFixture功能来解决这个问题。第一次调用时,执行Fixture函数并创建快照后续调用时,直接恢复到快照状态,而不是重新执行这可以将测试速度提升5到10倍// 可选:执行一些初始化操作。
2025-12-23 16:23:31
628
原创 Solidity入门(13)-Hardhat 3 环境搭建
在学习Hardhat之前,很多开发者可能已经接触过Remix这个在线IDE。Remix确实是一个很好的学习工具,它零配置、开箱即用,界面友好,非常适合初学者快速上手和进行简单的测试。零配置,打开浏览器就能用界面直观,操作简单适合快速测试和验证想法不需要安装任何本地工具Remix的局限性:但是,当我们进入实际项目开发时,Remix的局限性就显现出来了:无法使用Git进行版本管理难以追踪代码变更历史团队协作困难没有测试框架支持无法编写自动化测试用例难以保证代码质量。
2025-12-22 11:18:27
1029
原创 Solidity入门(12)-NFT市场
NFT市场是一个去中心化的数字资产交易平台,用户可以在这里铸造、展示、买卖和拍卖NFT(非同质化代币)。与传统的电商平台最大的区别在于,所有的交易逻辑都由智能合约自动执行,不需要中心化的平台作为中介。NFT市场的核心特征:买卖双方直接通过智能合约进行交易合约代码保证了交易的自动执行没有人能够干预或阻止交易过程消除了传统交易中的信任问题所有交易记录都永久记录在区块链上任何人都可以查询NFT的完整交易历史包括创建时间、历次转手价格、当前所有者等信息这种透明度是传统交易平台无法提供的。
2025-12-21 15:22:38
1020
原创 Solidity入门(11)-智能合约设计模式2
我们都知道,智能合约部署后代码是不可修改的。在紧急情况下,能够快速暂停合约的功能,防止损失扩大。从这些例子可以看出,真正的工程实践中,设计模式不是孤立使用的,而是根据业务需求组合使用,每个模式解决特定的问题。通过分离数据存储和业务逻辑,我们可以在不改变合约地址的情况下升级业务逻辑。这个模式在需要创建多个合约实例的场景中非常有用,还能大幅降低部署成本。在实际项目中,我们通常会组合使用多个设计模式来构建复杂的系统。现在我们已经学习了6种设计模式,让我们做一个对比,帮助大家在实际项目中选择合适的模式。
2025-12-18 10:57:35
700
原创 Solidity入门(10)-智能合约设计模式1
在软件工程中,设计模式是被反复使用的、经过实践验证的解决方案。它们不是具体的代码,而是一种解决特定问题的思路和方法。设计模式的价值:经过实践验证的解决方案减少常见错误提高代码可维护性不需要从零开始设计复用成熟的方案减少开发时间模式通常考虑了安全因素避免常见的安全漏洞提高合约的可靠性团队成员都理解这些模式代码更容易理解和维护降低沟通成本状态机(State Machine)是一种计算模型,它定义了一组有限的状态,以及状态之间的转换规则。
2025-12-18 10:29:23
708
原创 Solidity入门(9)-合约间调用
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考在Solidity中,接口(Interface)是一种定义合约必须实现的函数签名的方式。接口本身不包含任何实现代码,只声明函数的名称、参数和返回值。定义函数签名:接口规定了合约应该提供哪些功能,就像一份合同不包含实现:接口只告诉你"有什么",不告诉你"怎么做"只声明函数:接口不包含状态变量,保持极简,专注于函数定义。
2025-12-17 11:12:48
640
2
原创 Solidity入门(8)-库合约Library
库合约(Library)是Solidity中用于代码复用的特殊合约类型,它提供公共函数供其他合约调用。基本定义:库合约是无状态的、可重用的代码模块,类似于其他编程语言中的工具类或静态方法集合。你可以把库想象成一个工具箱,里面装着各种常用的工具函数,任何合约都可以拿来使用,而不需要每次都重新制作这些工具。为什么需要库合约?在智能合约开发中,我们经常会遇到代码重复的问题。比如数学运算、字符串处理、数组操作等功能,在不同的合约中都会用到。效率低下:重复编写相同的代码浪费时间。
2025-12-16 16:20:23
965
原创 Solidity入门(7)- 合约继承
抽象合约(Abstract Contract)是包含至少一个未实现函数的合约。abstract contract 合约名 {// 至少一个未实现的函数 }// 抽象函数:只有声明,没有实现// 普通函数:可以有实现// 可以有状态变量// 实现抽象合约// 必须实现makeSound不能直接部署:必须被继承可以有实现:部分函数可以有实现可以有状态变量:可以定义状态变量可以有构造函数:可以有构造函数强制实现:子合约必须实现所有抽象函数。
2025-12-16 10:28:21
1116
1
原创 Go从入门到精通(28) -再谈GMP和starvation
Goroutine, M, P 的调度模型。这是 Go 语言并发编程的基石,也是其能够高效处理大量并发任务的关键所在。极高的并发性能:由于 Goroutine 非常轻量,一个 Go 程序可以轻松创建成千上万甚至上百万个 Goroutine,而不会对系统资源造成太大压力。高效的调度:M:N 调度:将大量的用户态 Goroutine 映射到少量的内核态线程上,减少了内核线程切换的开销(这是非常昂贵的操作)。Work-Stealing:确保了系统负载的均衡,最大化 CPU 利用率。
2025-12-13 13:00:19
589
原创 区块链核心知识点梳理(10)- Layer2 解决方案
分散资产:不要在桥合约存放大量资金选择成熟桥:Optimism/Arbitrum 官方桥 > 第三方桥验证地址:确认目标链的收款地址小额测试:首次使用先转小额。
2025-12-12 17:54:33
1023
原创 区块链核心知识点梳理(面试高频考点3)-共识机制详解(POW、POS、POH)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。
2025-12-11 17:35:39
1218
原创 区块链核心知识点梳理(面试高频考点2)-BTC vs ETH vs Solana 账户模型对比
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。
2025-12-11 16:58:34
944
原创 区块链核心知识点梳理(面试高频考点1)-BTC UTXO 账户模型
UTXO(Unspent Transaction Output) 即"未花费的交易输出",是⽐特币采⽤的账户模型。与传统银⾏账户不同,⽐特币没有"余额"的概念,⽽是通过追踪所有未花费的交易输出来计算⽤户的资产。没有账户余额:⽐特币⽹络不存储每个地址的余额交易输出即资产:所有的⽐特币都以 UTXO 的形式存在⼀次性使⽤:每个 UTXO 只能被花费⼀次,花费后会⽣成新的 UTXO找零机制:如果 UTXO ⾦额⼤于⽀付⾦额,需要将剩余部分作为"找零"返回追踪这些 UTXO 何时被合并使用。
2025-12-11 16:27:13
1134
原创 Solidity入门(6)-合约实战2
初学者可以简单的理解为这个是一个同质化代币的标准,ERC-20 提出了一个同质化代币的标准,换句话说,它们具有一种属性,使得每个代币都与另一个代币(在类型和价值上)完全相同。以太坊文档官方定义文档。
2025-12-10 10:14:42
673
3
原创 Solidity入门(4)-合约及其组成结构
在 Solidity 中,合约类似于其他编程语言中的类(class),它拥有自己的成员属性和成员函数。例如,一个去中心化交易所可以被实现为一个合约,借贷平台的功能也可以通过合约来实现。如果一个合约既没有定义 receive 函数,也没有定义 fallback 函数,那么该合约将无法接收以太币转账。在这种情况下,所有试图向该合约进行的转账操作都会被 revert(回退)。
2025-12-04 15:49:56
1117
原创 Solidity入门(2)- 数据类型
在很多资料中,你可能会看到“声明”(declaration)和“定义”(definition)这两个概念的区分。一般来说,声明是指为变量指定名字和数据类型的过程,而定义则不仅包括指定名称和数据类型,还包括为变量分配存储空间和赋予初始值。然而,在我们接下来的讨论中,我们不会特别区分这两个概念。我们会交替使用“声明”和“定义”,主要是因为在编写智能合约的上下文中,这种区分并不会对我们的工作产生重大影响。过于严格地区分这两者可能反而会使文章变得更难理解。
2025-12-04 11:24:13
830
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅