FileCoin 挖矿教程 基本源码分析1

Posted weixin_46596227

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FileCoin 挖矿教程 基本源码分析1相关的知识,希望对你有一定的参考价值。

新手安装环境

Rust 编译工具

https://www.rust-lang.org/zh-CN/tools/install

Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux
系统,往往已经具备了 GCC 或 clang。如果你使用的是 macOS,需要安装 Xcode。如果你是用的是 Windows
操作系统,你需要安装 Visual Studio 2013 或以上的环境(需要 C/C++ 支持)以使用 MSVC 或安装 MinGW +
GCC 编译环境(Cygwin 还没有测试)。

如果你是windows平台,而且已经安装 MSVC (推荐),那么安装过程会非常的简单,输入 1 并回车,直接进入第二步。

如果你安装的是 MinGW,那么你需要输入 2 (自定义安装),然后系统会询问你 Default host triple? ,请将 default host triple 的 “x86_64-pc-windows-msvc” 改为 “x86_64-pc-windows-gnu” ,其他选项全部默认,直至安装完成。

检查是否成功安装

rustc -V        # 注意的大写的 V
cargo -V        # 注意的大写的 V

基础操作

创建代码项目

cargo new {此处填入项目名称}

编译项目

cargo build

运行项目

cargo run

测试运行

文件:src/main.rs

fn main() {
    println!("Hello, world!");
}

改成:

fn main() {
    let a = 1;
    let b = 2;
    println!("a is {},b is {}", a,b);
}

运行结果:

a is 1,b is 2

源码分析

Sector的数据层级在哪里

https://github.com/filecoin-project/rust-fil-proofs

Sector的数据处理分为11层,从上到下的话,上一层成为下一层的扩展(expansion)。

文件路径:\\filecoin-proofs\\src\\constants.rs

该处定义了各尺寸扇区的层级

pub static ref LAYERS: RwLock<HashMap<u64, usize>> = RwLock::new(
        [
            (SECTOR_SIZE_2_KIB, 2),
            (SECTOR_SIZE_4_KIB, 2),
            (SECTOR_SIZE_16_KIB, 2),
            (SECTOR_SIZE_32_KIB, 2),
            (SECTOR_SIZE_8_MIB, 2),
            (SECTOR_SIZE_16_MIB, 2),
            (SECTOR_SIZE_512_MIB, 2),
            (SECTOR_SIZE_1_GIB, 2),
            (SECTOR_SIZE_32_GIB, 11),
            (SECTOR_SIZE_64_GIB, 11),
        ]
        .iter()
        .copied()
        .collect()
    );

SDR节点切割

文件路径:\\storage-proofs-porep\\src\\stacked\\vanilla\\proof.rs

入口函数:generate_labels_for_encoding

一个Sector,再也不划分window。整个Sector,进行SDR的计算,并且计算11层。
Lotus的Sector处理的算法,从window SDR切换到了SDR。所谓的SDR,就是Stacked DRG (Depth Robust Graph,深度鲁棒图)。
计算SDR的过程,可以拆分为三步,放在后面介绍。
但是,在计算SDR之前,整个Sector,每32个字节,分割成一个个的节点(node)。
为什么要分割成节点,因为DRG。
有了节点,才能确定节点和节点之间的关系。

细节详见下回分析!

以上是关于FileCoin 挖矿教程 基本源码分析1的主要内容,如果未能解决你的问题,请参考以下文章

FileCoin 挖矿教程 Lotus 源码大致的结构目录

FILE挖矿教程

FileCoin 挖矿教程之二:钱包设置的详细说明

FileCoin 挖矿教程之三:发送与接收 FIL

FileCoin 挖矿教程之四:日常维护

FileCoin挖矿教程之六:自定义存储布局