本文主要参考solana秘籍上的知识,学习和了解solana基础知识。万丈高楼平地起,通过学习solana基础知识,可以帮助你打好夯实地基,在以后的solana开发的日子中,能够取得更高的成就。安装命令行工具版本solana--version升级solanaupdate账户so
本文主要参考solana秘籍上的知识,学习和了解solana基础知识。万丈高楼平地起,通过学习solana基础知识,可以帮助你打好夯实地基,在以后的solana开发的日子中,能够取得更高的成就。
版本
solana --version
升级
solana update
solana中账户模型是非常重要的概念,账户是用来存储状态的,账户是Solana开发中非常重要的概念。
账户模型
在Solana中有三类账户:
数据账户,用来存储数据
程序账户,用来存储可执行程序
原生账户,指Solana上的原生程序
每个账户都有一个地址,以及一个所有者。下面详细列出一个账户存储的完整字段列表:
lamports
: 这个账户拥有的lamport数量
owner
: 这个账户的所有者程序
executable
: 这个账户是否可以处理指令
data
: 这个账户存储的数据字节码
rent_epoch
: 下一个需要付租金的epoch
程序账户不存储状态
租金
租金可以通过关闭账户的方式来取回。lamport会被返还你的钱包。
任何开发者都可以在Solana链上编写以及部署程序。Solana智能合约是所有链上活动的基础。Solana常用的开发流水线是序列化和反序列化过程流水线化。
Solna的经常测试环境为:
集群环境 | rpc连接URL |
---|---|
Mainnet-beta | https\://api.mainnet-beta.solana.com |
Testnet | https\://api.testnet.solana.com |
Devnet | https\://api.devnet.solana.com |
下载anchor
cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
avm install latest
avm use latest
avm --version
使用avm list
命令查看anchor-cl
i可用版本
若程序需要指定版本,请在Anchor.toml
使用
[toolchain]
anchor_version = "0.29.0"
部署程序
开发者可以使用命令行部署程序:
solana program deploy <PROGRAM_FILEPATH>
客户端可以通过向一个集群提交交易来调用程序。一个交易可以包含多个指令,每个指令针对不同的程序。交易提交时,Solana运行库会自动的按顺序处理这些指令。如果某一个指令中的任何一部分失败,整个交易就会失败。
指令是solana上最基本的操作单元
每个指令都包含:
program_id
: 所针对的程序id
accounts
: 需要读或写的全部账户组成的数组
instruction_data
: 向指定程序所传输的数据的字节码
其中,任何交易,只要针对一个账户扣除SOL,或者修改其中的数据,都需要这个账户拥有者签名。在交易中,会被修改的账户都会被标记为writable(可写)。当交易的付费者支付了足够的租金 和交易费用时,一个账户可以被存入SOL而不用这个账户拥有者许可。
Solana网络收取两种费用:
交易费只与交易所需的签名数量有关。
PDA 是程序派生账户(Program Derived Account)的缩写,是 Solana 区块链上的一种特殊账户类型。简单来说,PDA 是由 Solana 程序动态创建的账户。
PDA 具有以下特点:
通过使用 PDA,程序可以灵活地创建和管理账户来存储和操作数据,而无需预先创建大量的账户。这样可以提高效率和灵活性,并为开发者提供更多创新的空间。
《Solana秘籍》https://solanacookbook.com/zh/
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!