流动性质押(Liquid Staking)是 Web3 领域的一项创新技术,允许用户在质押代币的同时,仍然保持流动性,以便参与去中心化金融(DeFi)活动。通过将 SOL 存入流动性质押池,池管理器会将其分配给一组经过筛选的验证节点。作为回报,用户将获得一种代表质押 SOL 的代币,即流动性质押代币。与质押的 SOL 不同,这种新代币具有流动性,可以在 DeFi 平台上进行交易、出售、转移和使用。
流动性质押因其能够在保障网络安全的同时,为用户提供流动性而越来越受欢迎。Solana 提供了一个原生程序,用于创建流动性质押池和代币。本文将介绍如何使用 Solana Stake Pool Program 在 Solana 上创建流动性质押池。
🚀 与 OKX 一起开启您的加密货币之旅!零手续费交易,使用最先进的 Web3 功能,加入数百万全球交易者的行列。新用户可获得高达 100 USDT 的独家欢迎奖金!今天就与世界领先的数字资产平台一起开始您的交易冒险吧。
👉 OKX 新人限时优惠,最高可领取 100 USDT 奖励 : OKX活动页面 | 国内镜像地址(免翻墙)
在本示例中,我们将使用 Solana CLI 管理两个钱包:Pool Authority 钱包和 User 钱包。Pool Authority 钱包用于创建质押池并添加验证节点,而 User 钱包则用于向池中存入 SOL 并接收流动性质押代币。
安装 Solana CLI 和 SPL-Stake-Tool CLI 后,创建一个新项目目录并在终端中导航到该目录:
bash
mkdir my-stake-pool
cd my-stake-pool
接下来,使用 solana-keygen 命令创建两个新钱包:AUTHORITY.json 和 USER.json。然后,通过以下命令将 Solana 配置指向 AUTHORITY.json 钱包和 Solana 的 devnet:
bash
solana config set --url devnet --keypair ./AUTHORITY.json
使用 solana config get 命令确认配置是否正确。
使用 solana address 命令获取新创建的钱包地址,并从 Solana Faucet 请求大约 5 SOL。使用 solana balance 命令验证钱包中的 SOL 余额。
Solana Stake Pool Program 是一个用于将 SOL 集中质押到一组验证节点的程序。它简化了质押池的创建和管理,并支持费用收取、资金存取等功能。
每个质押池包含两个数据账户:
质押池账户:存储池的详细信息,如费用、流动性质押代币铸造信息、质押金额等。
验证节点列表:存储池中验证节点的质押账户和余额。
质押池包含三种类型的质押账户:
验证节点质押:已激活并委托给验证节点的质押账户。
临时质押:正在激活或取消激活的质押账户。
储备质押:未委托给验证节点的质押账户,用于重新平衡池。
质押池程序允许管理者设置不同类型的费用,以避免某些经济攻击。例如,可以设置存款或取款费用来防止恶意用户利用验证节点的高性能获利。
使用 spl-stake-pool create-pool 命令创建流动性质押池。以下命令将创建一个收取 0.1% 取款费用和 5% 质押奖励费用的池:
bash
spl-stake-pool create-pool --withdrawal-fee 0.1 --epoch-fee 5
创建成功后,您将看到以下账户信息:
储备质押账户:用于存储未委托给验证节点的 SOL。
代币铸造账户:用于铸造流动性质押代币。
关联代币账户:用于存储流动性质押代币。
费用收集账户:用于存储池收取的费用。
质押池账户:存储池的详细信息。
使用 spl-stake-pool list 命令查看池的详细信息。
使用 spl-stake-pool add-validator 命令将验证节点添加到池中。首先,使用以下命令获取验证节点列表:
bash
spl-stake-pool list-validators
选择一个验证节点并将其添加到池中:
bash
spl-stake-pool add-validator --vote-account --pool
使用 deposit-sol 命令将 SOL 存入池中,并使用 withdraw-sol 命令取出 SOL。以下命令将 2 SOL 存入池中,并取出 0.1 SOL:
bash
spl-stake-pool deposit-sol --amount 2 --pool
spl-stake-pool withdraw-sol --amount 0.1 --pool --destination ./USER.json
使用 increase-validator-stake 命令将 SOL 委托给验证节点:
bash
spl-stake-pool increase-validator-stake --amount 1 --pool --vote-account
现在,您已经成功创建了自己的流动性质押池。您可以尝试以下操作:
添加更多验证节点。
使用 deposit-stake 命令将现有质押账户转移到池中。
修改费用设置。
为流动性质押代币添加元数据。
通过不断探索,您将更好地理解流动性质押池的运作机制,并优化用户体验。
We ❤️ Feedback!