solana-test-validatorでinsufficient fee-payer fundsエラー

M1 Macでairdropやdeployできない、という情報があったが、Linux(debian)もできなかった。

Query: Deploying hello world to solana-test-validator on M1 fails #18033

一旦、自分のまっさらな環境(Debian GNU/Linux 10、Docker Image: debian:buster-slim)ではうまくいったため、そのときのメモ。

現象

airdropするとinsufficient fee-payer fundsエラー。なお、anchor deployしても同じエラーになる。

root@d130ac3addea:/usr/src/app/solana-anchor-react-minimal-example/full-stack/initialize# solana airdrop 1 8kBMLjb8inTpMiJLXgMpVoTvjL3GA5ow47ApsjswnpqG
Requesting airdrop of 1 SOL
Error: unable to confirm transaction. This can happen in situations such as transaction expiration and insufficient fee-payer funds

原因

原因不明。2021/12/30時点でGitHubのIssueがOpenになっているため、まだ原因究明中(?)と思われる。

対応

「solana-test-validator --bpf-program」というのを利用したらうまくいった。

以下のように指定する。

solana-test-validator --bpf-program [PROGRAM ADDRESS] [SO FILE]

% ANCHOR_WALLET_ADDRESS=$(solana address -k target/deploy/initialize-keypair.json)
% solana-test-validator --bpf-program $ANCHOR_WALLET_ADDRESS target/deploy/initialize.so

補足

今回利用したDocker(自分で作成したまっさらなDocker)。
Solana x Anchor x React in Docker

備考

2018 late Macの場合は、特にこのような症状はなく普通に動作した。
AnchorやdebianなどのDockerで、まっさらな状態だと発生した。