如何通过web3.js连接Solana自定义集群
解决方案
你报错的核心原因是用错了clusterApiUrl方法:这个方法的作用是根据传入的官方集群标识,返回Solana官方维护的公共集群RPC地址,本身不支持解析自定义RPC链接,它的入参仅支持devnet/testnet/mainnet-beta三个官方集群枚举值,传入自定义URL必然触发「Unknown http cluster」报错。
连接自定义集群完全不需要调用clusterApiUrl,初始化Connection实例时直接传入你的自定义RPC地址字符串即可,调整后的代码如下:
// 直接传入自定义集群RPC地址,无需通过clusterApiUrl包装 const customClusterRpcUrl = 'http://x.x.x.x:8899/'; const solanaConnection = new solanaWeb3.Connection(customClusterRpcUrl, 'confirmed');
注意事项
- 请确认运行代码的服务/设备可以正常访问你自定义集群的8899RPC端口,无防火墙、安全组的访问拦截
- 如果你的自定义集群配置了HTTPS证书,将RPC地址替换为对应的https开头地址即可
- 连接自定义集群时,确认等级、交易构造等其他API用法和连接官方集群完全一致,不需要额外做特殊适配
内容的提问来源于stack exchange,提问作者Singh
相关产品推荐
相关产品推荐

