使用Anchor将程序部署至Solana Devnet失败,遇连接拒绝错误的解决方案咨询
解决Anchor部署至Solana Devnet时的连接拒绝错误
从你给出的错误信息来看,核心问题是Anchor部署时默认尝试连接本地Solana节点(127.0.0.1:8899),但这个节点并没有运行,而且你的Solana全局配置没有被Anchor正确读取到。下面是一步步的解决办法:
第一步:确认你的Solana全局配置是否生效
先运行这个命令检查当前的集群配置:solana config get输出里的
rpc-url应该显示为https://api.devnet.solana.com。如果不是,重新执行你之前的命令并确保成功:solana config set --url https://api.devnet.solana.com第二步:强制Anchor使用Devnet RPC进行部署
有时候Anchor不会自动读取Solana的全局配置,这时候可以在deploy命令里直接指定集群参数,绕过本地节点:anchor deploy --provider.cluster devnet这个命令会直接连接Solana Devnet的公共RPC节点,不需要依赖本地运行的节点。
第三步:修改Anchor项目的本地配置(一劳永逸)
打开你项目根目录下的Anchor.toml文件,找到[provider]区块,把url字段从http://127.0.0.1:8899改成https://api.devnet.solana.com,修改后的配置大概是这样:[provider] cluster = "devnet" url = "https://api.devnet.solana.com" wallet = "~/.config/solana/id.json"保存之后,以后直接运行
anchor deploy就会默认连接Devnet了。额外排查:如果你之前运行过本地节点
如果你之前启动过本地Solana测试节点但现在已经停止,也会出现连接拒绝的错误。不过既然你的目标是部署到Devnet,上面的方法已经足够解决问题,不需要再启动本地节点。
内容的提问来源于stack exchange,提问作者Noldorin Zhang
相关产品推荐
相关产品推荐

