Agenda
環境
MacBook Pro M2チップ Sonoma 14.6.1
現象
ローカルでバリデータを動かしたところ以下のエラー。
% solana-test-validator
Ledger location: test-ledger
Log: test-ledger/validator.log
Error: failed to start validator: Failed to create ledger at test-ledger: io error: Error checking to unpack genesis archive: Archive error: extra entry found: "._genesis.bin" Regular
原因
M2チップ対応が必要。
または設定が反映されていない。
対策1(M2チップ対応)
以下を参考に進める。
補足
上記ドキュメントどおりに進めると、以下でエラーが発生する。
./scripts/cargo-install-all.sh .
---省略---
error: failed to run custom build command for `etcd-client v0.11.1`
Caused by:
process didn’t exit successfully: `/Users/256hax/Desktop/tmp/solana/target/release/build/etcd-client-f51d275c86a77063/build-script-build` (exit status: 101)
--- stdout
cargo:rerun-if-changed=proto
cargo:rerun-if-changed=proto/auth.proto
cargo:rerun-if-changed=proto/kv.proto
cargo:rerun-if-changed=proto/rpc.proto
cargo:rerun-if-changed=proto/v3election.proto
cargo:rerun-if-changed=proto/v3lock.proto
cargo:rerun-if-changed=proto
--- stderr
thread ‘main’ panicked at /Users/256hax/.cargo/registry/src/index.crates.io-6f17d22bba15001f/prost-build-0.11.9/src/lib.rs:1457:10:
Could not find `protoc` installation and this build crate cannot proceed without
this knowledge. If `protoc` is installed and this crate had trouble finding
it, you can set the `PROTOC` environment variable with the specific path to your
installed `protoc` binary.You could try running `brew install protobuf` or downloading it from https://github.com/protocolbuffers/protobuf/releases
For more information: https://docs.rs/prost-build/#sourcing-protoc
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
proto-lens をインストールすると解決する。
% brew install protobuf
対策2(設定が反映されていない)
インストールや設定が正しくできていて、Discordにもエラー情報があまり載っていない場合、設定がちゃんと反映されていない可能性がある。
その場合は、Macの再起動で直る。
対策3(すべて最新バージョンにする)
以下を最新にする。
- macOS
- Rust
- Solana
- Anchor
macOSが最新じゃなくて動かない、というのが意外な落とし穴になっているため、要注意。
また、すべてのインストールや設定が完了したら、必ずMacを再起動すること(これも落とし穴)。