I took a break from exploring development in Solana, and the first thing I hit when I recently resumed again was failing tests when using the Anchor framework.
Running anchor run test
leads to this error:
1) calculator
Is initialized!:
Error: failed to get recent blockhash: FetchError:
request to http://localhost:8899/ failed, reason:
connect ECONNREFUSED ::1:8899
at Connection.getLatestBlockhash
(node_modules/@solana/web3.js/src/connection.ts:4555:13)
at processTicksAndRejections
(node:internal/process/task_queues:95:5)
at AnchorProvider.sendAndConfirm
(node_modules/@coral-xyz/anchor/src/provider.ts:147:9)
at MethodsBuilder.rpc [as _rpcFn]
(node_modules/@coral-xyz/anchor/src/program/namespace/rpc.ts:29:16)
The important part of the error message is:
Error: failed to get recent blockhash: FetchError:
request to http://localhost:8899/ failed, reason:
connect ECONNREFUSED ::1:8899
at Connection.getLatestBlockhash
Googling the error, I found this suggestion here which says to "Try using node 16 instead of 17 if you're on 17".
I tried this and sure this works. But it does not feel right. node
's current version is 20.x, dropping down to version 16 does not feel like the most appropriate way to solve this problem.
So why is the issue happening in the first place? Maybe if we understand that, we can come up with a better solution.