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的主要内容,如果未能解决你的问题,请参考以下文章