Truffleの以下チュートリアルでいろいろハマったため、その時のメモ。
Agenda
1. Unknown environment: developmentエラー
エラー内容
$ truffle preserve --environment development ./assets/ --filecoin
Unknown environment: development. Check your truffle-config.js?
Truffle v5.4.15 (core: 5.4.15)
Node v12.22.7
対応
- 「$ npm install -g truffle@preserves」を実行する
- 実行ディレクトリが正しいか確認する(ルートディレクトリで実行する)
- truffle-config.jsをいじってなければ間違っていない可能性が高いので、それまでの手順が正しいか確認する
2. not found in global or local node modulesエラー
エラー内容
$ truffle preserve --environment development ./assets/ --filecoin
Error:
Error: truffle-plugin-debugger listed as a plugin, but not found in global or local node modules!
対応
debuggerがインストールされていないため、「$ npm i truffle-plugin-debugger」でインストールする。
trufflesuite / truffle-plugin-debugger
3. Invalid StartDealParams.Wallet provided.エラー
エラー内容
見やすいように整形しているため、コマンドに利用はしないでください。
$ curl -X POST \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 0,
"method": "Filecoin.ClientStartDeal",
"params": [
{
"Data": {
"TransferType": "graphsync",
"Root": {
"/": "QmZTR5bcpQD7cFgTorqxZDYaew1Wqgfbd2ud9QqGPAkK2V"
},
"PieceCid": null,
"PieceSize": 0
},
"Wallet": "t3s3la37547tijmoeiep7ktogws3tep2eqrralh7rhi2mpe46q574gceyy467356onblzvwf7ejlelo2rdsg4q",
"Miner": "t01000",
"EpochPrice": "2500",
"MinBlocksDuration": 300
}
]
}' \
http://localhost:7777/rpc/v0
【以下が実行結果】
{
"jsonrpc": "2.0",
"error": {
"message": "Invalid StartDealParams.Wallet provided. Ganache doesn't have the private key for account with address t3s3la37547tijmoeiep7ktogws3tep2eqrralh7rhi2mpe46q574gceyy467356onblzvwf7ejlelo2rdsg4q",
"stack": "Error: Invalid StartDealParams.Wallet provided. Ganache doesn't have the private key for account with address t3s3la37547tijmoeiep7ktogws3tep2eqrralh7rhi2mpe46q574gceyy467356onblzvwf7ejlelo2rdsg4q\n at Blockchain.startDeal (/Users/xxx/Desktop/blockchain/filecoinDemo/node_modules/@ganache/filecoin/dist/node/ganache-filecoin.min.js:2:783097)\n at async FilecoinApi.Filecoin.ClientStartDeal (/Users/xxx/Desktop/blockchain/filecoinDemo/node_modules/@ganache/filecoin/dist/node/ganache-filecoin.min.js:2:769545)",
"code": -32700
}
}
対応
ウォレットアドレスが誤っているため、「$ npx ganache filecoin」を打ったときに出力される、tから始まるウォレットアドレスを利用する。
ウォレットアドレスの変更部分は以下。
「"Wallet":"t3s3la37547tijmoeiep7ktogws3tep2eqrralh7rhi2mpe46q574gceyy467356onblzvwf7ejlelo2rdsg4q"」
4. Invalid JSON RPC response: 404 Not Foundエラー
エラー内容
$ truffle console
> Something went wrong while attempting to connect to the network. Check your network configuration.
Invalid JSON RPC response: "404 Not Found"
Truffle v5.2.7-preserves.5 (core: 5.2.7-preserves.5)
Node v12.22.7
対応
「$ truffle develop」コマンドを打つ。
「$ truffle console --network development」も試したが、うまくいかず上記コマンドのみ通った。
5. 最終的にどのようなコマンドが起動状態になるのか
NFTミントなどのトランザクション時
- ルートディレクトリ:$ truffle develop (Filecoinブロックチェーンサーバー用。処理が終わったら閉じてもOK)
- ルートディレクトリ:$ npm run start (NFTのミント用。同上)
NFT表示時
- uiディレクトリ:$ npm run start (フロントエンド用)
この状態で http://localhost:3000/ にアクセスすると、以下が表示される。
フロントエンド側では画像をただ表示しているだけのため、ブロックチェーンサーバーの起動は必要ない。