Solana 60 天 教程

该文章介绍了RareSkills提供的为期60天的Solana开发课程,旨在帮助有以太坊或EVM开发背景的工程师快速掌握Solana程序开发。课程通过比较以太坊和Solana的相似之处和差异,帮助学习者高效过渡到Solana开发。

Solana 60 天

一个由 Rareskills 提供的 Solana 课程

这个 Solana 课程旨在为具有初级或中级以太坊或 EVM 开发背景的工程师快速掌握 Solana 程序开发。

工程师在第一次学习区块链编程时面临的困难是,他们必须学习新的计算模型、学习新的语言和学习新的开发框架。

如果你已经在以太坊或兼容以太坊的区块链上开发过,你已经对计算模型有了相当好的了解,可以将焦点放在语言和框架上。

我们的目标是利用你过去在以太坊的经验,以更快的速度学习 Solana。

你不必从零开始。

Solana 的区块链运行模型与以太坊不同,但并不是完全不同。

在解释所有区别之前,本教程试图将关键信息压缩到以下范式中:

“我知道如何在以太坊中做 X,我该如何在 Solana 中做 X?”

“我无法在 Solana 中做 X,为什么?”

我们采取这种方法是因为,如果你能够将已有的心理模型中的概念映射到一个新的事物上,建立新的心理模型就会容易得多。

如果你和大多数程序员一样,Solidity 对你来说可能很容易学习。它几乎与 Javascript 是一对一的关系。然而,设计智能合约可能是一个挑战,因为它与你在其他应用中的经历大相径庭。

我们希望你能够理解 Solana 和以太坊的相似之处,以及它们之间的关键区别。

(注意:我们在本系列中经常讨论以太坊,但所有的想法也适用于其他兼容 EVM 的区块链,例如 Avalanche 和 Polygon。)

所有区块链都是去中心化的状态机

Solana 确实具有截然不同的架构,但本质上与以太坊所做的事情是相同的: 它是一个分布式状态机,根据签名交易进行转换,其中执行的费用以生态系统的原生代币支付(以太坊为 ETH,Solana 为 SOL)。

我们的目标是利用你对 EVM 的知识作为你的 Solana 开发之旅的跳板。

考虑这个类比

如果一个前端 web 开发人员和一个后端 API/数据库工程师都决定学习移动应用开发,大多数工程师会说前端 web 开发人员相对后端工程师有巨大的起步优势,尽管 web 开发和移动开发并不完全相同,但开发经历在某些工具链下是非常相似的。

基于这个推理,我们认为,胜任 EVM 智能合约的工程师应该能够比没有编程区块链经验的工程师更快地掌握 Solana。

这个课程旨在利用这一优势。

我们从 Solana 中与以太坊相似的方面开始

如果你查看我们的课程大纲,你会发现,在我们讲述更基础内容之前,似乎先讨论了一些中级主题(按照 Solidity 的标准),例如 gas 使用情况。这是有意而为的。

从 EVM 在 Solana 中的等价物开始

我们希望先从可以与以太坊概念进行一对一映射的主题开始。我们假设你知道存储是一个重要主题,并且可以稍等再深入探讨。

通过小型练习来减轻过渡负担

使用新框架总会感到不适。因此,给你一系列依赖于熟悉心理模型的短小练习可以减轻过渡负担。同时使用新框架和新的心理模型会让人感到沮丧。我们希望你在早期有很多小胜利,这样你就可以带着势头迎接更不熟悉的方面。

一个积极的学习旅程

我们在整个教程中包含了标记为“练习”的练习,这些将是你刚刚获得的知识的实践应用。你应该完成它们!积极的学习始终优于被动阅读。

我们期望你熟悉 Solidity

如果你从未进行过智能合约开发,本教程并不是专门为你编写的。我们假设你熟悉 Solidity,处于初级到中级的水平。如果 Solidity 示例让你感到陌生,请花一周时间练习我们的免费 Solidity 教程,然后再回来这里。

我应该了解多少 Rust?

不多。

Rust 是一门庞大的语言,语法足以让大多数其他流行语言显得渺小。在学习 Solana 之前“先精通 Rust”是一个错误。你可能正在走上一条可能持续几个月的弯路!

