aimotee
代理模式可能是学习 Solidity 开发中最令人困惑的方面之一,因为在其他软件开发领域几乎没有类似的类比。进一步复杂化的问题是——尽管从概念上讲,delegatecall 是容易理解的——完全掌握其细微差别需要对 EVM(以太坊虚拟机)和 Solidity 编译器的工作原理有一定的背景知识。这些细微差别并不是简单的“你知道吗”的琐事,而是对智能合约的运行方式有重要影响。此外,代理模式的标准仍在发展中——截至撰写本文时,ERC-7201 到现在还不到一年的时间。
任何合格的 Solidity 开发者或审计员,都应该对 delegatecall 及其所依赖的代理模式有全面的理解。代理模式并不简单,一个错误就可能破坏可升级性,或者更糟,导致灾难性错误。
本书旨在帮助这样的读者高效且全面地掌握这一主题,同时深入探讨在其他文献中省略或忽视的细节。与此同时,我们力求范围明确;本书不是关于 EVM 的完整课程——我们仅讨论与正确理解 delegatecall 及现有模式设计相关的部分。
本 Solana 课程旨在帮助具有以太坊或 EVM 开发的初学者或中级背景的工程师快速掌握 Solana 程序开发。
初学者在学习区块链编程时面临的困难是他们必须学习一种新的计算模型、学习一种新的语言和学习一个新的开发框架。
如果你已经在以太坊或兼容以太坊的区块链上开发过,那么你已经对计算模型有了相当好的了解,可以专注于语言和框架。
我们的目标是利用你在以太坊方面的过去经验,更快地学习 Solana。 你无需从零开始。
一共包含 8 个模块:
模块 1:入门主题
模块 2:你需要掌握的最少 Rust 知识
模块 3:Solana 中的重要系统级信息
模块 4:Solana 中的账户与存储
24 : 使用不同签名者修改账户
29 : Solana 中的所有者与权限
30 : 在Solana中删除和关闭账户与程序
31 : 在 Anchor 中:不同类型的账户
32 : 在链上读取另一个锚点程序账户数据
模块 5:Solana 上的代币
34 : SPL Token 的运作方式
38 : 基础银行教程
40 : 使用Metaplex实施代币元数据
41 : 使用 LiteSVM 进行时间旅行测试
44 : 生息代币第一部分
45 : 计息代币第二部分
模块 6:Solana 开发进阶主题
46 : Solana 指令自省
模块 7:原生 Solana 程序
50 : 原生Solana:程序入口与执行
51 : Solana 原生:读取账户数据
52 : Solana 原生:Borsh 序列化
55 : Solana原生:创建存储账户 (一)
56 : 原生 Solana:创建存储账户 二
57 : 原生 Solana: 函数分发
58 : 原生 Solana:关键安全检查
模块 8:Solana 汇编(sBPF)
60 : Rust 程序到 SBF 编译
61 : sBPF 虚拟机和指令集介绍
62 : 跟踪 sBPF 指令执行和计算成本
63 : Solana 程序执行与输入序列化
64 : 指令处理器和运行时设置
65 : sBPF 内存布局和寄存器约定