WEB3.0
  • 转发

Solana开发学习笔记(一)——从Hello World出发

更新时间:2025-11-17 21:43:32

笔者注:因近期笔者工作需要,开始接触 solana 链上程序开发。本系列文章是笔者的学习笔记,既是为了备忘,也是希望得到 solana 开发者的指点与交流。本系列文章将默认读者已经掌握 rust 的基础语法,故不涉及对 rust 语法细节的解释。如果读者对 rust 基础语法还不熟练的话,本文下方推荐的 rust 入门书籍《rust 编程入门、实战与进阶》学习。0Y8币圈网 - 区块链数字货币实时行情平台

0Y8币圈网 - 区块链数字货币实时行情平台

1.1 Solana 简介

Solana 是一个高性能、无许可的底层公链,专注于在不牺牲去中心化或安全性的前提下提供可扩展性。Solana 主网于 2020 年一季度上线,目前主网的全球节点超过 800 个,TPS 最高可达 6.5 万,出块时间约 400 毫秒。0Y8币圈网 - 区块链数字货币实时行情平台

Solana 的共识算法采用 PoH(历史证明),其核心是一个去中心化时钟,该时钟旨在解决缺乏单个可信赖时间源在分布式网络中的时间问题。PoH 免除了在节点网络中广播时间戳的需求,从而提高整个网络的效率。0Y8币圈网 - 区块链数字货币实时行情平台

1.1.1 链上程序

Solana 的智能合约叫做链上程序(On-chain Program),Solana 官方提供了 Rust 和 C 的 SDK 来支持开发链上程序。链上程序的开发工作流如图 1-1 所示,开发者可以使用工具将程序编译成 Berkley Packet Filter (BPF) 字节码(文件以 .so 为扩展名),再部署到 Solana 链上,通过 Sealevel 并行智能合约运行时去执行智能合约的逻辑。此外,基于 Solana JSON RPC API,官方提供了诸多 SDK 用于客户端与 Solana 链上数据交互。0Y8币圈网 - 区块链数字货币实时行情平台

图 1-1 链上程序开发工作流0Y8币圈网 - 区块链数字货币实时行情平台

0Y8币圈网 - 区块链数字货币实时行情平台

1.1.2 账户模型

与以太坊类似,Solana 也是基于账户模型的区块链。通过将任意状态存储于链上账户并同步复制给集群中的所有节点,可以创建复杂而强大的去中心化应用程序。0Y8币圈网 - 区块链数字货币实时行情平台

Solana 提供了一套不同于以太坊的账户模型,账户定义的字段如表 1-1 所示。Solana 的账户可以分为可执行账户和不可执行账户。0Y8币圈网 - 区块链数字货币实时行情平台

  • 可执行账户:存储不可变的数据,主要用于存储程序的 BPF 字节码。
  • 不可执行账户:存储可变的数据,主要用于存储程序的状态。

表 1-1 账户定义字段0Y8币圈网 - 区块链数字货币实时行情平台

字段描述
lamports账户余额
owner账户所有者
executable是否为可执行账户
data账户存储的数据
rent_epochSolana链上程序的部署是按其账户大小进行定期收费的,如果账户无法支付租金,系统将清除该账号

我们知道以太坊上每个智能合约的代码和状态都存储在同一个账户中,而 Solana 链上程序是只读或无状态的,即程序的账户(可执行账户)只存储 BPF 字节码,不存储任何状态,程序会把状态存储在其他独立的账户(不可执行账户)中。为了区分某个账户是用作哪个程序的状态存储,每个账户都指定了一个程序作为其所有者。程序可以读取其不作为所有者的账户中的状态,但只有作为所有者的程序才能修改账户中的状态,任何其他程序所做的修改都会被还原并导致交易失败。0Y8币圈网 - 区块链数字货币实时行情平台

更多关于账户模型的资料可以参见官方文档:https://solana.wiki/zh-cn/docs/account-model/0Y8币圈网 - 区块链数字货币实时行情平台

1.2 搭建编程环境

在开始 Solana 链上程序开发之前,需要先安装和配置相关的编程环境。首先请正确安装 Node、NPM 和 Rust 的最新稳定版本,下面来安装 Solana CLI 并配置相关环境。0Y8币圈网 - 区块链数字货币实时行情平台

1.2.1 安装 Solana CLI

Solana CLI 是与 Solana 集群进行交互的命令行管理工具,包含节点程序 solana-validator、密钥对生成工具 solana-keygen,以及合约开发工具 cargo-build-bpf、cargo-test-bpf 等。0Y8币圈网 - 区块链数字货币实时行情平台

在终端运行以下命令,可完成 Solana CLI 最新稳定版的下载与安装。0Y8币圈网 - 区块链数字货币实时行情平台

sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
登录后复制
相关资讯
  • 比特币交易所合约怎么交易_比特币交易所合约交易指南
    2025-11-17 22:05:55
    比特币交易所合约怎么交易_比特币交易所合约交易指南
  • ZEC币值得长期持有吗?投资风险与潜在收益分析
    2025-11-17 20:37:04
    ZEC币值得长期持有吗?投资风险与潜在收益分析
  • aioz币未来会值多少钱_aioz币未来会价值会是多少
    2025-11-17 22:14:26
    aioz币未来会值多少钱_aioz币未来会价值会是多少
  • Ozak AI(OZ)可以以0.003至$ 1的目标超过Litecoin(LTC)
    2025-11-17 20:51:16
    Ozak AI(OZ)可以以0.003至$ 1的目标超过Litecoin(LTC)
  • 2025 年的加密货币基金:Grayscale 的 Ondo 与 Hedera 押注 amidst 巨额流入
    2025-11-17 20:43:10
    2025 年的加密货币基金:Grayscale 的 Ondo 与 Hedera 押注 amidst 巨额流入
  • 十大虚拟币交易平台 有哪些正规炒币交易平台?
    2025-11-17 21:13:25
    十大虚拟币交易平台 有哪些正规炒币交易平台?
  • okx交易所怎么赚钱 okx交易所赚钱指南 小白也能轻松赚取
    2025-11-17 21:14:05
    okx交易所怎么赚钱 okx交易所赚钱指南 小白也能轻松赚取
  • Tezos在2025年达成共识的铀令牌化
    2025-11-17 20:47:52
    Tezos在2025年达成共识的铀令牌化
  • Meme币投资有何潜在风险?有何长期投资价值?
    2025-11-17 21:02:57
    Meme币投资有何潜在风险?有何长期投资价值?
  • 使用Upbit交易所进行交易并安装的方法_如何使用Upbit交易所进行交易并安装
    2025-11-17 21:26:09
    使用Upbit交易所进行交易并安装的方法_如何使用Upbit交易所进行交易并安装

©版权所有 油价网 推荐使用IE8+,谷歌浏览器可以获得更快,更安全的页面响应速度 地图|地图1|地图2|地图3