本课程只关注你需要了解的最低限度的 Rust。

如果你对于深入了解你从未使用过的语言感到不舒服,请完成我们 Rust Bootcamp 中的免费视频和练习,留在那儿就好。我们的审核人员在没有先完成 Rust Bootcamp 的情况下完成了这里的练习,因此我们认为我们在本课程中成功地平衡了教学的 Rust 知识。

为什么要 60 天?

我们发现学习者在信息被分解成最基本的部分时都能保持更好的参与度。如果教程太长,只有最有兴趣的读者会完成它们。在将教程限制为尽可能基本的内容后,我们估计大约需要六十个教程才能对 Solana 开发生态系统有一个舒适的掌握。

我们进行了这些教程的测试,发现审核人员可以在不到一小时的时间内轻松完成这些教程。每天不需要花费过多精力使学习 Solana 更加可持续,减少了精疲力竭的可能性。

有动力的读者如果愿意,可以更快地完成课程。

对于那些对 Solana 只感兴趣的读者,可以以更悠闲的节奏进行学习,而不会在任何一天浪费过多时间和精力。

祝好运,欢迎来到 Solana!

Solana 课程

模块 1

介绍性主题

第 1 天

你好,世界(以及故障排除 Solana 安装)

第 2 天

函数参数、数学和算术溢出

第 3 天

Anchor 函数魔法与接口定义语言

第 4 天

Solana 退款、错误和基本访问控制

第 5 天

构造函数在哪里?关于 Anchor 部署

模块 2

你需要了解的最低限度的 Rust

第 8-10 天并不是关键内容,它们仅解释了一些大多数读者可能不熟悉的语法。然而,你仍然可以编写 Solana 程序,并在学习的过程中将不寻常的语法视为模板。请随意跳过这几天。

第 6 天

Solidity 转换为 Rust 和 Solana

第 7 天

Rust 的不寻常语法

第 8 天

理解 Rust 中的类似函数的宏

第 9 天

Rust 结构体、属性类型和自定义派生宏

第 10 天

将 Solidity 函数可见性和合约继承转换为 Solana

模块 3

Solana 中的重要系统级信息

第 11 天

Solana 中的区块变量:block.timestamp、block.number 和其他

第 12 天

超越区块:sysvars

第 13 天

Solana 日志、事件和交易历史

第 14 天

tx.origin、msg.sender 和 onlyOwner 在 Solana 中

第 15 天

交易费用和计算单位

模块 4

Solana 中的账户和存储

账户是 Solana 开发中最复杂的主题之一,因为它们比以太坊存储变量灵活得多,因此我们将缓慢讲解。每个教程将逐步强化概念,所以不用担心所有的新信息不会立即消化。

第 16 天

Solana 中的账户

第 17 天

写入存储

第 18 天

从 TypeScript 中读取账户 — 作为公共变量和视图函数的替代品

第 19 天

在 Solana 中创建映射和嵌套映射

第 20 天

存储的成本、最大存储大小和账户调整大小

第 21 天

在 Rust 中读取账户余额:在 Solana 中的 address(account).balance

第 22 天

更多的区别:修改器、视图纯、可支付和回退在 Solana 中的表现

第 23 天

构建支付分割器:“可支付”和“msg.value”在 Solana 中

第 24 天

授权不同的钱包写入账户:“搞笑 tx.origin”

第 25 天

PDA 与 Keypair 账户

第 26 天

理解 Solana 中账户所有权:将 SOL 转出 PDA

第 27 天

init_if_needed 和重初始化攻击

第 28 天

Solana 中的 Multicall:批量交易

第 29 天

所有者与权限

第 30 天

删除账户和关闭程序

第 31 天

在 #[derive(Accounts)] 中的账户类型

第 32 天

在链上读取另一个 Anchor 程序的账户数据

第 33 天

跨程序调用

订阅我们的新闻通讯

我们不会将你的信息出售给任何人。绝对不。

  • 原文链接: rareskills.io/solana-tut...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
RareSkills
RareSkills
https://www.rareskills.io/