扫码加微信,交流武汉肺炎期间如何在家挖矿,躺着赚钱

转让域名

This domain for sale!

Email:filapp@protonmail.com

Twitter:

https://twitter.com/RalapXStartUp

Telegram:

https://t.me/bigdog403
  • X

    【Filecoin挖矿日记—第一篇】
    #请关注加入本微信,记得点击好看#
    🟡测试硬件🟡
    本次测试用的是二手戴尔服务器,英特尔GTX 1080Ti,128GB内存
    🟣开始挖矿前🟣
    请参照官网把各个需要依赖的库安装好,最好采用Ubuntu系统。另外需要配置golang和Rust国内的加速镜像库,这样加快安装编译过程。
    例如🔜

    echo "GOPROXY=https://goproxy.cn
    " >> ~/.profile && source ~/.profile

    export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
    export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

    🟣挖矿过程,资源消耗🟣
    filecoin挖矿过程,分Packing,Unseal这个过程是,生成随机数文件,并进行打包,然后进行封装扇区。filecoin可以在配置文件config.修改,你想并行处理多少个任务,这里对CPU资源消耗较大,也要占用内存资源。
    📓Filecoin/IPFS挖矿日记-第二篇📓
    🟣完成一个前期挖矿流程需要多长时间?🟣
    filecoin挖矿流程分,前期的生成随机数文件,32GB的文件生成需要5到6分钟,这个主要看你的CPU核心数和能力。后面要把文件分片,分片过程会消耗大量CPU资源。然后开始封装扇区,接着开始准备提交数据,这几个过程对CPU要求都很大。下面开始生成proof证明,这里才会用到显卡加速,10GB的显存显卡,基本消耗20%左右。整个32GB数据完成整个流程需要5个多小时,还是看CPU的性能。最后定时提交fPOST提交到链上,这里占用内存会比较大,达到40多GB。

    📜Filecoin挖矿日记第三篇📜
    🟣如何设置显卡,并正常运行呢?🟣
    Filecoin挖矿只支持英伟达显卡,所以需要到英伟达官网安装显卡驱动。另外需要设置环境变量,挖矿程序才能识别显卡。
    所以我们修改/etc/profile文件,加入变量

    BELLMAN_CUSTOM_GPU=“”

    保存后,source /etc/profile,即可生效。

    📜Filecoin挖矿日记第四篇📜
    🟣代码层面分析挖矿全过程🟣
    当我们执行生成sector过程后,挖矿程序先会生成随机数文件,然后生成订单信息,2020-02-04T11:46:53.352+0800 INFO sectors sealing/garbage.go:40 Pledge 47, contains []
    这个日志信息显示开始封装扇区
    分装扇区需要对数据进行分片

    2020-02-04T11:52:49.896 INFO filecoin_proofs::pieces > verifying 64 pieces

    2020-02-04T11:54:45.380+0800 INFO sectors sealing/garbage.go:100 Deals for sector 47:

    2020-02-04T12:03:53.770+0800 INFO sectors sealing/sealing.go:124 Start sealing 47

    数据扇区封装完毕后,开始准备提交链上的过程

    2020-02-04T12:03:53.830 INFO filecoin::proofs::api > seal_pre_commit: start
    2020-02-04T12:03:53.831 INFO filecoin_proofs::api::seal > seal_pre_commit: start

    后面需要将生成DRG的数据结构

    2020-02-04T12:07:58.133 INFO storage_proofs::stacked::proof > encoding 256 windows
    2020-02-04T12:40:33.345 INFO storage_proofs::stacked::proof > building column hashes
    2020-02-04T14:15:04.093 INFO storage_proofs::stacked::proof > building tree_q
    数据格式转换完毕后,进行提交

    2020-02-04T15:34:31.581 INFO filecoin::proofs::api > seal_commit: start
    2020-02-04T15:34:31.581 INFO filecoin_proofs::api::seal > seal_commit:start

    提交完毕后,即开始生成共识证明过程

    2020-02-04T15:51:29.357 INFO storage_proofs::compound_proof > vanilla_proof:finish

    2020-02-04T15:51:37.969 INFO storage_proofs::compound_proof > snark_proof:start

    阅读更多
  • X
    阅读更多
  • X

    Lotus是什么

    构建(编译)和安装

    启动节点Daemon

    获取测试代币,创建矿工

    初始化矿工,开始挖矿

    数据存储

    搜索与检索

    总结

    Lotus是什么

    Lotus 是 Filecoin 分布式存储网络的实验性实现,也就是说 Lotus 是 Filecoin 规范的另一个实现,跟 go-filecoin 项目类似, 它也实现了钱包、矿工、存储证明、时空证明(PoST)、数据存储、检索等一系列的功能, 只不过 Lotus 是 Filecoin 规范的简单实现,而 go-filecoin 是一个更完整的实现。 那什么是 Filecoin 规范呢?简单的说就是白皮书里面提到的构建 DSN 网络的 Filecoin 协议,协议里面写明了如何实现一个全球性的分布式存储网络,并把全球的闲置存储空间利用起来。

    构建(编译)和安装

    1、安装 Go 1.13 以上的版本 2、安装依赖软件库 3、克隆项目到本地,并切换到项目根目录 4、编译源代码,并安装到本地 因需要从 Github 下载很多依赖组件, 导致整个过程时间有点长, 两种解决方案,第一种方案是上梯子,这种方式简单粗暴,有风险,不推荐;第二种方案是把编译环境搭建在现有的服务器上,编译完成之后把编译好的可执行文件拷贝到本地就可以了。 5、节点安装和配置 如果是初次运行 Lotus 的话,就不必进行任何初始化和配置,因为当前 Lotus 构建版本默认使用 build 目录中的创世区块和引导文件自动加入 Lotus 开发网络。 但是如果你之前有运行过 Lotus, 请执行下面的清理脚本:

    启动节点Daemon

    1、可以新打开一个终端窗口,检查是否已连接到网络: 2、接下来需要等待节点同步数据,可以通过以下方式跟踪同步状态: 会看到类似下图的返回信息,其中 height: 是当前同步的区块高度。如果同步完成了这个值会编程 0, 也可以去 https://lotus-metrics.kittyhawk.wtf/chain 查看当前开发网络最新区块高度和其他网络指标。 让人惊喜的是,笔者发现开发网络的统计最新区块出块时间指标显示的居然是中文,说明 Filecoin 协议实验室也意识到了大部分矿工来自中国,给协议实验室点个赞。

    获取测试代币,创建矿工

    获取测试代币的地址为 https://lotus-faucet.kittyhawk.wtf/ Lotus 获取开发网代币有两种方式,一种是 [Send Funds] 这个接口每次请求会给你的钱包地址充值 0.0000000005 个测试代币,并且为了防止薅羊毛,接口请求的次数是有限制的。每个 IP 每 5 分钟发出一次请求,初始并发次数为5,最大并发数为 20。 下面我们来看下当前网络创建一个矿工需要抵押多少代币:

    lotus state pledge-collateral
    21.719350748900198182
    21.7 个!!!也就是说,如果靠薅羊毛,你就是薅到明年,也不够你创建一个矿工。

    所以 Lotus 还提供了另外一种申请测试代币的方式:[Create Miner],就是直接申请一笔足够创建矿工的资金,同时帮你创建一个矿工。这个接口一个地址只能调用一次,每次调用费时大概 5 分钟,一般我们都是直接用这个接口去申请代币。

    初始化矿工,开始挖矿

    创建矿工成功之后,Faucet 页面会返回类似下面的指令。

    lotus-storage-miner init --actor=t0394 -owner=t3qtzwoevzlzzfbnovoj3gf3l62rlhx3elub5otw7oyalmorhgb6o3dfjcoaub5yzp7zoa53ynffgra7he5aja
    这条命令把矿工相应的信息提交到区块链,如果上链成功的话(这个过程将花费 30-60s),此命令应成功返回。

    下图是执行过程,主要是获取用于生成 PoSts 的参数到本地(/var/tmp/filecoin-proof-parameters)。 运行矿工,开始挖矿:

    lotus-storage-miner run
    你可以通过下面的方式查看矿工信息:

    ~$ lotus-storage-miner info
    Miner: t0394 # 矿工 ID
    Power: 0 / 888370369416 (0.00%) # 当前矿工的存储算力
    Sealed Sectors: 0 # 已经密封的扇区
    Sealing Sectors: 0 # 等待密封的扇区
    Pending Sectors: 0 # 正在追加的扇区
    Failed Sectors: 0 # 密封失败的扇区

    存储数据

    自动存储随机数据

    Lotus 允许我们密封一些随机数据以开始生成PoSts,这点如果要在 go-filecoin 网络实现的话,需要自己写额外的刷单脚本。

    ~$ lotus-storage-miner store-garbage
    1
    返回的是订单的序号,在单一节点是递增的(1,2,3…)。

    现在你可以使用矿工 ID 检查矿工存储算力和扇区使用情况: 查看全网算力

    $ lotus-storage-miner state power

    查看指定矿工的算力

    $ lotus-storage-miner state power <miner>

    查看指定矿工的扇区密封状态

    $ lotus-storage-miner state sectors <miner>
    存储指定的数据

    导入数据到节点 创建一个简单文件

    $ echo "Hi my name is $USER" > hello.txt

    导入数据

    $ lotus client import ./hello.txt
    bafkreifgxbfutlcrbfnwpk5gx6o5of4mpleqvbkt5thphvbnsg6mnasp3q

    查看当前节点的所有 <Data CID>

    $ lotus client local
    bafkreifgxbfutlcrbfnwpk5gx6o5of4mpleqvbkt5thphvbnsg6mnasp3q hello.txt 23 ok查看矿工订单价格
    $ lotus client query-ask t0394
    Ask: t0394
    Price per Byte: 3
    发起一笔存储交易

    $ lotus client deal bafkreifgxbfutlcrbfnwpk5gx6o5of4mpleqvbkt5thphvbnsg6mnasp3q t0394 3 10
    bafyreibcvxlzzfqgwic3tyuayndgctzszttnnyemlbn4e7us6iimcd3mvi
    Bash

    这里笔者发现一个问题,就是这里提交订单成功了,但是我在运行矿工的终端却发现了报错信息:

    2019-10-20T06:52:17.187+0800 INFO deals deals/handler.go:165 Deal bafyreibcvxlzzfqgwic3tyuayndgctzszttnnyemlbn4e7us6iimcd3mvi updated state to 2
    2019-10-20T06:52:17.196+0800 INFO deals deals/handler_states.go:155 waiting for channel message to appear on chain
    2019-10-20T06:52:17.217+0800 INFO deals deals/handler.go:165 Deal bafyreibcvxlzzfqgwic3tyuayndgctzszttnnyemlbn4e7us6iimcd3mvi updated state to 5
    2019-10-20T06:52:17.217+0800 ERROR deals deals/handler.go:167 deal bafyreibcvxlzzfqgwic3tyuayndgctzszttnnyemlbn4e7us6iimcd3mvi failed: minimum price: 690
    github.com/filecoin-project/lotus/chain/deals.(*Handler).onUpdated
    /var/www/go/src/lotus/chain/deals/handler.go:167
    github.com/filecoin-project/lotus/chain/deals.(*Handler).Run.func1
    /var/www/go/src/lotus/chain/deals/handler.go:135
    2019-10-20T06:52:17.219+0800 ERROR deals deals/handler_utils.go:30 deal bafyreibcvxlzzfqgwic3tyuayndgctzszttnnyemlbn4e7us6iimcd3mvi failed: minimum price: 690
    github.com/filecoin-project/lotus/chain/deals.(*Handler).failDeal
    /var/www/go/src/lotus/chain/deals/handler_utils.go:30
    github.com/filecoin-project/lotus/chain/deals.(*Handler).onUpdated
    /var/www/go/src/lotus/chain/deals/handler.go:168
    github.com/filecoin-project/lotus/chain/deals.(*Handler).Run.func1
    /var/www/go/src/lotus/chain/deals/handler.go:135
    Bash

    报错内容大概是交易的 Price 值太小了,最小为 690. 但是问题是我上面查询出来的明明是 3 ,既然有最小值怎么订单又是发送成功的。 关于这个问题我们工程师在 Lotus 的 GitHub 项目上创建了一个 issue,对这个问题有兴趣的同学可以跟踪一下,地址为: https://github.com/filecoin-project/lotus/issues/426 如果想知道数据数据密封的进度,再次执行 lotus-storage-miner info :

    ~$ lotus-storage-miner info
    Miner: t0394
    Power: 889192448 / 943248642952 (0.00%)
    Sealed Sectors: 63
    Sealing Sectors: 291
    Pending Sectors: 0
    Failed Sectors: 0
    下面我们简单分析一下 Lotus 挖矿的整个过程,由于 lotus-storage-miner run 打印了详细的日志信息,因此我们通过分析日志就可以清晰的知道整个挖矿的流程,具体做了哪些事情。

    2019-10-20T07:06:05.288+0800 INFO storageminer storage/miner.go:122 committing sector
    2019-10-20T07:08:22.128+0800 WARN storageminer storage/post.go:35 PoSts already running 8468
    2019-10-20T07:12:50.288+0800 INFO storageminer storage/miner.go:122 committing sector
    2019-10-20T07:16:03.681+0800 WARN storageminer storage/post.go:35 PoSts already running 8468
    2019-10-20T07:19:45.438+0800 INFO storageminer storage/miner.go:122 committing sector
    2019-10-20T07:21:49.554+0800 WARN storageminer storage/post.go:35 PoSts already running 8468
    2019-10-20T07:21:49.556+0800 INFO storageminer storage/post.go:121 running PoSt {"delayed-by": 0, "chain-random": "hRnfQ1MxjBRgWC99bvtufOEiMxt50/VB5jGOnartsNBVRqlTyGWWdmYcOYgkN8ahCDAh1EtjvvQhJiHn1tawX2JSVIUtc0LOJlSCm6C4ds5IhsCs5OvQfNO6XnBNERaI", "ppe": 8468, "height": 8448}
    2019-10-20T07:21:49.558+0800 WARN storageminer storage/post.go:35 PoSts already running 8468
    2019-10-20T07:24:16.683+0800 INFO storageminer storage/post.go:133 submitting PoSt {"pLen": 192, "elapsed": 147.127304159}
    2019-10-20T07:24:16.683+0800 INFO storageminer storage/post.go:155 mpush
    2019-10-20T07:24:16.704+0800 INFO storageminer storage/post.go:162 Waiting for post bafy2bzaced7iklxtorijackxgnnv7kwvgocz473sgcostj2i4ocretlm2z6f6 to appear on chain
    ...
    Bash

    1、矿工接收到客户端发送过来的数据包之后立即进行封包(sealing) 操作,完成封包之后进行 committing sector (提交打包好的 sector)

    2、运行时空证明(running PoSts)

    3请求将 PoSts 上链(Waiting for post bafxxx to appear on chain)

    4、上链成功,返回上链区块高度("height": 8448)

    下面截图可以让你看到一些更详细的信息 而且从日志中我们可以看出,我用的笔记本的封包速度大概是4分钟一个。 这个速度一般,而且 8 核的 CPU 资源几乎全被 Lotus 占满了。

    搜索与检索

    如果已将数据与矿工存储在网络中,则可以按CID搜索它: 通过 CID 搜索数据

    $ lotus client find <Data CID>
    LOCAL
    RETRIEVAL <miner>@<miner peerId>-<deal funds>-<size>
    从矿工那里检索数据:

    $ lotus client retrieve <Data CID> <outfile>

    比如检索我们刚刚存储的数据

    Lotus client retrieve bafkreifgxbfutlcrbfnwpk5gx6o5of4mpleqvbkt5thphvbnsg6mnasp3q hello.txt
    上面的指令将启动检索交易并将数据写入hello.txt。(此过程可能需要一些时间。)

    总结

    总体来说, Lotus 的整体挖矿体验比 go-filecoin 要好一个档次,可能是因为它是 轻量级 实现,整个流程体验下来不会卡壳。所以 Lotus 作为 Filecoin 的备用网络,让我们对 Filecoin 网络的健壮性又多了一些信心。 1、Lotus 的 API 完善程度很高,几乎不用通过统计页面,直接通过命令行工具就可以获取想要知道的整个网络信息。 2、Lotus 实现了多种扇区大小,因此具有许多不同存储配置的矿工都可以在网络上进行挖矿。之前我们用低配置的笔记本电脑在测试 go-filecoin 的时候每 30 分钟才能完成一个 sector,现在Lotus版本只需要 4 分钟。因为 Lotus 扇区小一些,也正因为如此,你能在很短时间内体验一次整个挖矿流程。 3、Lotus 的存储挖矿功能是作为一个单独的模块(lotus-storage-miner)实现的,因此高级矿工可以根据自己的特定硬件配置优化其挖矿过程(我们会针对此问题专门写一篇如何优化的文章,敬请关注)。 4、Lotus 还提供了Pond UI 作为CLI的替代,这对于那些不熟悉命令行操作的同学是非常友好的,直接通过图形界面完成上述操作。(针对此问题,我们后期也会专门写一篇如何使用 Pond 的教程,敬请关注)。

    阅读更多
  • X

    Lotus 的测试网的源代码编译只有三个文件 lotus, lotus-storage-miner, lotus-seal-worker。 其中 lotus 和 lotus-storage-miner 分别是区块链节点和矿工节点的启动程序, lotus-seal-worker 是数据密封节点的启动程序。在没有高配机器的情况下,我们可以使用 一台 Miner 节点 + N 台 Worker 节点来实现自己 上排行榜 的需求。

    闲话休说,下面我们就看看具体怎么搭建这个集群。

    配置方案
    配置方案:Master Miner 节点 x 1 + seal-worker 节点 x N
    Master Miner 节点:使用一台带 GPU 的大容量机器作为 miner 主节点,这机器主要做的工作是 add pieces 和提交 PoSt proving

    Seal Worker 节点: 多核 CPU 配上高速企业硬盘,以便可以增加 sealing 速度, 如果 CPU 的能力不强,可以使用 GPU 代替,效果更好。

    配置步骤
    在 master 矿工初始化之后,也就是在下面的脚本运行之后
    lotus-storage-miner init --actor=t01849 --owner=t3v3gwdujm35f6vwrv6x7utimbhu7s64hvto6m327xscsoyraj5dyzxom2bthormfd7e3imqnpabp7hp55tlfq
    (1) 修改矿工配置文档 vim .lotusstorage/config.toml

    [API]
    ListenAddress = "/ip4/{IP}/tcp/2345/http"
    Timeout = "30s"
    这里的 {IP} 是当前 master 节点的 ip 地址,默认是 127.0.0.1 这里你需要把它改成局域网或者公网 IP(如果你有静态 ip 的话), 如果你搞不清你是否需要外网访问,你就配置成 0.0.0.0

    如果所有 worker 节点都在一个网络的话,建议使用内网 IP,如果需要大量外网机器同时挖,则需要填写公网 IP

    (2) 启动 master 矿工

    BELLMAN_CUSTOM_GPU="GeForce RTX 2070 SUPER:2560" lotus-storage-miner run
    前面的变量是你 GPU 的配置信息,具体配置详情, 请参考: https://docs.lotu.sh/en+hardware-mining

    (3) 拷贝 master 节点的 /var/tmp/filecoin-proof-parameters, .lotusstorage/api 和 .lotusstorage/token 到 worker 节点, 同时拷贝 lotus-seal-worker 到 worker 节点

    (4) 运行 worker 节点

    nohup ./lotus-seal-worker run > miner.log &
    如果你的 worker 有 GPU 的话,则你可以启用 GPU 做复制证明

    BELLMAN_CUSTOM_GPU="GeForce RTX 2070 SUPER:2560" nohup ./lotus-seal-worker run > miner.log &
    启动成功会看到类似的信息

    INFO main lotus-seal-worker/sub.go:69 Waiting for new task
    这时你在 master 节点运行 lotus-storage-miner info 应该可以看到 remote worker

    (5) 接下来按照步骤 (4) 的方法启动 N 个 Worker 节点

    到此,整个集群就开始运行了,等你的 Miner 节点准备好密封数据(PreCommit),Worker 就会开始拉取数据计算了,计算完之后会 Push 回 Miner 节点。

    这里需要注意的是,Worker 计算完之后会 Push 11GB 数据回去,也就是说复制证明会计算 10 次,Master Miner 节点需要准备的磁盘空间与实际存储数据的 比值是 1:11,所以你得准备足够多的磁盘空间,以免磁盘空间不足导致矿工程序退出。不过这些 cache 数据再你完成 Proving 之后会删除大部分,只保留 2.1GB。

    阅读更多

Looks like your connection to Filecoin中文网 was lost, please wait while we try to reconnect.