本文介绍了如何使用 Solana CLI 中的 grind 工具生成自定义的 Solana 钱包地址,详细说明了命令的使用方法和相关选项,并提供了一个视频教程的链接。
你是否注意到某些 Solana 账户地址具有特定的前缀或后缀(例如,DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ)?
这不可能只是随机的,对吧?没错!Solana 的 CLI 具有强大的工具,可以生成自定义的 Wallet 地址。在本指南中,你将使用 Solana CLI 和 grind 工具创建你自己的自定义钱包地址。
Prefer a video walkthrough? Follow along with Sahil and learn how to create a custom vanity address on Solana.
订阅我们的 YouTube 频道以获取更多视频!订阅
在终端中创建一个新的项目目录:
mkdir custom-wallet
cd custom-wallet
检查你的 Solana CLI 工具是否已安装并且是最新的。在终端中输入:
solana --version
要检查并安装更新,在终端中输入:
solana-install update
你应该会看到类似这样的内容:
让我们开始吧。
Solana CLI 有一个用于创建新密钥对的原生命令,Solana-Keygen。Solana-Keygen 命令遵循以下格式:
solana-keygen [OPTIONS] <SUBCOMMAND>
选项和子命令都在帮助菜单中列出。你可以通过在终端中输入 help 子命令来检查它们以及 Solana-Keygen 的所有功能:
solana-keygen --help
你应该会看到一个帮助菜单,内容大致如下:
你应该会看到一个子命令,grind。我们将使用它来生成你的自定义钱包。此子命令实际上会生成密钥,直到找到符合你的搜索标准的密钥。让我们来测试一下!
solana-keygen grind --starts-with a23:1
你应该会在终端中看到如下响应:
custom-wallet % solana-keygen grind --starts-with a23:1
Searching with 10 threads for:
1 pubkey that starts with 'a23' and ends with ''
Wrote keypair to a23...mgr.json
太棒了!你刚刚创建了你的第一个个性化钱包地址,它以 1 个实例(由 ":1" 设置)“a23”开头。你应该会在项目文件夹中看到一个 .json 文件,里面包含新地址的私钥。可以使用 Solana JS SDK 导入到你的 Solana 项目中,方法如下:
const keypair = Keypair.fromSecretKey(Uint8Array.from(ARRAY_IN_JSON FILE));
在查看 solana-keygen 的其他功能之前,让我们再生成一个以 123456789 开头的钱包。在你的终端中输入:
solana-keygen grind --starts-with 123456789:1
你的 CLI 应该会每隔几秒显示一次更新,表示搜索仍在进行,并且找到了 0 个匹配项:
custom-wallet % solana-keygen grind --starts-with 123456789:1
Searching with 10 threads for:
1 pubkey that starts with '123456789' and ends with ''
Searched 1000000 keypairs in 1s. 0 matches found.
Searched 2000000 keypairs in 3s. 0 matches found.
Searched 3000000 keypairs in 5s. 0 matches found.
等等。
按 CTRL+C 取消你的搜索,否则你可能会等上 非常 长的时间。这很好地展示了 grind 子命令的工作原理。它在搜索一个密钥对,检查其是否符合你的标准,并在标准满足之前尝试再次搜索。这个例子显示出,找到一个包含九个用户定义变量的地址显著比找到三个位更加困难。也就是说,通常只会生成开头和结尾各定义 2-5 个字符的地址。超过这个数量,你将会消耗大量计算资源,并且需要等待很长时间。
现在让我们探索一下 solana-keygen 的其他一些功能。在你的终端中输入:
solana-keygen grind --help
请记下上面的命令,因为如果你忘记如何使用该命令,它总是一个很好的参考点!
你会看到三个部分:用法、标志和选项(老实说,我认为标志只是另一种类型的选项,但 Solana CLI 将它们分开):
用法 显示我们的命令格式。我们总是从 solana-keygen grind 开始,然后是任何 flags 和 options:solana-keygen grind [FLAGS] [OPTIONS] [你的搜索查询]
--starts-with PREFIX:COUNT,PREFIX 是你要搜索的自定义前缀,COUNT 是要生成的密钥对数量(例如,--starts-with quick:2 将生成两个以 quick 开头的密钥对)。
--ends-with SUFFIX:COUNT,SUFFIX 是你要搜索的自定义后缀,COUNT 是要生成的密钥对数量(例如,--ends-with node:1 将生成一个以 node 结尾的密钥对)。
--starts-and-ends-with PREFIX:SUFFIX:COUNT,PREFIX 是你要搜索的自定义前缀,SUFFIX 是你要搜索的自定义后缀,COUNT 是要生成的密钥对数量(例如,--starts-and-ends-with quick:node:3 将生成三个以 quick 开头并以 node 结尾的密钥对)。
注意: PREFIX 和 SUFFIX 必须为 Base58 类型(A-Z, a-z, 0-9),但容易混淆的字符(零(0),大写字母 i(I)和 o(O),小写字母 l(l)除外)。
其他选项
--ignore-case 将使搜索不区分大小写(默认区分大小写)
--use-mnemonic 默认情况下,grind 函数保存私钥,而不是助记密钥短语。此标志将使用助记密钥短语生成。预计在此模式下会显著减慢速度。
--no-outfile (必须与 --use-mnemonic 一起使用)。仅打印种子短语和公钥。不要输出密钥对文件。
--no-bip39-passphrase(必须与 --use-mnemonic 一起使用)。不提示输入 BIP39 密语(此密语提高了恢复种子短语的安全性,而不是存储为不安全的明文的密钥对文件本身)
--word-count (必须与 --use-mnemonic 一起使用)。指定生成的种子短语中的单词数量(默认:12)
--language <LANGUAGE>
(必须与 --use-mnemonic 一起使用)指定助记短语的语言(英语,简体中文,繁体中文,日语,西班牙语,韩语,法语,意大利语)
--num-threads <NUMBER>
指定生成线程数量 [默认:10]
-C, --config <FILEPATH>
要使用的配置文件
这里有很多内容,所以如果一切都不清楚也不用担心。最好的学习方式是自己尝试一下!
是时候来测试一下了!如果需要,可以查看上面的帮助。生成一个以你名字的首字母开头并以你姓氏的首字母结尾的地址(不区分大小写)。创建一个没有 .json 输出或 bip39 密码短语的 24 个单词的日语助记词。
尝试之后,可以看看我们是如何做到的:
solana-keygen grind --starts-and-ends-with A:M:1 --ignore-case --use-mnemonic --word-count 24 --language japanese --no-outfile --no-bip39-passphrase
你做得怎么样?如果一切顺利,你应该会在终端中看到 “Found matching key” 的响应,里面包含你的钱包地址和种子短语!非常酷,对吧?
如果你想,可以使用以下命令根据你的种子短语进行反向查找:
solana-keygen pubkey prompt://
我建议你尝试每个选项,以了解它们如何工作,然后创建你梦想的地址!
请记住,无论你如何创建新的种子或钱包,请务必遵循钱包安全最佳实践。我们发布了一份 指南:关于加密钱包及其安全性的简介 来帮助你。
你的个性化钱包只是表面现象?查看我们的 指南:如何通过 Solana 命名服务创建 .sol 域名,以创建一个自定义的 .sol 域名。
创建了一个酷的钱包?在 Discord 或 Twitter 上给我们发消息,分享一下!
如果你有任何反馈或对新主题的请求,请 告诉我们。我们期待听到你的声音。
- 原文链接: quicknode.com/guides/sol...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!