Documenting working with Lotus Filecoin client on MacOS. This is for chain syncing, development on testnet, and as a client, not for mining
I’ve done an initial setup of Lotus on MacOS. The install docs list minimal requirements.
My desktop machine specs are as follows:
- Mac Mini (2018), bought Q3 2020 – upgraded with 32GB of RAM, “regular” internal SSD 512GB
- 3.2GHz 6-core Intel Core i7 (recommended minimum is 8-core)
- External eGPU with AMD Radeon EX 5700 XT 8GB
I read a bit about whether or not big GPUs help, and the answer is “it depends”. I have noticed the fan in my eGPU powering up when working with the chain, so the GPU appears to be doing something!
For storage, I have a Thunderbolt external NVMe case with 2TB, which is where I’m storing mainnet and testnet for now. I have some external SSD enclosures that I may save state on as well in the future.
I followed the MacOS setup instructions.
I used Homebrew to install and everything completed all the way through to the end of make all
and sudo make install
, which installed in /usr/local/bin
, so the lotus
command was globally available to my shell.
I ran the daemon to import a snapshot, reading chain management - syncing from trusted snapshot.
~/.lotus
was created in my home dir on my main drive, and I let it download the snapshot of about 40GB in two runs. Pleasantly surprised to see that this resumes no problem.
This was all in my home directory, so before going any further I copied the entire ~/.lotus
directory to the external NVMe drive. /Volumes/Corsair/Filecoin/Lotus/mainnet
(mainnet folder contains .lotus
contents)
I then looked at the advanced options - environment variables to find the LOTUS_PATH
variable.
Running as follows:
LOTUS_PATH=/Volumes/Corsair/Filecoin/Lotus/mainnet lotus daemon
Confirmed by time stamps that this started syncing / storing into the mainnet folder in the external drive.
I turned this into a file, lotusmain.sh
, with the following contents:
#!/bin/sh
LOTUS_PATH=/Volumes/Corsair/Filecoin/Lotus/mainnet /usr/local/bin/lotus daemon
Next:
- setup testnet
- figure out wallets
- get faucet funds from testnet