当我尝试运行solana测试验证器时,我得到以下带有错误的终端输出:
--faucet-sol argument ignored, ledger already exists
Ledger location: test-ledger
Log: test-ledger/validator.log
Error: failed to start validator: TestValidator startup failed: Custom { kind: Other, error: "Discover failed" }
我的solana config get
:
Config File: /Users/wojciech/.config/solana/cli/config.yml
RPC URL: http://localhost:8899
WebSocket URL: ws://localhost:8900/ (computed)
Keypair Path: /Users/wojciech/.config/solana/id.json
Commitment: confirmed
rustc版本Lrustc 1.58.0 (02072b482 2022-01-11)
我尝试了两种安装方式:推荐-通过curl,我也从源代码构建和安装(均为1.9.4版本(。在两次安装过程中都没有错误或警告。
从源代码构建允许您同时使用solana-test-validator
的功能,并允许您利用锚环境进行构建和测试。您可以使用cargo build
和cargo test
,但这不会用所需的适当工件填充target/idl
。
注意:一旦设置了指向路径的符号链接,您将需要在项目目录中运行命令solana-test-validator
。所以,如果您的项目是helloworld,那么您可以从那里运行测试验证器,而不是索拉纳源文件
在以下说明中,build-source指的是您下载的源代码(tar.gz(文件,以按照说明从源代码进行构建,从而安装此处的Solana CLI工具:https://docs.solana.com/cli/install-solana-cli-tools#build-来自源
从生成源项目根目录转到sdk/cargo-build-bpf
。从那里,运行以下操作:
cargo install --path .
通过打开一个单独的终端并导航到~/.cargo/bin
来验证创建的路径。用列出箱子的内容
ln -l .
您将看到SDK或货物构建bpf。在我运行蒙特利的Mac M1芯片上,我找到了以后者结束的路径。
因此,在苹果M1芯片上,货物构建bpf程序被安装到路径~/.cargo/bin/cargo-build-bpf
。这将允许您在本地项目根目录中成功运行类似anchor build
的命令,一旦您创建了从它到Solana源code/bin/sdk
文件夹中的路径的符号链接。
在一个单独的终端中,导航到~/.cargo/bin
,并在构建源项目的bin文件夹中创建一个指向sdk文件夹的符号链接,如下所示:
ln -s solana-1.9.2/bin/sdk ~/.cargo/bin/cargo-build-bpf
将solana-1.9.2
替换为先前下载的构建源代码。
您可以尝试在test-ledger/validator.log
检查日志。通常它会是一些错误消息,如
re^[[0m^[[38;5;8m]^[[0m On mac OS you may need to run |sudo launchctl limit maxfiles 500000 500000| first
在许多情况下,运行sudo launchctl limit maxfiles 500000 500000
可以修复它。