| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> Solana Account 详解 -> 正文阅读 |
|
[区块链]Solana Account 详解 |
1、Account概述在Solana的世界里,一切都是Account,每个Account都有一个独一无二的地址,除了地址外,每个Account都有以下属性: a.?lamports 在Solana的世界里,Account不是免费的,因为Account会占用一定的存储空间,因此,为了持有一个Account,你需要支付一定的SOL币给这个账户,Solana区块链没过一段时间,都会扣除一定费用,一旦费用不足,这个Account所包含的所有数据都会被清除。lamports这个属性就代表着当前的Account还剩余的SOL数量。 b. rent_epoch 这个属性和lamports相关,表示到什么时候lamports会不足 c.?owner 每个account都需要保存它的owner账户,owner必须是一个program(其实也是个Account,下面会讲到),只有owner可以修改这个Account的数据 d.?executable 是否可执行,只有Program Account才是可执行的,Data Account不可执行 e.?data 这个Account存储的内容,可以是一段代码,也可以是用户的个人数据。 在Solana中,Account分为两种:Program Account和Data Account。Program Account主要负责逻辑的处理,它不负责存储最终结果,而Data Account只存储最终结果,无法执行逻辑。 2、Program AccountProgram Account也叫程序账户,所有部署在Solana上的程序,本质上都是一个Account,只是这个Account的executable属性是true,data属性存储了这个程序的代码。 Program Account也分为两种,一种是Native?Program Account,一种是Custom?Program Account。Native?Program Account就是Solana官方开发的,内嵌在区块链中的程序,比如BPF Upgradeable Loader程序,这个程序是一切Custom?Program Account的owner,它的作用是部署一个Custom?Program到Solana链,我们可以在Solana explorer上看到这个程序的信息: 这个?Native?Program Account的地址是BPFLoaderUpgradeab1e11111111111111111111111,是一个官方写死的地址,它的executable属性为true。 接下来我们看看Custom?Program Account,以Serum Dex Program v3为例: ?这个Custom?Program Account的地址9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin 这是一个用户自己生成的地址,它的Executable是true,而且有upgrade 权限,可以实时更新代码。它的data属性保存了一个地址DTxcpNApaMLNfYgwQ99PmpCm8rjS7o1q2YdfzYsrYohB,这个地址实际上是个Data Account,用来存放实际的代码。 3、Data AccountData Account是用来存放数据的,它的executable是false,它的owner是一个Program Account的地址,它的data会存放业务逻辑执行完成后的结果。下面以Serum Dex Program v3 Data 为例: 这个Data Account的地址是39L6JVBeszmpZtW8u9SdohagfQCaatZYDoEAqTkJmdZP,它的executable是false,它的owner(Assigned Program Id)指向了?Serum Dex Program v3的程序,目前分配了3228bytes的空间用来存储数据。 下面这张图可以用来概述Data Account和Program Account之间的关系: ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:19:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |