Skip to content

程序示例

"Solana程序示例" 的GitHub仓库提供了多个子文件夹,每个文件夹包含不同Solana编程范式和语言的代码示例,旨在帮助开发者学习和体验Solana区块链开发。

你可以在solana-developers/program-examples中找到这些示例,以及解释如何运行这些示例的 README 文件。大多数示例是独立的,可在原生Rust(即无框架)、AnchorSeahorse等语言版本,还包含我们希望作为贡献的示例列表。 在仓库中,你会找到以下子文件夹,每个文件夹内有各种示例程序:

基础

包含一系列示例,展示了使用原生Rust库构建Solana程序的基础步骤。这些示例旨在帮助开发者理解Solana编程的核心概念。

示例名称描述语言
创建账户在账户中保存地址、姓名、门牌号、街道和城市的地址。Native, Anchor
检查账户展示如何进行帐户检查的安全课程Native, Anchor
关闭账户展示如何关闭账户以取回租金。Native, Anchor
计数器适用于所有不同架构的简单计数器程序。Native, Anchor, Seahorse, mpl-stack
创建账户如何在程序中创建系统账户。Native, Anchor
跨程序调用使用手和杠杆的类比,展示如何在程序中调用另一个程序。Native, Anchor
你好SolanaHello world示例,仅在交易日志中打印hello world。Native, Anchor
PDA租金支付者展示如何使用 PDA 的 lamports 支付新账户的费用。Native, Anchor
处理指令展示如何处理指令数据字符串和u32。Native, Anchor
程序派生地址展示如何使用种子引用PDA并在其中保存数据。Native, Anchor
重新分配展示如何增加和减少现有账户的大小。Native, Anchor
租金学习如何在程序中计算租金要求。Native, Anchor
仓库布局关于如何组织程序结构的建议。Native, Anchor
转移SOL展示如何为系统账户和 PDA 转移 SOL 的不同方法。Native, Anchor, Seahorse

压缩

包含一系列示例,展示如何在Solana上使用状态压缩。主要集中在压缩NFT(cNFT)。

示例名称描述语言
cNFT - 销毁销毁 cNFT 的示例。Anchor
cNFT - 保险库如何在程序中保管 cNFT 并再次发送出去。Anchor
cutils一套工具,例如在程序中铸造和验证 cNFT。Anchor

预言机

预言机允许在程序中使用链下数据。

示例名称描述语言
PythPyth 在链上程序中提供代币的价格数据。Anchor, Seahorse

代币

大多数Solana上的代币使用Solana程序库(SPL)代币标准。在这里你可以找到许多关于如何铸造、转移、销毁代币以及如何在程序中与它们交互的示例。

示例名称描述语言
创建代币如何创建代币并添加 metaplex 元数据。Anchor, Native
NFT铸造器铸造代币并移除铸币权限的示例。Anchor, Native
PDA铸造权限展示如何更改铸币权限,从而在程序中铸造代币。Anchor, Native
SPL代币铸造器解释如何使用关联代币账户来跟踪代币账户。Anchor, Native
代币交换详细展示如何为 SPL 代币构建自动化市场做市商(AMM)池。Anchor
转移代币展示如何使用CPI将SPL代币转移到代币程序中。Anchor, Native, Seahorse
Token-2022参阅 Token 2022(代币扩展)。Anchor, Native

Token 2022(代币扩展)

Token 2022 是 Solana 上的新代币标准。它更加灵活,可以为代币铸造添加 16 种不同的扩展功能。扩展功能的完整列表可以在入门指南中找到。

示例名称描述语言
基础如何创建代币、铸造和转移它。Anchor
默认账户状态此扩展允许你创建具有特定状态的代币账户,例如冻结状态。Native
铸造关闭权限旧代币程序中无法关闭铸造,现在可以了。Native
多重扩展展示如何为单个铸币添加多个扩展功能。Native
NFT元数据指针使用元数据扩展创建 NFT 并添加动态链上元数据。Anchor
不可转移例如用于成就、推荐计划或任何灵魂绑定代币。Native
转移费用每次代币转移时,代币账户中保留一些代币,然后可以收集这些代币。Native
转移钩子四个示例展示如何使用 CPI 从代币程序调用你的程序以添加额外功能。Anchor

Break

Break是一个React应用程序,给用户一种直观的感觉,展示Solana网络的快速和高性能。你能打破Solana区块链吗? 在15秒的游戏过程中,每次点击按钮或按键都会向集群发送一个新交易。尽可能快地敲击键盘,观看你的交易实时完成,而网络则从容应对!

Break 是一个 React 应用,给用户提供 Solana 网络快速高效的直观感受。你能打破 Solana 区块链吗?在 15 秒的游戏中,每次点击按钮或按键都会向集群发送一个新交易。尽可能快地点击键盘,观看你的交易实时确认,而网络能够应对这一切!

Break 可以在我们的 开发网、测试网 和 主网Beta版 网络上玩。在 开发网 和 测试网 上,游戏是免费的,由网络水龙头资助。在 主网Beta版 上,用户每局游戏支付 0.08 SOL。会话账户可以通过本地密钥存储钱包资助或通过扫描 Trust Wallet 的二维码转移代币。

点击这里玩 Break

点击这里来玩Break

构建和运行

首先获取示例代码的最新版本:

shell
git clone https://github.com/solana-labs/break.git
cd break

接下来,按照git仓库中的README文件的步骤进行操作。