如何使用 Seahorse 用 Python 编写 Solana 程序
Solana 是一个具备智能合约功能的高性能区块链网络,旨在为全球化应用提供扩展能力。Solana 平均每秒可处理 3,000 笔交易,是速度最快的区块链协议之一。Solana Programs 是部署在 Solana 区块链网络上的智能合约,用于执行各类操作,包括代币转账、铸造 NFT 以及链上投票。
本文将介绍如何使用 Seahorse 开发框架,分别在本地开发环境和在线 IDE 中用 Python 编写 Solana Programs。
在 Solana 上开发程序的主要方式有哪些?
要开发 Solana Programs,你需要学习 Rust 并使用 Anchor 开发框架进行构建,或者使用 Seahorse——一个面向 Solana 的 Python 风格开发框架。
Rust 是构建 Solana 所使用的编程语言,也是与 Solana 的 Sealevel Runtime 交互的默认 web3 编程语言。
使用 Anchor 在 Solana 上开发
Anchor 是一个框架,通过将 Rust 语言的复杂性从普通用户面前抽象出来,使 Solana 应用开发变得更容易。
Anchor 为 Solana 开发者提供了一系列工具,包括接口定义语言(IDL)、从 IDL 生成客户端的 TypeScript 包、Rust crate,以及命令行接口(CLI)。
使用 Seahorse 在 Solana 上开发
Seahorse 是一个由社区主导的 Solana 开发框架,让开发者能够用 Python 编程语言编写 Solana 程序。
Seahorse 让每一个用 Python 编写的程序都具备与 Rust 程序相同的安全保障。Seahorse 与 Anchor 完全兼容,也可以与 Rust 代码互操作。
Python 常用于日常的 Web 应用开发和机器学习项目,是目前最流行的编程语言。
由于许多有意构建区块链应用的开发者可能已经具备 Python 编程能力,他们可以使用 Seahorse 构建 Solana 应用,而不必学习一门全新的编程语言(Rust)。
如何在本地 Solana 开发环境中使用 Seahorse
像 Solana Playground 这样的平台仅适用于快速构建和测试应用,不应作为构建大型应用的依赖手段。要搭建在本地工作区中使用 Seahorse 进行开发所需的环境,我们需要安装以下组件:
- Rust
- Solana Tool Suite
- Node
- Anchor
- Seahorse
1. 安装必要的 Solana 开发工具
要安装 Rust、Solana Tool Suite、Node 和 Anchor,请参阅这篇关于搭建本地 Solana 开发环境的教程。
如果你使用的是基于 Linux 的机器,可能需要运行以下命令来添加额外的依赖项:
2. 安装 Seahorse
Seahorse 依赖 Anchor 和 Rustfmt 才能正常工作。由于 Anchor 已经在你的机器上运行,安装 Rustfmt 包和 Anchor 会很简单。
运行以下命令添加 Rustfmt 包:
在终端中运行以下命令来安装 Seahorse:
运行最后一条命令,检查 Seahorse 是否安装成功:
3. 生成一个纸钱包
由于你已经安装了 Solana Command Line Tools,你可以创建一个本地“纸钱包”,用于本地开发。
运行以下命令,验证 Solana CLI 工具是否已安装:
然后输入以下命令,生成一个新的密钥对:
请妥善保存这些信息,以便在本地环境中使用。
为你的纸钱包充值:
运行 solana airdrop 2 命令获取 2 个测试 SOL 代币
如果你想使用在线开发环境来测试 Seahorse,而不是在本地运行,Solana Playground 是一个不错的选择。
如何在 Solana Playground 中设置 Seahorse
Solana Playground 是一个在线集成开发环境,专为快速启动 Solana 应用开发而构建。
Solana Playground 提供以下预构建的 Crate:
- Native(Rust)——适用于打算不使用任何框架直接在 Solana 上构建的开发者
- Anchor(Rust)——适用于使用 Rust 及其附加工具在 Solana 上构建的开发者
- Seahorse(Python)——适用于有 Python 编程经验的 Solana 开发者

