filecoin介绍
BingFile 管理系统
filecoin 项目介绍
IPFS、Filecoin和lotus的介绍及其关系
IPFS
IPFS(全名为InterPlanetary File System,中文名翻译成星际文件系统或者分布式文件系统),是一种硬盘共享的互联网底层协议。它的创始人是Juan Benet(胡安·贝内特), 于2015年5月上线。
IPFS创建的目的:HTTP是中心化,每次获取文件都需要从中心化的服务器下载,所以在某种层度上会出现速度慢、效率低和成本高。为了解决HTTP协议的不足,IPFS使用P2P模式来下载所需文件,将文件分割成小块滨崎可以同时在多个服务器下载。因此IPFS的目的是取代HTTP协议,使互联网更加美好。
ipfs官网:https://ipfs.io/
ifps开源代码:https://github.com/ipfs/
Filecoin
Filecoin是一个项目,它通过IPFS技术和区块链技术来建立的一个去中心化的存储市场。
Filecoin 是一种将文件存储在互联网上的点对点网络,具有内置的经济激励措施以确保文件随着时间的推移可靠地存储。
Filecoin包括区块链和FIL。矿工可以通过存储文件或区块链上出块来获取FIL。Filecoin的区块链上记录着不可篡改的信息。
Filecoin的主网于2020年10月15日上市,不是上线哦。因为它原本就早就上线了,只是一直没上市。原本叫测试网,上市那天直接改成主网,区块链上的信息没有清除,还保留着。所以,如果你是2020年10月15日之前加入Filecoin,可以免费获取FIL。
Filecoin官网:https://filecoin.io/zh-cn/
官方对Filecoin的介绍:https://docs.filecoin.io/about-filecoin/what-is-filecoin/
Filecoin官方区块链浏览器:https://stats.filecoin.io/
有些第三方的Filecoin区块链浏览器写得比官方好,如
https://filfox.info/zh
https://filscan.io/
lotus
Filecoin 的实现包括go-filecoin,lotus等。目前成功实现的是lotus。
lotus是Filecoin 协议规范的最简且具有实验性的实现,用 Go 语言编写。
如果你想加入Filecoin的区块链,必须通过lotus。
lotus开源代码:https://github.com/filecoin-project/lotus
lotus官方文档:https://docs.filecoin.io/get-started/lotus/
(之前的文档是https://lotu.sh/,不过现在已经弃用了)
lotus 工具介绍
- lotus: 主要程序
- lotus-miner: 矿工程序
- lotus-worker: 矿工子程序
- lotus-seed: 初始化扇区工具
lotus简介:
filecoin项目主程序,下载证明参数和启动守护进程。
lotus-worker简介:
Worker 并不是必须的,miner 自带就有一个 worker, worker 能做的, miner 都能做,worker 的唯一作用只是为了分担 miner 的任务罢了。 对于迷你旷工(比如只有一台机器的),就完全不需要启动 worker 了,有一个 miner 就完全足够了,但对于小集群,或者大集群,worker 就是必须的了,因此,这一节讲述如何使用 worker。
lotus-seed简介:
初始化扇区, 用作本地自己创建的网络需要启动 新建创世节点。跑主网的时候不需要你来启动创世节点,因为创世节点已经由官方启动了。
下载证明参数
1 | # 2KiB 表示我们要下载的证明参数是 2KiB 大小的扇区所需要的证明参数 |
下载证明参数的过程可能会比较慢,因为证明参数放在国外的服务器,如果你有代理,可以挂上代理再下载。 此外,也可以从 JDCloud 上面下载,你需要做的事情就是在执行上述命令之前设置一下 JDCloud 的代理:
1 | # 这个地址下载的参数有问题,请不要再设置这个环境变量,直接下载即可 |
filecoin 监控系统
磁盘采集选项
计算方法:先读取/proc/mounts拿到所有挂载点,然后通过syscall.Statfs_t拿到blocks和inode的使用情况。每个metric都会附加一组tag描述,类似mount=$mount,fstype=$fstype,其中$mount是挂载点,比如/home,$fstype是文件系统,比如ext4。
- df.bytes.free:磁盘可用量,int64
- df.bytes.free.percent:磁盘可用量占总量的百分比,float64,比如32.1
- df.bytes.total:磁盘总大小,int64
- df.bytes.used:磁盘已用大小,int64
- df.bytes.used.percent:磁盘已用大小占总量的百分比,float64
- df.inodes.total:inode总数,int64
- df.inodes.free:可用inode数目,int64
- df.inodes.free.percent:可用inode占比,float64
- df.inodes.used:已用的inode数据,int64
- df.inodes.used.percent:已用inode占比,float64
megacli工具输出
使用 megacli 工具读取 RAID 相关信息,每个metric都会附件一组tag描述,用来标明所属PD或者 VD,PD格式为PD=Enclosure_ID:SLOT_ID,比如PD=32:0表明第一块磁盘 ,VD=0 表明第一个逻辑磁盘。
- sys.disk.lsiraid.pd.Media_Error_Count:这个及以下三个指标目前仅作为数据收集,不一定意味磁盘损坏(只是表示损坏概率变大)
- sys.disk.lsiraid.pd.Other_Error_Count
- sys.disk.lsiraid.pd.Predictive_Failure_Count
- sys.disk.lsiraid.pd.Drive_Temperature
- sys.disk.lsiraid.pd.Firmware_state:如果值不为0,则此物理磁盘出现问题
- sys.disk.lsiraid.vd.cache_policy:如果值不为0,表示此逻辑磁盘缓存策略和设置不符
- sys.disk.lsiraid.vd.state: 如果值不为0,表示此逻辑磁盘出现问题
smart工具输出
使用 smartctl 工具读取磁盘 SMART 信息,目前所有指标仅作为数据收集,不一定意味磁盘损坏(只是表示概率变大),每个metric都会有一组tag描述,表明盘符,例如device=/dev/sda。
- sys.disk.smart.Reallocated_Sector_Ct
- sys.disk.smart.Spin_Retry_Count
- sys.disk.smart.Reallocated_Event_Count
- sys.disk.smart.Current_Pending_Sector
- sys.disk.smart.Offline_Uncorrectable
- sys.disk.smart.Temperature_Celsius
分区读写监控
测试所有已挂载分区是否可读写,每个metric都会有一组tag描述,表示挂载点,比如mount=/home
- sys.disk.rw: 如果值不为0,表明此分区读写出现问题
IO相关采集项
计算方法:每秒采集一次/proc/diskstats,计算差值,都是计数器类型的。每个metric都会有一组tag描述,形如device=$device,用来表示具体的设备,比如sda1、sdb。用户可以参考iostat的帮助文档来理解具体的metric含义。
- disk.io.ios_in_progress:当前正在运行的实际 I/O 请求数。
- disk.io.msec_read:所有读取花费的总毫秒数。
- disk.io.msec_total:ios_in_progress >= 1 的时间量。
- disk.io.msec_weighted_total:衡量最近的 I/O 完成时间和块。
- disk.io.msec_write:所有写入花费的总毫秒数。
- disk.io.read_merged:相邻的读取请求合并在一个请求中。
- disk.io.read_requests:Total number of reads completed successfully.
- disk.io.read_sectors:Total number of sectors read successfully.
- disk.io.write_merged:Adjacent write requests merged in a single req.
- disk.io.write_requests:total number of writes completed successfully.
- disk.io.write_sectors:total number of sectors written successfully.
- disk.io.read_bytes:单位是byte的数字
- disk.io.write_bytes:单位是byte的数字
- disk.io.avgrq_sz:下面几个值就是iostat -x 1看到的值
- disk.io.avgqu-sz
- disk.io.await
- disk.io.svctm
- disk.io.util:是个百分数,比如56.43,表示56.43%
网络相关采集项
计算方法:读取/proc/net/dev的内容,每个metric都附加有一组tag,形如iface=$iface,标明具体那个interface,比如eth0。metric中带有in的表示流入情况,out表示流出情况,total是总量in+out,支持的metric如下:
- net.if.in.bytes
- net.if.in.compressed
- net.if.in.dropped
- net.if.in.errors
- net.if.in.fifo.errs
- net.if.in.frame.errs
- net.if.in.multicast
- net.if.in.packets
- net.if.out.bytes
- net.if.out.carrier.errs
- net.if.out.collisions
- net.if.out.compressed
- net.if.out.dropped
- net.if.out.errors
- net.if.out.fifo.errs
- net.if.out.packets
- net.if.total.bytes
- net.if.total.dropped
- net.if.total.errors
- net.if.total.packets
进程资源监控
- process.cpu.all:进程和它的子进程使用的sys+user的cpu,单位是jiffies
- process.cpu.sys:进程和它的子进程使用的sys cpu,单位是jiffies
- process.cpu.user:进程和它的子进程使用的user cpu,单位是jiffies
- process.swap:进程和它的子进程使用的swap,单位是page
- process.fd:进程使用的文件描述符个数
- process.mem:进程占用内存,单位byte
filecoin 后台系统(bingFile)
功能模块分解
算力管理
支持市场主流X86和ARM CPU指令集服务器。
支持主流鲲鹏,飞腾等国产化服务器。
任务管理
支持矿机节点安装,重启,下架,更新,登入等操作。
用户管理
支持对系统用户进行管理,包含新增、查询、编辑、禁用启用等,可以根据业务需要配置用户对系统的操作权限。
数据总览(大屏展示)
总览大屏,是系统的总体运行情况和资源使用情况信息展示界面,支持运行任务统计和信息展示、处理数据量统计展示、集群节点统计信息展示、算力单元信息统计展示、负载信息统计展示等。
资源监控
支持对系统资源情况的实时监测,包含CPU、内存、GPU、DISK等资源,支持对钱包,fil币池展示,支持对各类资源已分配和已使用情况的统计展示,支持对集群节点数量、状态等信息的查看。