Solana 中的账户类型

  • nilliol
  • 更新于 2024-07-31 17:22
  • 阅读 675

总的来说Solana的账户类型可以分为三种类型:程序账户程序账户就是可以运行代码的账户,其中并不存储数据,可以看作windows上的exe文件,相当于一个只读的存在,仅负责执行逻辑。最明显的特征就是executable值为true。数据账户数据账户就是存储数据的账户

总的来说 Solana 的账户类型可以分为三种类型:

  • 程序账户

    • 程序账户就是可以运行代码的账户,其中并不存储数据,可以看作 windows 上的 exe 文件,相当于一个只读的存在,仅负责执行逻辑。最明显的特征就是executable值为true
  • 数据账户

    • 数据账户就是存储数据的账户,但其并不能运行代码,可以通过可执行账户修改其中的数据。最明显的特征就是executable值为false
  • 原生账户

    • Solana 中包含少量的原生程序,既属于validator实现的一部分,也为网络提供各种核心功能。

Solana在账户的属性中存在一些固定的属性:data(存放数据或代码)、executablelamports(SOL余额)、owner(账户的所有者)

此外,还有其它类型的账户,但都可以归类为上述的账户类型:

  • 钱包账户

    • 主要就是用户使用的账户,对于每一个拥有公私钥的账户,都可以认为是一个钱包账户(感觉本质上是一个数据账户,但不存储任何数据),用户通过私钥对消息进行签名,表示这个账户(公钥地址)的所有权,来进行操作。
  • 系统账户

    • 是由 Solana 系统程序管理的账户,用于执行网络的基础操作(创建账户、转账等操作)。由于每个新账户都是由系统账户创建的(系统账户执行基础操作),所以 Owner 都是系统账户
    • 用户通过钱包账户向系统程序发送交易请求,就可以创建新的系统账户
  • 代币账户

    • Solana中除了SOL这个原生代笔是所有账户都可以直接持有,如果用户想持有一个SPL代笔(用户发行的其他代币),就需要一个代币账户,每一种代币都需要一个代币账户(代币账户中存在mint表示这个代币账户保存的是哪个代币的数量)(所以这个应该也算得上是数据账户、PDA账户)<br />
  • 程序衍生地址(PDA

    • Solana中,由于程序账户本身不存储任何数据,只执行逻辑,所以对于需要加载的数据,就存放在PDA中,PDA可以被程序账户通过seed(由程序账户设置)和程序账户的programeid寻找到对应的PDA地址,然后提取涉及的数据。

参考文章

Solana秘籍

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
nilliol
nilliol
0xbe3e...29A9
web3 的学习者,寻找实习机会中。 博客地址:https://llwh2333.github.io