redis 事务有两种实现方式,一种是通过 MULTI
命令 , 另一种是使用 lua script. lua script 更简单, 而且 lua script 由于交互更少,且 redis 可以缓存 lua script,因此,效率更高,非常适合用于追求效率的地方。
hardhat solidity 常见错误
常见 hardhat
相关问题整理
整理 hardhat, solidity 常见的错误,不定期更新。
openzeppelin 版本4.1.0-4.3.1中UUPS proxy 存在致命漏洞
openzeppelin 的Proxy
有两种:
- 透明代理 Transparent proxy
- UUPS proxy
两者的最主要的区别是, upgradeTo
函数逻辑的位置。在透明代理中, upgradeTo
函数逻辑在proxy合约中;而在 UUPS 代理中, upgradeTo
函数逻辑在实现合约中。
AAVE源代码分析 -- AAVE 部署及初始化
由于 AAVE
合约较多,因此 AAVE
的部署也比较复杂. AAVE 把部署分为7个任务,每个任务作为一个 hardhat task
, 然后通过 full taks
调用各个task
,来完成整体的部署和初始化。
fulltask
在工程的 package.json
文件中,有几十个部署任务,其中,这个任务是部署主网并验证合约:
AAVE源代码分析 -- AAVE 闪电贷
flashloan
flashloan, 闪电贷, 是指在无需任何抵押, 一个交易内完成借款,还款的借贷行为。 核心是在一个交易内完成, 正因为在一个交易内完成, 所以才无需抵押, 也正是由于在一个交易内完成,闪电贷使用区块链交易事务的特性,可以检查还款的额度是否>借款+利息, 如果不够, 则交易回滚, 任何数据都被还原, 也就是说, 借给你的资金也同样回滚,因此,没有任何风险。
此外,闪电贷的利息收入非常可观。一个块,也就几秒钟、十几秒钟时间,收取万分之9的利率,而且,一般使用闪电贷的,都是极大的借款量,动辄几千万,上亿美金。