-
Notifications
You must be signed in to change notification settings - Fork 12
1.How to join filecash mainnet
Filecash supports operation on the Linux system whereas not on Windows. The instruction takes operation on the Ubuntu18.04 system as example.
Filecash currently supports sectors of 4GiB and 16GiB.
- For 4GiB miners: Single task cache space is 60 GiB, C2 maximum memory occupation is 115 GiB, and display memory not less than 8300 MB
- For 16GiB miners: Single task cache space is 160 GiB, C2 maximum memory occupation is 85 GiB, and display memory not less than 5120 MB
Filecash is dependent by:
- go (1.15)
- gcc (7.4.0 or higher)
- git (version 2 or higher)
- bzr (some go dependency needs this)
- jq
- pkg-config
- opencl-icd-loader
- opencl driver (like nvidia-opencl on arch) (for GPU acceleration)
- opencl-headers (build)
- rustup (proofs build)
- llvm (proofs build)
- clang (proofs build)
- hwloc libhwloc-dev
The Ubuntu installation dependent librarys command is:
sudo apt update
sudo apt install mesa-opencl-icd ocl-icd-opencl-dev hwloc libhwloc-dev gcc git bzr jq pkg-config curl hwloc libhwloc-dev -y
sudo apt upgrade -y
The Go environment installation command is:
sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-1.15-go -y
export PATH=$PATH:/usr/lib/go-1.15/bin
Please download the compiled binary program at https://github.com/filecash/lotus/releases, then extract and import the file to the /usr/local/bin directory.
git clone https://github.com/filecash/lotus_builder
cd lotus_builder/
bash build.sh -a -y
cd lotus/
make install
cd lotus_builder/
bash build.sh -a -y
cd lotus/
make lotus-checker lotus-shed
First start the Filecash daemon. let lotus process run in the background and synchronize node data:
nohup lotus daemon > daemon.log 2>&1 &
# 1. Backup private key:
lotus wallet export fxxxxxxxx > fxxxxxxxx.key
# 2. Close all Lotus programs
lotus daemon stop
# 3. Clean up the lotus chain data directory:
rm -rf ~/.lotus/datastore/chain/*
# 4. The wget download snapshot file:
wget https://snapshot.file.cash/fic-snapshot-latest.car
# 5. Import snapshot file:
lotus daemon --import-snapshot fic-snapshot-latest.car
[API]
ListenAddress = "/ip4/<lotus IP>/tcp/1234/http"
nohup lotus daemon > daemon.log 2>&1 &
Create Wallet
lotus wallet new bls
Purchase FIC (Filecash) from exchanges and withdraw them to the applied wallet address:
owner=`lotus wallet list`
# automatic download of supporting documents
export FIL_PROOFS_PARAMETER_CACHE=/mnt/proofs
nohup lotus fetch-params 4GiB > fetch-params-4gb.log 2>&1 &
nohup lotus fetch-params 16GiB > fetch-params-16gb.log 2>&1 &
or
export FIL_PROOFS_PARAMETER_CACHE=/mnt/proofs
cd $FIL_PROOFS_PARAMETER_CACHE
# Manually download 2KB supporting documents
wget -c https://proofs.file.cash/ipfs/QmTkitxLQPwXhSFg8Y4i2n4USSrETjsRMWMZ6THpmaKEq6 -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-0-0-0170db1f394b35d995252228ee359194b13199d259380541dc529fb0099096b0.params
wget -c https://proofs.file.cash/ipfs/QmZtwfkZgTLPahC72YRzMjaeN1xej9yv86dY4gEoi51cTj -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-0-0-0170db1f394b35d995252228ee359194b13199d259380541dc529fb0099096b0.vk
wget -c https://proofs.file.cash/ipfs/QmPXg9Nfhkmne9Ts6HSnpfZTim1N7sryNooUwprpqnGDgv -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-0-0-3ea05428c9d11689f23529cde32fd30aabd50f7d2c93657c1d3650bca3e8ea9e.params
wget -c https://proofs.file.cash/ipfs/QmYfnVVgfrUDyvxFfhSsithucRUneUAE7CisjkWQcHWE2i -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-0-0-3ea05428c9d11689f23529cde32fd30aabd50f7d2c93657c1d3650bca3e8ea9e.vk
wget -c https://proofs.file.cash/ipfs/QmaJVdcP5hMc92TYERy2zcxbKcttSf3YmGmw28NFiWNiiR -O v28-stacked-proof-of-replication-merkletree-poseidon_hasher-8-0-0-sha256_hasher-032d3138d22506ec0082ed72b2dcba18df18477904e35bafee82b3793b06832f.params
wget -c https://proofs.file.cash/ipfs/QmV8H8yJD1B9dTvYs2PYBJ3xs6QwsJ1a3g5qBKDVUe9wmj -O v28-stacked-proof-of-replication-merkletree-poseidon_hasher-8-0-0-sha256_hasher-032d3138d22506ec0082ed72b2dcba18df18477904e35bafee82b3793b06832f.vk
# Manually download 4GB supporting documents
wget -c https://proofs.file.cash/ipfs/QmYRGdsr7L3hXWcAQKrkNMMhUXfsfhfxsrBhoez7zbSf2g -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-0-0-23807ff142251ff42f38810834724169c8f81ca563d360f1502363f6f8ad580c.params
wget -c https://proofs.file.cash/ipfs/QmeaxZu6ESeiTHH7EWiuqZZ58dLi55FYQYZNVxvrXf51vi -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-0-0-23807ff142251ff42f38810834724169c8f81ca563d360f1502363f6f8ad580c.vk
wget -c https://proofs.file.cash/ipfs/QmbBxv2BG3Y3eSYddTNmTFJX77R14KVSrE3vByfE2wZQG1 -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-0-0-3be65b9045f13d2c857d62c18a5dcc9a7a83b0ff84e61a91979ba1ba6d1812c7.params
wget -c https://proofs.file.cash/ipfs/QmUJ8WrPWz6ZJAWT5BJkEJeQBii3A4Lj9pMMsGrx8ZGwqx -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-0-0-3be65b9045f13d2c857d62c18a5dcc9a7a83b0ff84e61a91979ba1ba6d1812c7.vk
wget -c https://proofs.file.cash/ipfs/QmQqi3Ha3LbKPf1KgTArC3NUTBLWVBwt56f4fFcX1QRduZ -O v28-stacked-proof-of-replication-merkletree-poseidon_hasher-8-0-0-sha256_hasher-fcc4520bb35a7a20aa871fbad43e6aa887de9fbe1131c5cb365c47c83601a5b2.params
wget -c https://proofs.file.cash/ipfs/QmVZnh11qqaeGaZ1YVaHgeEjGfCtBTCGRfapb42r5sjHac -O v28-stacked-proof-of-replication-merkletree-poseidon_hasher-8-0-0-sha256_hasher-fcc4520bb35a7a20aa871fbad43e6aa887de9fbe1131c5cb365c47c83601a5b2.vk
# Manually download 16GB supporting documents
wget -c https://proofs.file.cash/ipfs/QmeQoWydjK7YBABNaLsQieVetcXBPP86GQCboHbnNrVC7N -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-4-0-14020a794b2c2191f4e7462ed8cb9b86f2a2d719b1d13e6581d80ad981e6b098.params
wget -c https://proofs.file.cash/ipfs/QmeMEntrC1pHHzD9KwXT7z433Nt2EixuhvnpdUF38WULgT -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-4-0-14020a794b2c2191f4e7462ed8cb9b86f2a2d719b1d13e6581d80ad981e6b098.vk
wget -c https://proofs.file.cash/ipfs/QmZSfBBrDhKyo8gjPN83vgzNvTNsnFkW82EDTq957eT2TW -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-4-0-a01cdbef817cac42c9566e38490f0b4d299e2752af52a78b2a9d38b24286d5b4.params
wget -c https://proofs.file.cash/ipfs/QmYuAfcN4VSAJ9ocuqRYkq2wWsGWoZQczeJBejzQEkU1Vi -O v28-proof-of-spacetime-fallback-merkletree-poseidon_hasher-8-4-0-a01cdbef817cac42c9566e38490f0b4d299e2752af52a78b2a9d38b24286d5b4.vk
wget -c https://proofs.file.cash/ipfs/QmaWpJxJ7YcEN3VqG94YwBna3PLAgknbRS9eAoLGTwpHZM -O v28-stacked-proof-of-replication-merkletree-poseidon_hasher-8-4-0-sha256_hasher-07c0adb3191b18918d631375516125e2900a1c437745539389cf154ec430c1c2.params
wget -c https://proofs.file.cash/ipfs/QmUjqsiQaZziKxgR86JA7Q1imuHpqbuRjMmq6k5vbv5WDu -O v28-stacked-proof-of-replication-merkletree-poseidon_hasher-8-4-0-sha256_hasher-07c0adb3191b18918d631375516125e2900a1c437745539389cf154ec430c1c2.vk
3.4.1 If lotus and miner are not on the same machine, you need to copy two files ,configure fullnode_ API_ Info does not need to be copied.
Copy ~/.lotus/api \ ~/.lotus/token from lotus machine to ~/.lotus/ directory
# 4G-miner:
lotus-miner --miner-repo=~/.lotusminer-4gb init --owner=$owner --sector-size=4GiB
# 16G-miner:
lotus-miner --miner-repo=~/.lotusminer-16gb init --owner=$owner --sector-size=16GiB
Waiting for confirmation on the chain, the creation log will output"Miner successfully created, you can now start it with 'lotus-miner run'"
# 4G-miner: Modifying "~/.lotusminer-4gb/config.toml" The IP address of the Listenaddress
[API]
ListenAddress = "/ip4/<4G-miner IP>/tcp/2345/http"
# 16G-miner: Modifying "~/.lotusminer-16gb/config.toml" The IP address of the Listenaddress
[API]
ListenAddress = "/ip4/<16G-miner IP>/tcp/2355/http"
# 4G-miner:
nohup lotus-miner --miner-repo=~/.lotusminer-4gb run > miner-4gb.log 2>&1 &
# 16G-miner:
nohup lotus-miner --miner-repo=~/.lotusminer-16gb run > miner-16gb.log 2>&1 &
# 4G-miner:
lotus-miner --miner-repo=~/.lotusminer-4gb storage attach --store --weight=10 --init /opt/miner_store4
# 16G-miner:
lotus-miner --miner-repo=~/.lotusminer-16gb storage attach --store --weight=10 --init /opt/miner_store16
# modify "~/.lotusminer/sectorstore.json"
num=`grep -i "\"CanStore\": false" ~/.lotusminer/sectorstore.json |awk '{print length($0)}'`
if [ -z $num ]; then
sed -i "s/\"CanStore\": true/\"CanStore\": false/g" ~/.lotusminer/sectorstore.json
fi
[API]
ListenAddress = "/ip4/<lotus IP>/tcp/1234/http"
# 4G-miner: 修改 "~/.lotusminer-4gb/config.toml" 里面ListenAddress的IP
[API]
ListenAddress = "/ip4/<4G-miner IP>/tcp/2345/http"
# 16G-miner: 修改 "~/.lotusminer-16gb/config.toml" 里面ListenAddress的IP
[API]
ListenAddress = "/ip4/<16G-miner IP>/tcp/2355/http"
6.3 If lotus and miner are not on the same machine, you need to copy two files ,configure fullnode_ API_ Info does not need to be copied.
Copy ~/.lotus/api \ ~/.lotus/token from lotus machine to ~/.lotus/ directory
6.3.1 If 4G-worker and 4G-miner are not on the same machine, you need to copy two files ,configure fullnode_ API_ Info does not need to be copied.
Copy ~/.lotusminer-4gb/api ~ /.lotusminer-4gb/token of 4G-miner machine to ~/.lotusminer-4gb/ directory
6.3.2 If 16G-worker and 16G-miner are not on the same machine, you need to copy two files ,configure fullnode_ API_ Info does not need to be copied.
Copy ~/.lotusminer-16gb/api ~ /.lotusminer-16gb/token of 16G-miner machine to ~/.lotusminer-16gb/ directory
# 4G-worker: 参考以下命令,根据实际需求追加不同参数,启用4G-worker
nohup lotus-worker --miner-repo=~/.lotusminer-4gb --worker-repo=~/.lotusworker-4gb run --listen=3456 [...] > miner-4gb.log 2>&1 &
# 16G-worker: 参考以下命令,根据实际需求追加不同参数,启用16G-worker
nohup lotus-worker --miner-repo=~/.lotusminer-16gb --worker-repo=~/.lotusworker-16gb run --listen=3466 [...] > miner-16gb.log 2>&1 &
#: lotus-worker run -h
--listen value host address and port the worker api will listen on (default: "0.0.0.0:3456")
--no-local-storage don't use storageminer repo for sector storage (default: false)
--no-swap don't use swap (default: false)
--addpiece enable addpiece (default: true)
--precommit1 enable precommit1 (32G sectors: 1 core, 128GiB Memory) (default: true)
--unseal enable unsealing (32G sectors: 1 core, 128GiB Memory) (default: true)
--precommit2 enable precommit2 (32G sectors: all cores, 96GiB Memory) (default: true)
--commit enable commit (32G sectors: all cores or GPUs, 128GiB Memory + 64GiB swap) (default: true)
--parallel-fetch-limit value maximum fetch operations to run in parallel (default: 5)
--timeout value used when 'listen' is unspecified. must be a valid duration recognized by golang's time.ParseDuration function (default: "30m")
--precommit1max value Allow the maximum number of simultaneous tasks for precommit1, default value: 0 (default: 0)
--precommit2max value Allow the maximum number of simultaneous tasks for precommit2, default value: 0 (default: 0)
--commitmax value Allow the maximum number of simultaneous tasks for commit2, default value: 0 (default: 0)
--group value Worker grouping function, default value: all (default: "all")