智能合约Gas 优化的几个技术
文章非常严谨讨论了各种实现的 gas 消耗,以及低效代码带来的深远影响,并给出了实现方案。
在本文中,通过 7 个任务,如何来编写可升级合约,测试以及自动、活动实施升级。 在 7 个任务中,分别介绍了可升级合约可能遇到的各种情况: 在新实现合约中添加函数、添加状态变量、修改状态变量可见性(修改函数)。
Solidity有两种模式实现升级:透明代理与UUPS代理, 他们的实现由细微差别,本文一起来看一看。
使用检查、影响和交互模式(简称CEI:Checks, Effects, and Interactions)、互斥锁、Pull 支付方式以及gas限制都是防止可重入攻击的有效技术。
自动化调用dapp的方法一种是直接调用合约的方法进行交易,另一种是用无头浏览器通过操作dapp页面进行自动化交易。
对比使用mapping、默克尔树、及离线签名 3 中方式处理白名单的优缺点。
Openzeppelin 新增了 CrossChain (跨链)功能,看看如何使用它。
极快的测试,不再使用 BigNumber.js,只有 Solidity 代码
使用ganache的主网fork技术 搭配python友好的brownie框架,高效对合约进行开发测试。
NBA最近发行了数字藏品,然而我们发现,其售卖数字藏品的合约存在非常严重的漏洞。攻击者(“科学家”)可以通过漏洞无成本铸造藏品然后出售获利。
漏洞的成因在于对白名单用户的签名校验有安...
Solidity - 使用位运算节省 gas,在这篇文章中,我将解释其中的一些技巧,并通过一款更简单的井字棋游戏来分享我的思考过程。
普通开发者需要了解的优化 Solidity 合约的基础
项目开发中还有另一种收益产生的情况,不是每个块或者每秒产出固定的数量,而是每次打进质押合约一笔 就加权平分一笔,这时质押算rewardPerTokenStored数值方法就得做更改,只要理解算法是用的每个阶段的挖矿产量一切迎刃而解。
rewardPerTokenStored
合约开发中遇到很多质押挖矿类的需求,单币质押、双币质押、算力挖矿等等,这些需求大多都是美秒产多少币(每个块产多少币),根据质押的量加权平分产出的币。如果中心化的程序很容易完成这个需求,但在区块链上没有定时器,不能实现大量循环。这些局限让我们体会了区块链的极简之美。
在这篇文章中,我们将详细分析现有的智能合约升级策略,描述我们在实践中观察到的弱点,并为需要升级的合约提供建议。
在 Solidity 中,动态值数组是否比引用数组效率更高吗?
OpenZeppelin Hardhat Upgrades 使用教程
解决非标准 ERC20 问题
这段时间总是与NFT打交道,大部分NFT都采用了EIP721标准,且均采用了Openzepplin的EIP721实现。前段时间详细看过Openzepplin的相关实现,但是偷懒了,没有整理成文档,导致后面的记忆总是不深刻,理解也不深刻。此次正好将其实现全部整理一下。
扫一扫 - 使用登链小程序
114 篇文章,742 学分
388 篇文章,473 学分
67 篇文章,423 学分
118 篇文章,341 学分
164 篇文章,339 学分