警告
仅当您完全满足要在其中进行挖掘的网络的最低硬件要求时,才能进行挖掘。 由于采矿过程在多个方面对机器要求很高,并且依赖于精确的配置,因此强烈建议您着手使用Linux系统的管理经验。
在尝试遵循本指南之前:
Native Filecoin FFI
构建了Lotus。安装完成后,将安装Lotus
,Lotus-miner
和Lotus-worker
。首次启动时加快证明参数的下载
运行Lotus需要下载链的证明参数,这些参数是大文件,默认情况下托管在中国境外,在中国下载非常慢。 为了解决这个问题,用户在运行Lotus
,Lotus-miner
和Lotus-worker
时,应设置以下环境变量:
export IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/
在构建过程中加快Go模块的下载
构建Lotus需要下载一些Go模块。这些通常托管在Github上,而Github来自中国的带宽非常低。要解决此问题,请在运行Lotus之前通过设置以下变量来使用本地代理:
export GOPROXY=https://goproxy.cn
建议在您的环境中设置以下环境变量,以便在每次启动任何Lotus应用程序时(即启动守护程序时)进行定义。
# See https://github.com/filecoin-project/bellman
export BELLMAN_CPU_UTILIZATION=0.875
BELLMAN_CPU_UTILIZATION
是一个可选变量,用于指定多乘幂计算的一部分,以将其移至与GPU并行的CPU中。 这是为了使所有硬件都处于占用状态。 间隔必须为0到1之间的数字。0.875值是一个很好的起点,但是如果需要最佳设置,则应该进一步调整一下。 不同的硬件设置最佳值。 忽略此环境变量也可能是最佳选择。
# See https://github.com/filecoin-project/rust-fil-proofs/
export FIL_PROOFS_MAXIMIZE_CACHING=1 # More speed at RAM cost (1x sector-size of RAM - 32 GB).
export FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 # precommit2 GPU acceleration
export FIL_PROOFS_USE_GPU_TREE_BUILDER=1
# The following increases speed of PreCommit1 at the cost of using a full
# CPU Core-Complex rather than a single core. Should be used with CPU affinities set!
# See https://github.com/filecoin-project/rust-fil-proofs/ and the seal workers guide.
export FIL_PROOFS_USE_MULTICORE_SDR=1
如果您在不同的机器节点上运行Lotus挖矿,请按如下进行设置:
export FULLNODE_API_INFO=<api_token>:/ip4/<lotus_daemon_ip>/tcp/<lotus_daemon_port>/http
并确保ListenAddress
已启用远程访问。有关如何获取令牌的说明。
同样,Lotus-miner
(作为Lotus Miner守护程序的客户端应用程序)可以通过设置,与远程Miner进行通信:
export MINER_API_INFO="TOKEN:/ip4//tcp//http"
如果只有128GiB的RAM,则需要确保系统至少提供额外的256GiB的非常快速的交换(最好是NVMe SSD),否则将无法封装扇区:
sudo fallocate -l 256G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# show current swap spaces and take note of the current highest priority
swapon --show
# append the following line to /etc/fstab (ensure highest priority) and then reboot
# /swapfile swap swap pri=50 0 0
sudo reboot
# check a 256GB swap file is automatically mounted and has the highest priority
swapon --show
You will need at least a BLS wallet (f3… for mainnet) for mining. We recommend using separate owner and worker addresses though. Thus, create at least two wallets (unless you have some already):
您至少需要一个BLS钱包(用于主网的f3 …)才能进行挖掘。我们建议尽管使所有者和矿工地址分开使用。因此,至少创建两个钱包(除非您已经有一些钱包):
# A new BLS address to use as owner address:
lotus wallet new bls
t3...
# A new BLS address to use as worker address:
lotus wallet new bls
t3...
接下来,确保将一些资金发送到矿工机的地址,以便完成矿工设置。
有关矿工可以使用的不同钱包以及如何配置它们的更多信息,请阅读矿工地址指南。
提示:安全地备份你的钱包
从矿工机开始,它需要读取和验证FileCoin的证明参数。 这些可以预先下载(推荐),或者校正过程。 验证参数由多个文件组成,在32GiB扇区的情况下,总共超过100GiB。
我们建议设置一个客户本地存储参数,保证一级缓存能够在第一次运行的时候被创建:
export FIL_PROOFS_PARAMETER_CACHE=/path/to/folder/in/fast/disk
export FIL_PROOFS_PARENT_CACHE=/path/to/folder/in/fast/disk2
每次重启的时候,都会开始读取参数,因此使用具有非常快速的访问的磁盘,如NVME驱动器,将加快矿工机器的启动速度。 当未设置上述变量时,默认情况下,机器在默认情况下,会停止运行到 / var / tmp /,这通常缺少足够的空间。
要下载参数,请执行以下操作:
# Use sectors supported by the Filecoin network that the miner will join and use.
# lotus-miner fetch-params
lotus-miner fetch-params 32GiB
lotus-miner fetch-params 64GiB
您可以在网络仪表板中验证网络的扇区大小。 FIL_PROOFS _ * _ CACHE
变量不仅应在下载时保持定义,而且在启动Lotus Miner(或工作程序)时也应保持定义。
总结以上所有内容,请确保:
矿工地址有一些资金,以便可以初始化矿工。
定义了以下环境变量,这些变量可用于任何Lotus Miner运行:
export LOTUS_MINER_PATH=/path/to/miner/config/storage
export LOTUS_PATH=/path/to/lotus/node/folder # When using a local node.
export BELLMAN_CPU_UTILIZATION=0.875 # Optimal value depends on your exact hardware.
export FIL_PROOFS_MAXIMIZE_CACHING=1
export FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 # When having GPU.
export FIL_PROOFS_USE_GPU_TREE_BUILDER=1 # When having GPU.
export FIL_PROOFS_PARAMETER_CACHE=/fast/disk/folder # > 100GiB!
export FIL_PROOFS_PARENT_CACHE=/fast/disk/folder2 # > 50GiB!
export TMPDIR=/fast/disk/folder3 # Used when sealing.
参数已预取到上面指定的缓存文件夹中
系统具有足够的交换区(swap),并且处于活动状态
在首次运行矿机之前,请先执行以下操作:
lotus-miner init --owner=<address> --worker=<address> --no-local-storage
--no-local-storage
标志,以便稍后我们可以配置存储的特定位置。这是可选的,但建议使用。〜/ .lotusminer /
或$ LOTUS_MINER_PATH
(如果设置)中创建。--Worker
标志,则将使用所有者地址。 可以在矿工运行后稍后添加控制地址。在启动矿工之前,对其进行配置非常重要,以便可以从Filecoin网络中的任何对等方访问它。为此,您将需要一个稳定的公共IP,并按如下所示编辑〜/ .lotusminer / config.toml
:
...
[Libp2p]
ListenAddresses = ["/ip4/0.0.0.0/tcp/24001"] # choose a fixed port
AnnounceAddresses = ["/ip4//tcp/24001" ] # important!
...
一旦启动矿工,请确保可以连接到其公共IP /端口。
现在您可以启动Lotus挖矿机了:
lotus-miner run
或者,如果您使用的是systemd服务文件:
systemctl start lotus-miner
警告:在确认矿工不仅正在运行而且在其公共IP地址上可以访问之前,才能从前面步骤继续进行操作
一旦矿工机启动并运行,就在链上发布您的矿工机地址(您在上面配置的),以便其他节点可以直接与之对话并进行交易:
lotus-miner actor set-addrs /ip4/<YOUR_PUBLIC_IP_ADDRESS>/tcp/24001
现在,您的矿工应该已经初步设置并正在运行,但是还有一些建议的任务可以在黄金时间准备好:
设置您的自定义存储布局(如果使用--no-local-storage
,则为必需)。
编辑矿工配置设置以符合您的要求
了解什么是关闭/重启矿机的正确时机
使用矿工封装某个扇区的时间来更新ExpectedSealDuration
:通过运行基准测试或确认一个扇区并记下时间来发现它。
配置其他密封工作机,以提高矿工密封部门的能力。
为WindowPost消息配置一个单独的地址