This guide describes the necessary prerequisites before configuring a storage provider for production.
Being a storage provider will only work if you fully comply with the minimal hardware requirements for the network in which you will be a storage provider. The sealing process is very resource-intensive and is dependent on precise configuration. We strongly recommend Linux systems administration experience before embarking.
Please make sure that the following prerequites are met whether you are planning to run the
lotus miner on the same machine as the lotus daemon or a different machine.
- Make sure your Lotus Node is running, as the storage provider will communicate with it and cannot work otherwise.
- If you are in China, read the tips for running in China page first.
- Make sure to add swap to the machine if needed.
- Permanently raise your fd-limit.
- Install the latest stable Nvidia drivers and Cuda if you have an Nvidia card on your machine. Nvidia cards have a better performance with Cuda when compared to OpenCL.
- Make sure you have followed the instructions to install the Lotus suite to build the
lotus-minerbinary. Make sure that you have built Lotus with “Native Filecoin FFI”.
If you want to use OpenCL, or disable the GPU when building Lotus, check out this article.
Configure parameters location
For the storage provider to start, it will need to read and verify the Filecoin proof parameters. The proof parameters consist of several files, which in the case of 32 GiB sectors, total over 100 GiB.
We recommend setting a custom location to store the parameters and proofs parent cache:
export FIL_PROOFS_PARAMETER_CACHE=/path/to/folder/in/fast/disk export FIL_PROOFS_PARENT_CACHE=/path/to/folder/in/fast/disk2
Parameters are read on every (re)start, so using disks with very fast access, like NVMe drives, will speed up
lotus-miner and workers (re)boots. When the above variables are not set, things will end up in
/var/tmp/ by default.
To download the parameters:
# Use sectors supported by the Filecoin network that the storage provider will join and use. # lotus-miner fetch-params <sector-size> lotus-miner fetch-params 32GiB lotus-miner fetch-params 64GiB
Running the storage provider on a different machine as the Lotus Node
If you opt to run the
lotus-miner on a different machine than the Lotus Node, set:
Creating wallets for the storage provider
You will need at least a BLS wallet (
f3... for mainnet) to initialize. We recommend using separate owner and worker addresses:
# A new BLS address to use as owner address: lotus wallet new bls f3... # A new BLS address to use as worker address: lotus wallet new bls f3...
fromis unspecified, the sender will default to the
owneraddress, in which case the
ownermust have the 0.1 FIL. If the
owneris also unspecified, the wallet’s default address is used as the owner and that address must have the 0.1 FIL.
For additional information about the different wallets that a storage provider can use and how to configure them, read the addresses guide.
There are some changes in the latest Nvidia driver, so if you upgrade your driver remember to check
nvidia-smi - it will always display the correct name for the GPU. The new names are not picked by FFI automatically and need to be exported manually.
If you are using an Nvidia driver below
export RUST_GPU_TOOLS_CUSTOM_GPU="GeForce RTX 3090:10496"
If you are using an Nvidia driver above
export RUST_GPU_TOOLS_CUSTOM_GPU="NVIDIA GeForce RTX 3090:10496"
Nvidia RTX 3090 was used in this example. Remember to edit it with your GPU and number of Cuda cores.