如何使用Candy Machine V2在Solana上部署NFT

  • QuickNode
  • 发布于 2024-11-25 22:26
  • 阅读 13

这篇文章介绍了如何使用Candy Machine v2(CMv2)在Solana上设置NFT铸造,并详细解释了CMv2的新特性如不可预测的铸造索引、白名单、验证码集成和隐藏投放。文章还提供了配置CMv2的逐步指南,包括克隆Metaplex仓库、安装依赖、设置Solana CLI和创建Candy Machine的过程。

Candy Machine 2 已被弃用。

请参阅我们的使用 Metaplex Sugar 构建 Candy Machine 的指南

介绍

你好,读者们,在本指南中,我们将介绍如何使用 Candy Machine v2 在 Solana 上设置 NFT 生成。Candy Machine v2 与 v1 有一些相似之处,但也有很多不同之处。驱动 v2 的主要因素是遏制 NFT 社区所遭受的机器人攻击。对于机器人而言,轻松抢购便宜项目的所有 NFT,导致许多新来者的体验不尽如人意。

在本指南中,我们将始终称 Candy Machine v2 为 CMv2。CMv2 包含几个令人兴奋的变化:

  • 不可预测的铸造索引 — 在 CMv1 中,铸造按照预定顺序进行,这为想要特定 NFT 的人提供了游戏的机会。

  • 白名单 — 现在你可以使用此新版本进行白名单设置。你可以分发任何 SPL 代币作为白名单。可调节的选项包括:提前铸造、关闭铸造或为拥有指定代币的用户提供折扣铸造。

  • 验证码集成 — 此选项可防止机器人干扰你的铸造。

  • 隐藏掉落 — 你现在可以使所有铸造共享单个哈希,这意味着你可以在打折售罄后填充所有 NFT 的元数据。

前提条件

要按照本指南中的步骤操作,请确保你已设置以下技术和工具的最新版本:

配置 CMv2

现在,让我们开始配置。我们需要克隆 Metaplex 仓库,并安装所有依赖项。

注意: 所有命令均在 Unix 机器上运行。

让我们打开一个终端窗口,并导航到你想要设置项目的文件夹。接下来,创建一个新目录 solana-nft-project,并通过以下命令进入该目录:

mkdir solana-nft-project
cd solana-nft-project

简化调试的日志

你现在可以访问 RPC 端点的日志,这有助于你更有效地排除问题。如果你在 RPC 调用中遇到问题,只需查看 QuickNode 控制面板中的日志,以快速识别和解决问题。有关日志历史限制的更多信息,请访问我们的定价页面。

现在我们准备通过以下命令克隆 Metaplex 仓库:

git clone https://github.com/metaplex-foundation/deprecated-clis

然后要从 solana-nft-project 目录安装依赖项,请运行以下命令:

yarn install --cwd deprecated-clis

这应该安装一切正常。为了测试,我们可以通过运行以下命令来检查 Metaplex 的版本:

ts-node deprecated-clis/src/candy-machine-v2-cli.ts --version

你的输出应为:

0.0.2

设置新的钱包

现在,我们准备开始设置 Solana CLI 以进行开发网络测试。我们首先需要为特定的开发网络测试创建一个新钱包,使用以下命令:

solana-keygen new --outfile ./.config/solana/devnet-wallet.json

我们可以跳过密码(按 Enter),因为我们只会在开发网络上使用这个钱包,所以资金并不重要。我们可以确认我们刚生成的钱包是 Solana CLI 将使用的钱包,通过运行:

solana config set --keypair ./.config/solana/devnet-wallet.json

在继续之前,我们需要确保我们的 Solana CLI 已连接到一个节点。我们将通过 QuickNode 来完成这一点。

使用 QuickNode 设置 Solana 节点

要注册一个免费的 QuickNode 账户,请导航到 Quicknode.com/signup。在本教程中,我们希望在 Solana 开发网络下启动我们的节点。

新的 Solana 开发网络终端

在设置好 Solana 开发网络的终端后,你现在可以运行此命令,用你复制的 HTTP URL 替换 YOUR_QUICKNODE_URL

solana config set --url YOUR_QUICKNODE_URL

现在要为你的钱包充资,你可以运行命令:

solana airdrop 1

如果命令成功,你应该能够在终端中运行 solana balance 并看到 1 SOL 在那儿。

配置 Candy Machine V2

随着我们的 Solana CLI 配置完成,我们现在需要为我们的 CMv2 创建配置。从 v1 到 v2 的变化之一是我们如何配置 candy machine。它读取一个 JSON 文件,你可以根据自己的需要调整。你可以在 Metaplex 文档中找到所有选项的完整列表,见这里

我们将使用他们推荐的最小设置配置。要跟着操作,请确保你在 solana-nft-project 目录中,并创建一个 config.json 文件并将其放置在 ./dev/,使用以下命令:

mkdir dev
touch ./dev/config.json

接下来,使用你选择的文本编辑器打开该文件,并粘贴以下内容:

{
    "price": 1.0,
    "number": 10,
    "gatekeeper": null,
    "solTreasuryAccount": "<YOUR WALLET ADDRESS>",
    "splTokenAccount": null,
    "splToken": null,
    "goLiveDate": "25 Dec 2021 00:00:00 GMT",
    "endSettings": null,
    "whitelistMintSettings": null,
    "hiddenSettings": null,
    "storage": "arweave-sol",
    "ipfsInfuraProjectId": null,
    "ipfsInfuraSecret": null,
    "awsS3Bucket": null,
    "noRetainAuthority": false,
    "noMutable": false
}

<YOUR WALLET ADDRESS> 替换为你之前设置的密钥对地址。

注意:你可以在终端中运行 solana address 来获取你的地址。

