【发布时间】:2022-06-14 23:13:56
【问题描述】:
我希望在 Solana 上进行开发,但是...我喜欢了解我正在做什么。我查看了文档,我无法理解solana-keygen 的工作原理。我已经非常努力地从同一个助记符复制同一个公共地址,但似乎没有任何效果。有谁知道地址是如何生成的?如果你有你的私钥,你如何在不使用 @solana/web3 库的情况下获取公共密钥。
import * as Bip39 from 'bip39'
import { Keypair } from "@solana/web3.js";
const seed: Buffer Bip39.mnemonicToSeedSync("title spell imitate observe kidney ready interest border inject quiz misery motor")
const derivedSeed = ed25519.derivePath("m/44'/501'/0'/0'", seed.toString('hex')).key;
const keyPair = Keypair.fromSeed(derivedSeed)
console.log(keyPair.publicKey.toString())
这段代码运行良好,所以如果我转到https://solflare.com/access 并尝试插入mnemonic,我可以看到地址。
但是,事实上,solana-keygen 用那个助记符返回这个地址:nsaayLiawKPiui9fWYCpRdYkdKeqj2fNn9u8LjauEkn
这是一个示例钱包。随意尝试这个参数。
请不要为这个钱包充值。
怎么可能得到solana-keygen给我的相同地址?
我已尝试在 ed25519, pbkd2, 上传递所有可能的参数,但似乎我在此过程中遗漏了一些东西。
【问题讨论】:
-
@FrankC。是的,但是我仍然没有弄清楚如何以绝对的方式做到这一点,例如
mnemonic → pbkd2 → ed25519 → ... -
查看
solana-keygen new --help