Solana 什么是好的零值地址或默认地址?

Solana what is a good zero value address or default address?

我写了一个Sol程序,但是在初始化的时候需要填充一些默认地址

问题1:我可以使用Solana 文档中的烧录地址:1nc1nerator1111111111111111111111111111111 吗?

问题 2:为什么这个 burn_address.toBase() 只有 43 个字符,但是 address.toBase() 来自 web3.Keypair.generate() https://solana-labs.github.io/solana-web3.js/classes/Keypair.html 有 44 个字符 ?

例如DyVj5YpgZT51NKJWJkjXbn3UHxKRdS9G1zScSK7NZQEk 有 44 个字符

问题 3:如果我选择了默认地址,例如Solana 的刻录地址,如何从 fromBase58("1nc1nerator11111111111111111111111111111111") 之类的字符串创建地址? 使用 fromSeed(seed: Uint8Array) ?

使用一组 Pubkey 创建新帐户后,它们的默认 base58 值为 11111111111111111111111111111111...

这里好像有几个问题!

Question 1: Can I use the Solana burn address: 1nc1nerator11111111111111111111111111111111 from the Solana docs ?

焚化炉地址非常具体,用于排出 SOL 以将其完全从流通中移除。您可以随心所欲地使用它,但除非您使用 SOL,否则它可能不会完全按照您的意愿运行。

Question 2: Why is this a burn_address.toBase() having only 43 characters, but a randomly generated address.toBase() from web3.Keypair.generate() https://solana-labs.github.io/solana-web3.js/classes/Keypair.html has 44 characters ?

您可以将地址视为以 base58 表示的 32 字节整数。由于base58不像base16或base64那样均分32字节,我们可以取不同的字符数来表示。 https://learnmeabitcoin.com/technical/base58

对此进行了很好的细分

Question 3: If I have chosen a default address, e.g. the Solana's burn address, how can I make an address from a string like fromBase58("1nc1nerator11111111111111111111111111111111") ? Using fromSeed(seed: Uint8Array) ?

如果您要从 base58 字符串转换,您只需执行 new PublicKey("1nc1nerator11111111111111111111111111111111"),构造函数将自动为您从 base58 解码。请参阅 https://github.com/solana-labs/solana/blob/6909a79b6fd50f63e2968d4760f864b377e4c802/web3.js/src/publickey.ts#L50

处的代码