“solana 部署”和“solana 程序部署”之间的区别

Car*_*ans 7 solana

我目前正在学习 Solana 的 Rust 开发。我遵循了 hello-world 教程,想知道运行solana deploysolana program deploy.

我使用 Solana Devnet 集群对两者进行了测试。

运行结果solana deploy

运行结果solana program deploy

我的直觉告诉我,一个solana deploy是创建一个简单的 Solana 帐户,另一个是创建一个程序帐户。如果无法调用交易,那么使用程序创建简单的 Solana 账户还有什么意义呢?

Jon*_*n C 16

它们都用于部署程序,但solana program deploy通常是推荐的路线。

solana deploy是较旧的形式,使用 BPF Loader 2 来部署程序。以这种方式部署的程序永远不可变。SPL Token 程序使用此加载程序:https://explorer.solana.com/address/TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

solana program deploy是较新的形式,并使用可升级的 BPF 加载器来部署程序。如果设置了升级权限,则使用此加载程序的程序可以选择升级。否则,如果使用该标志部署,它们也可以是不可变的--final,与旧的solana deploy. SPL 权益池程序使用此加载程序:https://explorer.solana.com/address/SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy