filecoin lotus文档

(这里lotus所有的内容,基本都是从官方的英文文档翻译过来的)

目前,lotus未上线,处于测试阶段,有开放测试网Testnet

1 Lotus介绍

Lotus是用Go编写的Filecoin分布式存储网络(Filecoin Distributed Storage Network) 的一个实现。 它被设计成模块化的,并且可以与Filecoin协议的任何其他实现进行互操作。 更多关于Lotus的信息这里

1.1 可以运行的操作系统

Lotus可以在大多数的 Linux(Arch,Ubuntu,Fedora) 和MacOS 上构建和运行还有,具有至少8GiB RAM的系统。

Windows尚不受支持。

(这里用Ubuntu)

1.2 示例配置

下面的设置是密封Lotus上32个GiB扇区的最小示例:

  • 2 TB 硬盘空间
  • 8 core(核) CPU
  • 128 GiB of RAM(内存)

如果您只有128GiB的RAM,那么在SSD上启用256GB的NVMe swap将有助于避免挖掘时出现内存不足问题。

1.3 基准GPUs

GPU是获得block rewards(区块奖励)的必备条件。这里有一些已经被证实能够足够快地生成SNARKs来成功地在Lotus Testnet上挖掘块。

  • GeForce RTX 2080 Ti
  • GeForce RTX 2080 SUPER
  • GeForce RTX 2080
  • GeForce GTX 1080 Ti
  • GeForce GTX 1080
  • GeForce GTX 1060

2 Ubuntu安装Lotus

需要安装以下依赖:

  • go (1.13 or higher)
  • gcc (7.4.0 or higher)
  • git (version 2 or higher)
  • bzr (一些go依赖需要这个)
  • jq
  • pkg-config
  • opencl-icd-loader
  • opencl driver (like nvidia-opencl on arch) (for GPU 加快)
  • opencl-headers (build)
  • rustup (proofs build)
  • llvm (proofs build)
  • clang (proofs build)

2.1 安装依赖

1、安装go
2、安装其它依赖

sudo apt install mesa-opencl-icd ocl-icd-opencl-dev -qy

sudo apt install  pkg-config mesa-opencl-icd ocl-icd-opencl-dev -y

sudo apt install gcc git bzr jq curl tmux  nethogs sysstat -qy

3、安装rustup

curl https://sh.rustup.rs -sSf | sh

安装完,想在终端立即生效:

source $HOME/.cargo/env

2.2 下载Lotus

git clone https://github.com/filecoin-project/lotus.git

2.3 安装

cd lotus/

make clean && make all 

sudo make install 

3 加入测试网中

如果你无法连接外国网络,可以在系统的环境变量导入以下内容:

export IPFS_GATEWAY="https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"

3.1 开始

启动守护进程

lotus daemon

在另一个终端窗口中,检查与peers的连接:

lotus net peers | wc -l

额外说明:

守护进程启动后,会默认生成~/.lotus文件。(在进行同步工作中)

3.2 链同步

运行下面的命令查看链同步进度。要查看当前链高度:

lotus sync wait

这一步需要几个小时到几天的时间。(取决于链的高度)

访问network stats page,可以查看要查看最新的网络活动,包括 chain block height(链高度)、block height(区块高度)、 blocktime(区块时间)、total network power(总网络功率)、最大的block producer miner(区块生产商miner)

4 运行矿工

4.1 创建矿工

请使用以下命令确保钱包中至少存在一个BLS地址(以t3开头):

lotus wallet list

如果您没有bls钱包地址,请创建一个新的bls钱包地址:

lotus wallet new bls
  1. 拷贝钱包地址
  2. 访问 faucet
  3. 点击 “Create Miner”
  4. 粘帖钱包地址,选择矿工大小,点击 “Create Miner”

DO NOT REFRESH THE PAGE. THIS OPERATION CAN TAKE SOME TIME.(不要刷新页面。这个操作可能需要一些时间。)

初始化矿工

lotus-storage-miner init --actor=ACTOR_VALUE_RECEIVED --owner=OWNER_VALUE_RECEIVED

例子

lotus-storage-miner init --actor=t01424 --owner=t3spmep2xxsl33o4gxk7yjxcobyohzgj3vejzerug25iinbznpzob6a6kexcbeix73th6vjtzfq7boakfdtd6a

额外说明:
初始化完后,会默认生成~/.lotusstorage文件
默认路径可以通过LOTUS_STORAGE_PATH改

4.2 运行矿工

lotus-storage-miner run

获取有关矿工的信息:

lotus-storage-miner info

生成一个块:

lotus-storage-miner sectors pledge

5 运行sealworker

