MacBook Pro M2で solana-test-vadalitor を動かすとエラー

環境

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チップ対応)

以下を参考に進める。

Install Solana on Apple M1

補足

上記ドキュメントどおりに進めると、以下でエラーが発生する。

./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を再起動すること(これも落とし穴)。