Technical Crypto OS第二阶段 · Smart Contract Engineering
第二阶段导读
Smart Contract Engineering。在 EVM 与 Solana 上写出、测试并部署可用的合约。
这一阶段要解决的问题
合约与普通后端代码有三个根本差异,这一阶段围绕它们展开:
- 公开:任何人都能调用任何入口,所以每个 public 函数都是攻击面。
- 不可改:部署之后改不了,除非你提前设计了升级路径——而升级路径本身又是新的风险。
- 昂贵:存储是稀缺资源,一次写入的代价可能是一次计算的一百倍。
六章
T7Solidity 基础
一份合约部署到链上之后是什么形态?
State VariableFunctionModifierEventMapping
T8EVM 深入
同样一行赋值,为什么 Gas 能差一百倍?
MemoryStorageCalldataABIDelegatecall
T9ERC Standards
标准到底解决了什么问题?
ERC20ERC721ERC1155PermitApprove
T10Solana Program
没有合约存储,程序怎么记住状态?
RustAnchorPDACPIAccount Validation
T11Token Program
为什么 Solana 上的 Token 不是一份独立合约?
SPL TokenToken-2022MintATATransfer Hook
T12Testing & Deployment
怎样在花掉真钱之前发现问题?
Unit TestIntegration TestForkFuzzingDeployment Script
这一阶段之后
你能交付一份带完整测试、部署到测试网并验证源码的合约。
阶段作品:一个带完整测试的 Token 合约。
学习建议
- T12 的 Fork 主网测试是这一阶段最重要的技能。它让你在花真钱之前,就能在真实状态上验证你的代码。
- 写测试时先写失败用例。合约代码里,能不能正确拒绝,比能不能正确执行更重要。
- 这一阶段不涉及主网部署。主网部署放在毕业项目,且必须先过安全阶段。