Solana-solidity到solana 开发第一讲
说明:本文主要是讲解Solana的一些基本概念,对于详细的编程还有更多细节需要了解和学习,往后的课程可以给大家讲解更多
solana 简介
solana 是一个高性能的,无许可的区块链,其中共识算法采用POH(历史证明),POH很好的解决了单个可信赖时间源的分布式网络中的时间问题,就是通过时间搓来验证真实性,POH算法是采用BTC使用的Has256算法在本地生成时间戳,Solana的高频交易可以让金融的高频交易在区块链中成为可能。
Solana的数据排序结构按时间顺序在区块链上链接消息。这提供了有关区块链中唯一时间以及历史记录中每个消息时间的相对验证的加密证明
solana 账户模型
作为一个开发者,最先要了解的就是账户模型
以太坊账户模型
大家都知道以太坊账户模型是分两种,一种是主网币,一种是合约币,主网币里面的的account 就有一个balance字断,用来记录用户的ETH 的数量,如果某个地址拥有其他的token ,是在合约里面给这个地址存了个mapping,用来记录这个用户token 的数量。因此用户拥有的ERC20 token其实记账是记录在合约里面,以太坊合约具有存储功能,是因为合约用一个世纪状态永远存储在区块里面。
solana 账户模型
solana 的账户模型不一样的地方在于,solana 账户除了可以存储本币sol以外,还增加了一个data字段,这个data字段
具体可以参考[[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YAjbMBle-1621005767581)(https://github.com/jstarry/solana-wiki/blob/main/content/zh-cn/docs/Account%20Model/_index.md)]
先看一下账户的字段
字段 | 描述 |
---|---|
lamports | The number of lamports owned by this account. |
owner | The program owner of this account. |
executable | The program owner of this account. |
data | The raw data byte array stored by this account. |
rent_epoch | The next epoch that this account will owe rent. |
详细描述一下
- lamports :这个就是和以太坊的balance一样,描述这个账号有多少个SOL 可以使用
- owner:owner这个字段保证了用户对账户的决定拥有权利,如果某一个地址是某一个account的owner,那么那个地址就可以对这个account资产进行转移。所以solana的合约token其实就是solana程序会帮忙生成一个account,然后把owner赋予给你。
- executable,这个表示用户的状态是不是可执行的状态。在solana的账户体系里面的data字断是表示存储,或者可执行。可执行的data是帐户数据专门用于不可变字节代码该字节代码用于处理