这是本系列文章的第三篇,这篇文章我们就开始编写一个能铸造NFT的智能合约了。当然这不是一篇solidity的教学文章,所以不会在编码细节上做过多的介绍
以Geth代码为基础,从区块结构讲到账户状态/合约存储,最后是SSTORE和SLOAD两个操作码的具体实现
在本文中,通过 7 个任务,如何来编写可升级合约,测试以及自动、活动实施升级。 在 7 个任务中,分别介绍了可升级合约可能遇到的各种情况: 在新实现合约中添加函数、添加状态变量、修改状态变量可见性(修改函数)。
在上一篇文章中我们已经准备好了用于开发、测试和部署智能合约的以太坊私有环境,那么在开始编写合约之前,我们还需要准备开发环境。
静态分析是相对容易掌握的工具,对开发复杂的Defi应用非常有帮助。
这篇通过一个例子讲了EVM中storage和插槽的工作原理
从opcode角度讲解EVM的内存机制,包括数据结构,空闲内存指针与变量赋值等
Solidity有两种模式实现升级:透明代理与UUPS代理, 他们的实现由细微差别,本文一起来看一看。
翻译深入理解EVM系列文章,第一篇是关于函数选择器与字节码/opcode
这是一个使用MetaMask签名消息,然后在链上进行验证的实用教程。
最省GAS链上排序
彻底理解solidity里的storage:Ethereum Architecture(以太坊架构),Block Header(区块头),State Root,Ethereum Account,Storage Root,StateDB -> stateObject -> StateAccount,初始化一个新的以太坊账户,SSTORE,SLOAD
Solidty的gas优化关键点在于减少storage和内存的读写。
使用检查、影响和交互模式(简称CEI:Checks, Effects, and Interactions)、互斥锁、Pull 支付方式以及gas限制都是防止可重入攻击的有效技术。
自动化调用dapp的方法一种是直接调用合约的方法进行交易,另一种是用无头浏览器通过操作dapp页面进行自动化交易。
对比使用mapping、默克尔树、及离线签名 3 中方式处理白名单的优缺点。
注意:该项目仅供学习区块链知识,不作为任何投资建议。市场有风险,投资需谨慎。
Openzeppelin 新增了 CrossChain (跨链)功能,看看如何使用它。
现在写合约中有很多方法可以节省 Gas, 这里发现一个不错案例比较循序渐进,可以参考。
本文分享如何用Vyper而不是Solidity编写智能合约
扫一扫 - 使用登链小程序
59 篇文章,292 学分
36 篇文章,243 学分
108 篇文章,218 学分
21 篇文章,198 学分
9 篇文章,155 学分