Lotus Seal Worker是一个额外的进程,可以从Lotus Storage Miner卸载繁重的处理任务。它可以与您的lotus-storage-miner在同一台计算机上运行,也可以在另一台通过快速网络通信的计算机上运行。

5.1 与 Storage Miner一起运行

lotus-seal-worker run --adress 127.0.0.1:2346

5.2 网络运行

要使用完全独立的计算机执行密封任务,您需要在单独的计算机上运行 lotus-seal-worker ,该计算机通过局域网连接到您的lotus Storage Miner

首先,您需要确保可以通过网络访问lotus-storage-miner的API。

为此,打开~/.lotusstorage/config.toml(或者如果手动设置LOTUS_STORAGE_PATH,请在该目录下查找)并查找API字段。

Default config:

[API]
ListenAddress = "/ip4/127.0.0.1/tcp/2345/http"
RemoteListenAddress = "127.0.0.1:2345"

要通过局域网访问节点,需要确定局域网上的计算机IP,并将文件中的 127.0.0.1 更改为该地址。

一个更宽松、更不安全的选项是将其更改为0.0.0.0。这将允许任何可以连接到该端口上的计算机的人访问API. 他们仍然需要一个身份验证令牌。

RemoteListenAddress必须设置为网络上其他节点可以访问的地址

接下来,你需要create an authentication token. 所有lotusapi都需要身份验证令牌,以确保您的进程对试图向其发出未经身份验证的请求的攻击者同样安全。

lotus-storage-miner auth create-token --perm admin

5.2.1 Connect the Lotus Seal Worker

在将运行lotus-seal-worker的计算机上,将STORAGE_API_INFO环境变量设置为TOKEN:STORAGE_NODE_MULTIADDR. 其中,TOKEN是我们在上面创建的令牌,STORAGE_NODE_MULTIADDR是在中设置的Lotus STORAGE MinerAPI的multiaddrconfig.toml.

设置后,运行:

lotus-seal-worker run

要检查Lotus Seal Worker是否已连接到Lotus Storage Miner上,请运行lotus-storage-miner workers list ,并检查远程工作者计数是否已增加。

why@computer ~/lotus> lotus-storage-miner workers list
Worker 0, host computer
        CPU:  [                                                                ] 0 core(s) in use
        RAM:  [||||||||||||||||||                                              ] 28% 18.1 GiB/62.7 GiB
        VMEM: [||||||||||||||||||                                              ] 28% 18.1 GiB/62.7 GiB
        GPU: GeForce RTX 2080, not used

Worker 1, host othercomputer
        CPU:  [                                                                ] 0 core(s) in use
        RAM:  [||||||||||||||                                                  ] 23% 14 Giexport WORKER_PATH="/sdd_cache"B/62.7 GiB
        VMEM: [||||||||||||||                                                  ] 23% 14 GiB/62.7 GiB
        GPU: GeForce RTX 2080, not used

6 数据存储

以下是如何在Lotus Testnet上存储数据的说明。

6.1 在本地添加文件

在本地添加文件允许您在Lotus Testnet上进行miner交易。

lotus client import ./your-example-file.txt

成功后,此命令将返回一个Data CID
Data CID: CID是一种用于在分布式信息系统中引用内容的格式,它是一种存储信息的方式,因此可以根据其内容而不是其位置来检索它。
DataCID专门用于表示Filecoin分布式存储网络中存储的文件。

6.2 列出本地文件

CID, name, size(字节)和status查看文件列表的命令:

lotus client local

输出示例:

bafkreierupr5ioxn4obwly4i2a5cd2rwxqi6kwmcyyylifxjsmos7hrgpe Development/sample-1.txt 2332 ok
bafkreieuk7h4zs5alzpdyhlph4lxkefowvwdho3a3pml6j7dam5mipzaii Development/sample-2.txt 30618 ok

6.3 在Lotus Testnet上进行矿工交易

获取可以存储数据的所有矿工的列表:

lotus state list-miners

获取要与之存储数据的矿工的要求:

lotus client query-ask <miner>

使用miner存储 Data CID

lotus client deal <Data CID> <miner> <price> <duration>

检查交易状态:

lotus client list-deals
  • duration以块的形式表示,它表示矿工将托管您的文件的时间。每个方块代表25秒。

成功后,此命令将返回Deal CID

存储矿工将需要seal(密封)文件才能检索。如果Lotus Storage Miner没有在设计用于密封的机器上运行,则该过程将需要很长时间。

额外说明:
1、lotus client import 和lotus client local返回的文件CID不同。这里我用两个都可以上传,但不知道有什么区别。
2、lotus client query-ask 大部分矿工都不通的,基本要写脚本去循环ask一遍,看哪一个能通。

猜你喜欢

转载自blog.csdn.net/weixin_43932656/article/details/106541170