1 Compiling lotus failed: *** No rule to make target '.install-filcrypto'. Stop.
Then delete the directory directly ./extern/
, and then recompile:
rm -rf ./extern/ FFI_BUILD_FROM_SOURCE=1 make clean debug
2 Failed to compile lotus: Get " https://proxy.golang.org/github.com/xxxxxx ": net/http: TLS handshake timeout
You need to set GOPROXY
this environment variable and then recompile:
export GOPROXY=https://goproxy.cn FFI_BUILD_FROM_SOURCE=1 make debug # No need to perform clean operation at this time
3 Compiling lotus failed: server response: not found: module github.com/filecoin-project/lotus/extern/storage-sealing/sealiface: no matching versions for query "latest"
Then, change the code version. There is a problem with this version of the code. The current code version with this problem is: v1.4.2-rc1
.
4 Running lotus crashes: SIGILL: illegal instruction
This is generally a problem that only occurs on old machines, because the old machines do not support adx
other commands. Solution: Add the parameter CGO_CFLAGS="-D__BLST_PORTABLE__" when compiling :
FFI_BUILD_FROM_SOURCE=1 CGO_CFLAGS="-D__BLST_PORTABLE__" make clean debug
5 启动 daemon 失败:xxxxx: genesis in the repo is not the one expected by this version of Lotus!
If the following error occurs when starting the daemon: xxxxx: genesis in the repo is not the one expected by this version of Lotus!
:
It is recommended not to use this version of the code. If you must use it, you can daemon
set the environment variable before starting:
export LOTUS_SKIP_GENESIS_CHECK=_yes_
6 daemon synchronization failed: Received block with impossibly large height xxx
When testing the local test network, if the code of the genesis node is compiled using Debug
the pattern, and the code of other nodes is compiled using Release
the pattern, when the new node is started, when lotus net connect xxxx
the command is executed, it may be in daemon
See this error in the log: ERROR chain chain/sync.go:236 Received block with impossibly large height 197
, after seeing this error, subsequent operations of the new node will not succeed (such as synchronizing node information, or sending some from the genesis node FIL
to the wallet of the new miner, etc.).
The solution is to make the code of the new node also Debug
compile with the mode.
7 Failed to start the genesis node: VM.Call failure: Allowance 4096 below MinVerifiedDealSize for add verifier f081 (RetCode=16)
2KiB
This error message is caused by the compilation mode of the code used when starting the genesis node (building a local test network) without using Debug
the mode (most likely because Release
the code is compiled using the mode), as shown below:
# 错误信息 WARN vm vm/runtime.go:332 Abortf: Allowance 4096 below MinVerifiedDealSize for add verifier f081 WARN vm vm/runtime.go:145 VM.Call failure: Allowance 4096 below MinVerifiedDealSize for add verifier f081 (RetCode=16): genesis func failed: make genesis block: failed to verify presealed data: failed to create verifier: doExec apply message failed: Allowance 4096 below MinVerifiedDealSize for add verifier f081 (RetCode=16)
The workaround is Debug
to recompile the code once with the schema, then restart the genesis node.
8 When checking the wallet list, a warning appears: error in RPC call to 'Filecoin.WalletDefaultAddress': failed to get default key: xxx key info not found
This is not an Error. In fact, you can ignore it. The method to eliminate this is also very simple, because this warning means that the user has not set a default wallet. It may be because the user did not specify Warn
parameters when importing the Genesis wallet , or After importing, the default wallet is not set (this warning will not be reported as long as there is a default wallet). Therefore, the way to eliminate this warning is to add parameters when importing the wallet , or to set the default wallet after importing the wallet ../lotus wallet import xxx
--as-default
./lotus wallet set-default xxx
--as-default
./lotus wallet set-default xxx
9 查看Miner 信息:ERROR: could not get API info: could not get api endpoint: API not running (no endpoint)
If you ./lotus-miner xxx
see this error during execution, it means that your program miner
has not been started, or the miner
default directory is not ~/.lotusminer/
, and the side of your execution name (the terminal where the command is executed) has not detected miner
the directory you are using. For example, miner
it was set when it was running , but this environment variable export LOTUS_STORAGE_PATH=/lotusminer
was not detected on the command execution side .LOTUS_STORAGE_PATH
If you ./lotus xxx
see this error during execution, the principle is miner
similar.
10 lotus compilation error: /usr/bin/ld: cannot find -lhwloc
If you encounter this error during compilation, it means that hwloc
the relevant library is not installed in your system:
Solution, install hwloc
the relevant library, and then recompile lotus
:
sudo apt get install hwloc libhwloc-dev
11 The drand error is displayed in the miner's log: failed getting beacon entry:
Error message (drand: distributed random):
ERROR miner miner/miner.go:208 failed getting beacon entry: drand failed Get request: no valid clients - doing request: Get "https://api3.drand.sh/public/643563": context deadline exceeded - doing request: Get "https://api2.drand.sh/public/643563": context deadline exceeded - doing request: Get "https://drand.cloudflare.com/public/643563": context deadline exceeded - doing request: Get "https://api.drand.sh/public/643563": context deadline exceeded
This error is generally caused by your machine being unable to connect miner
to the Internet, or the network is unstable, etc., resulting in the inability to access the distributed random number server. Moreover, if it has been inaccessible, miner
this error message will be continuously output in the log log. If miner
This error message has been tentatively output in the log log, indicating that it has returned to normal ( WaitSeed
the stage needs to obtain the correct drand
information to continue).
12 The log of lotus shows an error: block was from the future:
The error message is as follows:
2021-03-29T23:03:52.060+0800 ERROR chain chain/sync.go:1500 failed to validate tipset: validating block bafy2bzacedn4somb5xy634kgn56tnmrhs7yg7lje4u2iqpod6d74yvndvwdgu: github.com/filecoin-project/lotus/chain.(*Syncer).ValidateTipSet.func1 /home/ml/git2/lotus/chain/sync.go:620 - block was from the future (now=1617030232, blk=1617030234): github.com/filecoin-project/lotus/chain.(*Syncer).ValidateBlock /home/ml/git2/lotus/chain/sync.go:743 - temporal error
Generally, this error message will continue to be output. The reason is that the time of your machine is inconsistent with the time of other machines. You can solve this problem by updating the time of the machine. The specific method is as follows:
sudo ntpdate ntp.aliyun.com
After synchronizing the time, restart daemon
and miner
normal.
13 Worker failed to start: API not running (no endpoint)
The error message is as follows:
Connecting to miner API... (could not get API info: could not get api endpoint: API not running (no endpoint))
This error message is because there is no configuration in your worker
machine . The solution is to put miner
API token
miner的地址配置上。