Jacky Gu

Solana开发笔记: 如何部署一个ProgramId中带有项目特征字符的Solana程序

01 Jan 2025 Share to

如何部署一个ProgramId中带有项目特征字符的Solana程序

如果一个Solana程序的ProgramId中带有项目特征字符,比如RAYhkQxShXjqf4sPrGfmBLLeqGy8Us5eS8dwbPLczKn,开头RAY代表名字为RAY的一个项目,这是一件很酷的事情,对项目的品牌很有帮助,那么该怎么实现呢?

第一步:生成ProgramId的钥匙对Keypair文件

以上面以RAY开头为例,执行以下命令:

solana-keygen grind --starts-with RAY:1

几秒钟后,会出现提示:

Searching with 16 threads for:
        2 pubkeys that start with 'RAY' and end with ''
Searched 1000000 keypairs in 2s. 0 matches found.
Wrote keypair to RAYhkQxShXjqf4sPrGfmBLLeqGy8Us5eS8dwbPLczKn.json

并在执行上述命令的目录下出现一个文件RAYhkQxShXjqf4sPrGfmBLLeqGy8Us5eS8dwbPLczKn.json

第二步:在Solana网络上部署该ProgramId中带有项目特征字符的Solana程序

在Anchor工程中,找到/target/deploy/xxxx-keypair.json文件(xxxx是你的程序名字),内容是一个数组,也就是当前Solana程序的ProgramId的私钥。

现在将RAYhkQxShXjqf4sPrGfmBLLeqGy8Us5eS8dwbPLczKn.json文件中的内容复制到xxxx-keypair.json文件中。

lib.rs程序入口文件中,把原来的declare_id!("OldProgramID")替换为declare_id!("RAYhkQxShXjqf4sPrGfmBLLeqGy8Us5eS8dwbPLczKn")

Anchor.toml文件中,把原来的[programs.localnet][programs.devnet]中的原来的ProgramID都替换为RAYhkQxShXjqf4sPrGfmBLLeqGy8Us5eS8dwbPLczKn

运行anchor buidl && anchor deploy,新的ProgramId生效了。