1. 创建一个新的 Solana Playground 项目
在 Solana Playground 上创建一个新项目,并为该目录命名。命名后,会出现一个名为 FizzBuzz 的示例项目。本教程将使用这个小型 dapp 进行讲解。
2. 创建一个 Playground 钱包
在与 Seahorse 程序交互之前,你需要先生成一个 Playground Wallet。该 Playground Wallet 作为应用的测试钱包使用。
- 点击“playground wallet”
- 选择新建钱包
- 按照提示操作,下载 JSON 文件

3. 获取测试 SOL 代币
在 playground 终端中输入以下命令,获取 devnet SOL 代币:
$ connect
connect 命令用于将你的测试钱包与项目关联。
$ solana address
solana address 命令用于打印出你的 Solana 钱包地址。稍后我们将使用该地址来初始化 FizzBuzz 应用。
$ solana airdrop 2
solana airdrop 命令会向你的钱包充值测试 SOL 代币,用于支付执行“Build”或“Deploy”等操作所需的费用。

Seahorse 的 Python 组件是如何工作的
在本节中,我们将逐步讲解如何在链上创建这个常见但简单的 FizzBuzz 应用。代码中主要包含三个部分:
- Account
- Instruction 1
- Instruction 2
1. Account
Executable Account 用于定义在 Solana 区块链上运行的可执行代码(智能合约)。在 Accounts 定义中,你可以指定 Solana 程序所需的数据类型。
Fizz 和 Buzz 被定义为布尔类型,而“n”变量则是无符号整数类型。
2. Instruction 1
还有一类账户被称为内置账户(Built-In Accounts)。这些内置账户大多用于调用链上的特定指令。
A. Signer 账户
需要签名者的指令必须获得钱包的批准。Signer 是对这部分代码中定义的指令调用进行交易签名的钱包。
owner 关键字用于保存 Signer 的详细信息。要获取 Signer 的公钥,可以添加以下代码:
B. Empty 账户
Empty 账户类型用于初始化主 Account(FizzBuzz)的类,即使该账户最初为空。
通过使用 Empty 关键字,你可以构建主 Account 中定义的类。当 FizzBuzz 账户被初始化时,创建费用由 Owner(即交易的签名者)支付。
一旦该账户在链上创建完成,同一 owner 再次调用时就不能重新创建该账户。初始化时生成的 seed 可用于识别原始账户。
3. Instruction 2
第二条指令调用使用的是已创建账户及其对应的值。
以下是 FizzBuzz 的完整代码示例:
开始使用 Seahorse 通过 Python 构建 Solana 应用
Seahorse 是一个由社区主导的开源项目,完全免费向公众开放使用。Seahorse 目前处于测试阶段,许多功能尚未实现。虽然它还未达到生产可用的水平,但可以用来在 Solana 的 devnet 上进行实验和开发应用。
借助 Seahorse,用 Python 在 Solana 上构建应用变得可行且简单。如果你是一名 Python 有意学习 web3 开发的开发者,通过 Solana Playground 探索 Seahorse,是开始掌握 Anchor、Rust 和 Solana 程序相关技能的一种安全且有趣的方式。
相关概览
Solana2026年7月27日
Solana 节点:验证者节点、RPC 节点与自建节点
Solana 节点是什么,验证者节点、RPC 节点与辅助数据系统有何区别,以及何时应自建节点、何时应使用第三方服务。
Solana2026年7月22日
Solana 归档数据:如何查询完整的区块与交易历史
Solana 归档数据详解:节点为何修剪历史数据、哪些 RPC 方法需要归档访问权限,以及如何大规模查询完整的区块与交易历史。
Solana2026年5月28日
Solana Agent Kit 与 GOAT 与 ElizaOS:该选哪个框架?
对比 Solana Agent Kit、GOAT 与 ElizaOS:Solana 原生深度、多链广度还是完整的 agent 运行时。包含代码示例与决策框架。

构建区块链应用
Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。