GTokenTool全网最好的代币发行工具平台
当前位置:首页 >> solana教程 >> 什么是 Anchor 和 Anchor 程序注册表?

什么是 Anchor 和 Anchor 程序注册表?

admin solana教程 50

Anchor 是领先的 Solana 开发框架,用于在 Solana 上编写安全、可靠且高效的高级程序。Anchor 中的程序是 Solana 区块链上的智能合约,使用户能够将数据锚定到 Solana 区块链。由于 Solana 拥有庞大的开发者社区,Solana 上经过验证的程序托管在 Anchor 程序注册表中,以方便访问。

本文将帮助您了解如何使用最重要的 Solana 开发工具之一Anchor 和 Anchor Program Registry 在 Solana 上进行构建。我们还将比较 Anchor 和 Seahorse(用于与 Solana 交互的基于 Python 的开发框架)。

开发人员在 Solana 区块链上构建的所有内容都涉及程序和账户,它们在区块链上执行并存储数据。Solana中有不同的帐户类别,包括:

  • 数据账户——存储数据

  • 程序帐户-存储可执行程序

  • 原生账户- 表示 Solana 上的原生程序

每个帐户都存储了一组信息:

  • lampors - 该账户拥有的 lampors 数量

  • 所有者- 帐户的程序所有者

  • 可执行文件-检查账户是否可以处理指令

  • 数据- 帐户存储的原始数据字节数组

  • rent_epoch - 账户欠租金的下一个时期

Anchor是一个用于在 Solana 上编写安全、可靠和高级程序的框架,它抽象了账户的低级构建和对 Solana 程序接口的修改。

框架充当基础,使用户不必从头开始创建不必要的逻辑,帮助用户避免冗余代码,并帮助他们编写干净安全的程序。具体来说,Anchor 通过样板、命令行界面 (CLI) 和用于开发 Solana dapps 的工作区提供反序列化的帐户和指令数据。

Anchor 使用宏和特征为开发人员生成样板 Rust 代码。每个 Anchor 程序由三个组件组成:

  1. declared_id - 用于声明程序链上地址的宏

  2. #[program] - 用于表示包含程序指令逻辑的模块的属性宏

  3. #[account] - 用于定义程序的自定义帐户类型的属性宏

以下是 Anchor 程序的基本结构:

Anchor 程序的基本结构
Screenshot.png

当我们第一次构建 Anchor 程序时,它会生成一个新的密钥对,作为部署程序的默认密钥对。

已复制
declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS")

公钥应该作为declare_id!中指定的programID。

然后,我们可以使用 #[program] 属性单独指示程序。每个指令函数都需要一个Context类型的参数,并且可以选择包含表示指令数据的附加函数参数。Anchor 将自动处理指令数据反序列化,以便用户可以将指令数据用作 Rust 类型。

已复制
#[program]mod hello_anchor {    use super::*;    pub fn initialize(_ctx: Context<Initialize>) -> Result<()> {        Ok(())    }}

#[derive(Accounts)]在给定结构上实现帐户反序列化器,无需手动反序列化每个帐户。它负责执行所有必要的约束检查,并确保帐户满足程序安全运行所需的条件。

已复制
#[derive(Accounts)]pub struct Initialize {}

当调用 Initialize 函数时,程序:

  • 检查指令中传递的账户是否与初始化结构中指定的账户类型匹配

  • 检查账户是否符合任何指定的附加限制

这就是 Anchor 程序的工作原理,它允许您开始构建 Anchor 程序。要了解有关 Anchor 程序的更多信息,强烈建议查看其文档。

Anchor 程序注册表(APR)是已在 Solana 区块链上注册的 Anchor 程序的目录,可让用户轻松找到并访问它们。APR 确保 Anchor 程序在区块链上注册并经过身份验证。

锚定程序注册表中有许多程序可让您的工作更轻松。让我们考虑其中的几个例子:

  • token_signer——为 Solana 密钥管理和安全提供一套程序。

  • spl_governance——针对Sealevel 并行运行时的链上程序集合。

  • crate_token-允许任何人创建、管理和交易代币化的资产篮子。

Solana 开发人员使用 Anchor Program Registry 访问 Solana 区块链上经过验证的程序。Anchor Program Registry 为经过验证的程序编录源代码,使开发人员可以访问工作代码的存储库。

您可以按照下面提供的流程来使用 Anchor Program Registry:

  1. 访问锚定程序的地址

  2. 连接你的钱包

  3. 访问 UI

  4. 签署并发送交易以执行指令

APR 接口提供了 Anchor 程序支持的指令列表和可用于配置给定指令的输入的表单字段。

Seahorse 是一个类似 Anchor 的 Solana 开发框架,但它是为 Python 开发人员构建的。Seahorse提供了一套工具,用于在 Solana 区块链上构建、部署和与程序和帐户交互。它支持 JavaScript、Rust 和 Python 等不同的编程语言,并为新开发人员提供资源和文档。

Anchor 与 Seahorse 的比较
Screenshot.png

有几种资源可帮助你了解 Anchor 框架:

  1. Anchor Docs - 查找最相关、最新的信息

  2. Soldev - 使用示例代码开始使用 Anchor 开发智能合约

  3. Sol Playground - 使用在线 IDE 开始使用 Anchor 开发程序

有大量资源可帮助您了解 Anchor 框架并开始构建自己的分散式应用程序。

Anchor 框架是构建可靠且安全的 Solana 程序(智能合约)的宝贵工具。此外,Anchor Program Registry 是 Solana 区块链上经过验证的程序的目录,是实现更好可组合性的关键资源。

作者:GTokenTool一键发币平台

交流群:https://t.me/+Kz4u3xoDpFo3ZWY1

同类推荐