本文将解释为什么 Solana 开发适合构建程序和 dapp,介绍学习 Solana 开发的路线图,并最终回答有关 Solana 开发的问题。在本文结束时,您将了解如何成为 Solana 开发人员,并且您将获得帮助您学习 Solana 开发的资源。
学习 Solana 开发的 4 个理由
Solana 是一个快速且可扩展的区块链平台,专为去中心化应用程序 (dApp) 设计。它允许开发人员快速高效地构建和部署 dApp,使其成为创建新创新项目的理想平台。
有兴趣深入了解吗?以下是 Solana 开发非常适合 dApp 创建的更多原因。
1.高可扩展性
Solana 以其高可扩展性而闻名,每秒可处理数万笔交易。这使其成为构建需要处理大量交易的 dApp(例如去中心化交易所或游戏)的有吸引力的平台。
2. 高级功能
Solana 提供了许多可用于构建创新 dApp 的高级功能,例如对智能合约的支持、用于安全快速交易处理的历史证明 (PoH) 以及 Optimistic Rollup 等第 2 层解决方案。
3. 强大的生态系统
一个由开发者、投资者和企业家组成的蓬勃发展的生态系统,对于任何对区块链领域感兴趣的人来说,这都是一个令人兴奋的地方。通过学习 Solana 开发,您可以成为这个社区的一部分,并为平台的增长和发展做出贡献。
4. 需求不断增长
随着对基于 Solana 构建的 dApp 的需求不断增长,对具有 Solana 开发专业知识的开发人员的需求也将相应增加。通过学习 Solana 开发,您可以将自己定位为希望在该平台上构建 dApp 的公司的宝贵资产。
如何成为 Solana 开发人员
开发人员在Solana 开发者路线图上需要学习的一些最重要的概念包括:
Solana 计划
交易
Solana 账户模型
Solana 编程语言
设置 Solana 开发环境
使用 Solana 开发框架
开发程序
部署程序
测试程序
构建 Dapps
1. 学习 Solana 程序
Solana 程序是 Solana 区块链上的智能合约,包含可执行代码,可用于解释区块链上交易中的指令。它们可以是原生程序,内置于 Solana 区块链的核心中,只能作为区块链软件更新的一部分进行升级;也可以是链上程序,即用户编写的程序,可由其各自的程序所有者直接在区块链上部署和更新。
Solana 程序在 Sealevel 运行时上运行,这是 Solana 区块链的并行处理模型,有助于实现其高交易速度。程序被视为无状态的,因为它们只包含编译的代码,并且可以由其所有者升级。它们还可以拥有其他帐户,可以读取或贷记任何其他帐户,但它们只能更改它们拥有的数据或借记帐户。
2. 了解 Solana 交易
在 Solana 中,交易被提交到集群并由 Solana 运行时处理。交易包含一个紧凑的签名数组,后面跟着一条消息。该消息包括一个标题、一个紧凑的账户地址数组、一个区块哈希和一个紧凑的指令数组。指令指定一个程序、应传递给该程序的交易账户子集以及传递给该程序的数据字节数组。
程序解释数据数组并对指令指定的帐户进行操作。程序可以成功返回,也可以返回错误代码,这会导致整个交易失败。交易会根据签名数量进行验证,并且每个签名都是由消息帐户地址数组中相同索引处的公钥对应的私钥签名的。
3. 了解 Solana 账户模型
与以太坊的虚拟机 (EVM) 相比,Solana 的 Sealevel 运行时具有独特的帐户模型。在 Sealevel 中,任何帐户都可以存储状态,而以太坊上只有智能合约才能将状态存储在其存储中。在 Solana 中,智能合约的状态存储在其他帐户中,每个帐户都会分配一个所有者合约来对状态突变进行独占控制。
Sealevel有两种类型的账户:可执行账户和不可执行账户。
可执行账户-是不可变的,可以存储自己的可执行字节码或具有可变可执行字节码的账户的代理地址
不可执行账户- 存储数据并可由其所有者修改,但任何其他程序的更改都将被恢复
在 Sealevel 中,可执行账户存储用于标识账户的公钥以及调用该账户时将执行的程序的 BPF 字节码;不可执行账户存储余额和数据。
4.学习 Solana 编程语言
Solana 开发使用的编程语言包括Rust、C 和 C++。这些语言用于构建程序(也称为智能合约),这些程序部署在 Solana 区块链上并通过 Solana Runtime 运行。
虽然了解这些语言并创建程序并不是在 Solana 上构建的必要条件,但开发人员可以选择学习它们来创建自己的程序。Solana 还提供了 JSON RPC API 和各种 SDK,包括 solana-web3.js 和 Java、C#、Python、Go、Swift、Dart-Flutter 和 Kotlin,以允许创建类似于传统 Web 或移动应用程序并与集中式 API 交互的去中心化应用程序。
5. 了解如何设置 Solana 开发环境
要编写 Solana 程序,开发人员需要使用核心 Solana 开发人员工具(例如命令行界面和 Solana 工具套件)在本地开发环境中构建和测试他们的程序。
如果您刚刚开始,请按照本分步指南设置您的本地环境。
6. 学习 Solana 开发框架
构建 Solana 应用程序的两个主要开发框架是 Anchor 和 Seahorse。Anchor 抽象化了使用 Rust 原生开发应用程序的大量复杂性。Seahorse 与 Anchor 类似,但它是面向Python 开发人员的 Solana 开发框架。
7. 了解如何开发 Solana 程序
到了路线图的这一阶段,您将对 Solana 基础知识和用于构建应用程序的不同工具有足够的概念知识。要了解如何编写程序,请遵循入门级“Hello World”Solana 教程,或查阅众多免费开发者资源之一。
1. Solana 开发人员
Solana Developers是 Solana 团队为有兴趣了解和构建 Solana 区块链平台的开发人员提供的资源。该网站提供了丰富的信息和资源,包括文档、教程和社区支持,以帮助开发人员开始 Solana 开发。
2. Solana 文档
Solana Docs是 Solana 提供的资源和文档的集合。其中包括平台的功能、技术细节以及如何在 Solana 上构建和部署 dApp 的指南。
3. Solana 食谱
Solana Cookbook是一个开发者资源,提供在 Solana 区块链上构建应用程序的信息和示例。它分为不同的部分,涵盖 Solana 开发的核心概念、指南和参考。它向新开发者开放贡献,并提供贡献指南。
4. Solana 区块链开发者训练营
Solana区块链开发者训练营由 Solana 和 Chainlink 领导,旨在让参与者了解 Solana 架构和编程模型的复杂性。这包括在 Solana 上使用 Rust 进行开发的基础,以构建、部署、测试和与 Solana 区块链交互。开发人员将能够在 Solana、Chainlink 和其他团队的支持下直接学习构建 Solana dapp 并开启新的旅程。
8. 了解如何部署 Solana 程序
代码完成后,您可以将代码编译为 BPF 字节码并创建可部署在区块链上的 .so 文件。
要部署您的程序,您可以使用 solana program deploy 命令,solana program deploy 后跟编译后的 .so 文件的路径。这将向区块链发送交易并将您的程序部署到指定的地址。成功部署将输出程序 ID。
9. 学习测试 Solana 程序
Solana 提供了许多用于调试和测试程序的工具,包括 crate solana-program-test,它允许使用本地运行时环境对程序进行交互式测试和调试。crate solana-validator 可以在本地验证器节点上进行更强大的测试,而 CLI 工具 solana-test-validator 允许从命令行测试和执行 Rust 或 Javascript/Typescript 应用程序的交易。
建议在程序中使用 msg!宏在测试和调试过程中记录信息,但在程序稳定后将其删除,以避免超出计算单元预算。
还可以使用本地验证器节点来测试程序,这可以进行更全面的测试,更接近在 Solana 网络上部署程序时的行为。
10. 学习构建 Solana Dapps
要构建 Solana dapp,您需要熟悉 Solana 生态系统并学习如何与区块链交互。为了构建 Solana dapp,Solana 提供了许多 API 和 SDK,允许开发人员使用流行的编程语言(例如 JavaScript、Java、Python 和 Go)构建 dapp。您可以在 Solana 开发人员页面上访问这些 SDK。