暂无搜索历史
在前文我们已经用 Mutex 和 RWMutex 解决了竞态问题。但是在实际生产中,锁并不是唯一解,甚至在高并发场景下可能不是最佳解。这里我们来探索更多可能性:
在日常开发中,我们经常会遇到高并发的业务场景,比如钱包系统的转账。如何保证并发情况下的数据一致性,是 Go 工程师必须掌握的技能之一。今天我用一个简单的钱包转账...
在本课中,我们将从零开始实现一个 最小可用的 ERC20 代币合约,并逐步扩展功能,包括铸造(mint)、销毁(burn)、权限控制(owner / onlyO...
其中最关键的是 storage 写入,单次写入约 20,000 gas(如果从 0 改为非 0)。
Solidity 使用 32 字节为一个存储槽(storage slot)。在继承或代理合约模式下,如果新旧合约的状态变量定义不一致,就可能发生槽冲突,导致关键...
区块链交易在进入区块之前会进入 内存池(Mempool),攻击者可以观察并提前插队:
在区块链上,合约一旦部署便不可修改,这是去中心化的根本保障。但对于复杂应用来说,这却成了一把双刃剑:
因此,本课将深入探讨 多种权限控制模式,并通过实战示例,演示如何安全地在 Solidity 中实现访问控制。
在之前的文章中,我有介绍如何部署自己的 PoA 私链。这篇文章中使用的 geth 版本是v1.13.15,最后一个支持 PoA 共识部署的版本,使用这个版本除了...
会点前端的C++/C#/Blazor开发工程师
从这一课开始,我们将会进入实战环节,通过编写测试来学习 Solidity 合约的各种高级用法。
在复杂的智能合约系统中,代码复用与模块化至关重要。Solidity 提供了 库(Library) 机制,用来组织可重用逻辑,避免重复开发与部署,提升合约的可维护...
这个也是OpenZeppelin UUPS/Transparent Proxy 的核心思路
staticcall 的底层指令是 STATICCALL,它会禁止在调用期间修改状态。
在以太坊的世界里,合约函数调用不是“直接调用函数”,而是发送一段经过 ABI 编码的二进制数据。这些数据不仅包含了调用哪个函数的信息,还包括函数参数的序列化内容...
暂未填写公司和职称
暂未填写学校和专业