什么是系统帐户与令牌帐户?
What is a System vs. Token Account?
这里是 Solana 菜鸟。
我试图更好地理解 PDA 和 ATA,我首先想了解的一件事是系统帐户和令牌帐户之间的区别。
每种类型的帐户持有哪些类型的数据?
一个是从另一个派生的吗?
一个程序可以关联两种类型的帐户吗?
系统账户是由Solana系统程序创建的。通常这些在概念上通常被认为是 wallet
。
令牌帐户是令牌程序“拥有”的帐户。这使 Token 程序能够更新该帐户中的信息,而如果其他程序试图修改数据,则执行将失败。
哪些数据(如果有)在这些程序拥有的帐户之一中,它由拥有它的程序定义。
其他说明:
- 程序本身是 BPFLoader 程序拥有的帐户
您可以从命令行中发现什么是什么:
solana account ...
(有关更多选项,请参阅 solana account --help
)
例如,在 devnet 中的程序帐户上:
Public Key: SampGgdt3wioaoMZhC6LTSbg4pnuvQnSfJpDYeuXQBv
Balance: 0.00114144 SOL
Owner: BPFLoaderUpgradeab1e11111111111111111111111
Executable: true
Rent Epoch: 213
Length: 36 (0x24) bytes
0000: 02 00 00 00 a4 6d da 51 48 e4 d4 48 b1 19 5e 80 .....m.QH..H..^.
0010: a7 ff 85 8a c9 06 49 f3 63 d8 5f 7f 8b 32 6a 4d ......I.c._..2jM
0020: 9a a6 00 d6 ....
所有者是 BPF 程序加载器
而我的 devnet 默认钱包:
solana account .config/solana/id.json
Public Key: 5VhBw95K4NYEgQDgEA7335znvVgwUifMPVy6cqFVq5rZ
Balance: 29.355201517 SOL
Owner: 11111111111111111111111111111111
Executable: false
Rent Epoch: 270
所有者是系统程序
这里是 Solana 菜鸟。
我试图更好地理解 PDA 和 ATA,我首先想了解的一件事是系统帐户和令牌帐户之间的区别。
每种类型的帐户持有哪些类型的数据? 一个是从另一个派生的吗? 一个程序可以关联两种类型的帐户吗?
系统账户是由Solana系统程序创建的。通常这些在概念上通常被认为是 wallet
。
令牌帐户是令牌程序“拥有”的帐户。这使 Token 程序能够更新该帐户中的信息,而如果其他程序试图修改数据,则执行将失败。
哪些数据(如果有)在这些程序拥有的帐户之一中,它由拥有它的程序定义。
其他说明:
- 程序本身是 BPFLoader 程序拥有的帐户
您可以从命令行中发现什么是什么:
solana account ...
(有关更多选项,请参阅 solana account --help
)
例如,在 devnet 中的程序帐户上:
Public Key: SampGgdt3wioaoMZhC6LTSbg4pnuvQnSfJpDYeuXQBv
Balance: 0.00114144 SOL
Owner: BPFLoaderUpgradeab1e11111111111111111111111
Executable: true
Rent Epoch: 213
Length: 36 (0x24) bytes
0000: 02 00 00 00 a4 6d da 51 48 e4 d4 48 b1 19 5e 80 .....m.QH..H..^.
0010: a7 ff 85 8a c9 06 49 f3 63 d8 5f 7f 8b 32 6a 4d ......I.c._..2jM
0020: 9a a6 00 d6 ....
所有者是 BPF 程序加载器
而我的 devnet 默认钱包:
solana account .config/solana/id.json
Public Key: 5VhBw95K4NYEgQDgEA7335znvVgwUifMPVy6cqFVq5rZ
Balance: 29.355201517 SOL
Owner: 11111111111111111111111111111111
Executable: false
Rent Epoch: 270
所有者是系统程序