完成这些步骤后,你应该准备好进行铸造了!但是,一个 NFT 项目没有一些 .jpegs 会怎么样呢?我们可以准备这个。

准备资产

如果你之前使用过 CMv1 或 Metaplex,这个过程会很熟悉。我们需要创建一个 .PNG 文件和 .JSON 文件的一对一映射。文件应该按编号命名,因此 0.png 对应 0.json。编号应从 0 开始并顺序增加,永远不要跳过数字。

Metaplex 有一个示例资产集,我们可以下载并处理以保持一致。你可以编辑 json 以包含你想要的任意值,只要它符合URI json 架构

注意: CM2 使用的是较旧的标准,要求每个 .json 文件中都有创作者份额。

下载示例集并将其存储在可以轻松从命令行引用的位置。我们将其放在 ./dev 目录下。这样,我们就可以通过路径 ./dev/assets 引用所有的 png 和 json 文件。

我们需要做的最后一件事是更新 json 文件中的地址值。该字段确定版税的分配位置。默认情况下,json 文件中使用的地址是 "6j4nNrozTJkk1zatiXHezSLZArnRUq3WkGKHACThXGpZ"。我们将更新所有这些地址为我们之前在 Solana CLI 中设置的地址。

为此,请在终端中运行以下 bash 脚本:

for json_file in ./dev/assets/*.json;
do
  address=YOUR_SOLANA_ADDRESS
  sed -i '' "s/6j4nNrozTJkk1zatiXHezSLZArnRUq3WkGKHACThXGpZ/$address/g" $json_file
done

这段代码将循环遍历我们资产目录中所有以 .json 结尾的文件。然后,它将你的 Solana 地址存储在一个变量中,address=YOUR_SOLANA_ADDRESS。最后,它使用 sed 命令行工具执行“查找和替换”操作。它遍历每个文件并用我们从 CLI 获取的地址替换 "6j4nNrozTJkk1zatiXHezSLZArnRUq3WkGKHACThXGpZ"。

注意: 如果你在 Mac 设备上,开头的空引号对是必需的。如果你在 Linux 机器上使用,可以省略 sed 命令中的初始空引号。

创建 Candy Machine

在加载所有资产并配置程序之后,我们现在可以创建一个 Candy Machine 并将其上传到 Solana 开发网络。

为此,我们将运行以下命令:

ts-node deprecated-clis/src/candy-machine-v2-cli.ts upload \
   -e devnet \
   -k ./.config/solana/devnet-wallet.json \
   -cp ./dev/config.json \
   -c example \
   --rpc-url <YOUR_QUICKNODE_URL> \
   ./dev/assets

注意: 你可能会看到 signatureUnsubscribe error: Invalid subscription id 错误。这不会影响你的上传,你不应该在看到这些错误时停止进程。如果由于某种原因你的上传在完成之前停止,你可以重复运行此命令,直到上传成功。

从该输出中保存 CMv2 的公钥。如果你忘记此步骤,你随时可以在运行命令的地方找到它,路径为 /.cache/devnet-example.json

运行该命令后,你应该会看到资产处理的过程。在完成后,我们需要验证一切是否成功上传。我们可以使用 verify_upload 命令来完成这个:

ts-node deprecated-clis/src/candy-machine-v2-cli.ts verify_upload \
-e devnet \
-k ./.config/solana/devnet-wallet.json \
-c example

你的输出应与下面的图片相似,但应替换为你的特定地址:

Candy Machine 验证上传

一旦成功运行,我们就可以开始启动前端,以便将我们的页面部署到互联网,并给予他人铸造 NFT 的能力。

设置网站

为了尽可能简单的设置,我们将使用 Metaplex 提供的前端。你将前往克隆的 Metaplex 存储库,在我们的例子中是 ./metaplex/js/packages/candy-machine-ui。在你选择的代码编辑器中打开此文件夹。

将文件 .env.example 重命名为 .env。更改文件名后,你可以将其中的值更改为以下内容:

REACT_APP_CANDY_MACHINE_ID=<YOUR_CANDY_MACHINE_PUBKEY>
REACT_APP_SOLANA_NETWORK=devnet
REACT_APP_SOLANA_RPC_HOST=<YOUR_QUICKNODE_DEVNET_ENDPOINT>

将所有这些信息填入后,你现在可以保存该文件。从 candy-machine-ui 文件夹中,运行命令:

yarn install
yarn start

这将在 localhost:3000 上打开一个浏览器,你可以连接你的钱包并具有铸造 NFT 的能力。在继续之前,请确认你的 Phantom Wallet 设置为 devnet 而不是 mainnet

你可以访问 https://solfaucet.com/ ,为钱包空投 SOL。确保在“Solana 账户地址”字段中使用你的 Phantom 钱包地址。

如果成功,你应会看到如下网站:

如果你看到“铸造失败”的错误,可能是你余额不足。添加资金后请再试。根据上面的截图,你可以看到我们已经铸造了原始的 10 个中的 2 个。在购买后,你可以在钱包中查看 NFT。Phantom 可能会花一些时间来渲染你钱包中的 NFT。我们的 NFT 看起来是这样的:

使用 Candy Machine v2 铸造的示例 NFT

结论

恭喜你成功生成和铸造了自己的 CMv2 NFT 项目!我们已经涵盖了 Candy Machine 的内容以及如何配置它,并部署了我们自己的 NFT 项目。

订阅我们的通讯以获取更多文章和指南。如果你有任何反馈,欢迎通过Twitter与我们联系。你总是可以在我们的Discord社区服务器上与我们交流,这里聚集了一些你见过的最酷的开发者 :)

  • 原文链接: quicknode.com/guides/sol...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。