欢迎大家来到第二章,经过 前章《【Filecoin源码仓库全解析】第一章:搭建Filecoin测试节点》的内容阅读后,我们应该已经具备在自己的机器上部署Filecoin测试节点的能力,本章我们将介绍Filecoin节点信息,用户账户钱包,矿工角色等相关概念,以及如何获取FIL Mock代币。
2.1 前章问题补充
感谢之前一些读者给的建议,有一些没有叙述清楚的地方,这边就上一章问题补充一下:
- 之前大部分的依赖安装流程需要科学上网,gx在编译时候默认拉取的是源自https://go.googlesource.com/...。
- 对于一些使用linux系统的朋友:其实linux与macOS系统差异并不大,如果觉得源码编译环节比较繁琐,可以直接使用官方发布的filecoin-Linux.tar.gz release包进行后续操作:
下载地址:https://github.com/filecoin-p...
#传输至linux远程机器
scp Downloads/filecoin-Linux.tar.gz user_name@remote_server_ip:/user_name
#解压
tar -zxvf filecoin-Linux.tar.gz
#运行节点程序
./go-filecoin *
注意:官方的release是2月13号发布的,并不是最新的包,可能在后续操作中,与官方文档在一些细节地方会有出入。
2.2 区分节点ID、账户、钱包地址、矿工ID、内容ID
在创建账户钱包,获取FIL Mock代币之前,我们需要重点区分节点ID、账户、钱包地址和矿工ID这几个概念意义,以及其所对应的标识:
如图所示,它们的层级关系一目了然:
在第一章中,我们在自己的主机上安装了go-filecoin的客户端,你可以理解为这个客户端是用来初始化、启动和管理节点的应用程序。
没有网络拓扑,何来节点的概念?
当我们启动daemon,开放自身主机端口,发送网络请求,加入Filecoin对等网络之后,我们才能被称为是一个Filecoin节点(如果之前了解过区块链,应该很好理解)。
下面分别集中介绍一下其他几个概念:
节点ID
节点(Node)的职能包含了两重角色,四重身份,
其中有三种不同角色的矿工身份属性:
1)存储使用方(user)
2)矿工(miner:存储提供、检索、修复)
节点ID是节点的唯一标识,类似姓名(永不重复)
查看方式:
go-filecoin daemon
go-filecoin id
用途:
主要用于节点的查找发现、节点与节点之间的通信,节点日志Trace等。
账户ID
账户(account)是无论哪一重角色都需要的基本属性,账户ID和节点ID呈一一对应关系,和钱包地址一对多关系(即一个节点账户下,可存在多个钱包地址),直接和交易FIL Balance挂钩,由节点自动初始化生成。
钱包地址
钱包地址:顾名思义,类似银行卡卡号,是区块链系统中必不可少的一环,一般是非对称加密的公钥。这里钱包地址是
由节点自动初始化生成,由go-filecoin wallet *
管理,如下图所示,地址信息十分重要,查询余额,导出和导入都需要。
钱包地址在一个账户下,可支持新增,导入,非常灵活
同时,我们也可以通过go-filecoin wallet addrs *
或在.filecoin/config.json下,查看、管理和配置钱包地址的相关信息。
矿工ID
与账户钱包不同,矿工(Miner)相关信息和配置并不会在部署好Filecoin节点后自动创建,需要通过后面miner创建的命令手动选择:
go-filecoin miner create 10 100 --price=0 --limit=1000 --peerid `go-filecoin id | jq -r '.ID'`
且通过--peerid go-filecoin id | jq -r '.ID'
的后缀参数可以看出,矿工ID与节点ID存在一一对应关系,节点ID将参与矿工ID的生成。
内容ID
内容ID也叫CID,与IPFS中所强调的一样,在Filecoin网络中将为每份文件数据生成唯一的CID,这是为了方便Merkle去重以及直接通过内容快速索引数据(IPFS与Filecoin数据传输协议层的精髓),在后续存储需求方的使用操作中,我们就会用到。这也是未来基于Filecoin编写商业应用、迁移自身业务系统数据的核心键值对数据。
2.3 创建账户钱包
默认生成
节点在初始化过程中,将自动为我们生成一个defaultAddress,我们可以在节点配置文件中可以查看到:
vim ~/.filecoin/config.json
"wallet":{
"defaultAddress":"fcq3t...29"
},
创建新的钱包
go-filecoin wallet addrs new
导出节点钱包
go-filecoin wallet export <address>
导入其他钱包
go-filecoin wallet import <wallet_file>
2.4 获取FIL Mock代币
FIL代币的获取一直是很多人关心的问题,这节我们详细来看看FIL代币的一些重点问题:
FIL Mock
Mock代表假数据、纯测试。
目前因为Filecoin处于公测阶段,这一阶段内,我们所能接触到的FIL代币基本都属于FIL Mock,不存在真实的Token权益价值,仅供测试使用,Filecoin正式上线前肯定将重新删档清零。
大家不要频繁撸羊毛,无意义,且测试网机房资源部署不多,压力大,别添乱了。
FIL 代币份额分布与职能
FIL代币的份额一直是很多人关心的问题,目前的FIL的份额分配比如下:
总数:20亿枚(估值25.7亿美金)
-
投资人拥有量:10%
- 第一批约5200万美金,成本:0.75美元/FIL
- 第二批约2.05亿美金,成本:1-5美元/FIL
- 协议实验室团队:15%
- 基金会:5%
- 矿工预留量:70%
FIL Faucet (水龙头)
FIL Faucet是一个代币水龙头,可以让一些早期参与的Filecoin节点用户提前获取一定数量的FIL代币参与市场活动:
- 存储需求方:用户需要在他们的帐户中使用FIL来与矿工进行存储交易。
- 矿工:使用FIL作为抵押品,参与挖矿。
目前因为Filecoin处于公测阶段,这部分Token基本都属于FIL Mock代币,不存在真实的Token权益价值,仅供测试使用,Filecoin正式上线前肯定将重新删档清零。大家不要频繁撸羊毛了,无意义,且测试网机房资源部署不多,压力大,不稳定。
小编推测,当Filecoin正式上线后,依然会存在FIL Faucet,届时会有一个更全面的发放策略且发放后的代币肯定具有真实Token价值,将从基金会(5%)或者团队(15%)的部分份额之中解锁。
通过Faucet获取FIL
可以使用两种方式,而且都比较简易方便,直奔主题。
不像某些区块链项目,还需要帮忙转发扩散到推特、微博,等一些平台,验证回链后才能获取。
首先,需要通过2.3节中的步骤获取到我们的钱包地址数据,形如:fcq3t...29
1)可视化表单
访问:http://user.kittyhawk.wtf:9797,直接提交钱包地址表单即可:
2)命令行发送Curl请求
当然也可以直接在命令行内解决,更加高效,
获取钱包地址,并赋值shell变量:
export WALLET_ADDR=`go-filecoin wallet addrs ls`
通过curl的形式post钱包地址,请求表单数据,同时输出反馈值 Message_CID,方便遇到问题trace
echo MESSAGE_CID=`curl -X POST -F "target=${WALLET_ADDR}" "http://user.kittyhawk.wtf:9797/tap" | cut -d" " -f4`
过几分钟后,验证是否发放FIL Mock代币:
go-filecoin wallet balance ${WALLET_ADDR}
成功如下图所示,每个账户将拿到1000枚FIL Mock代币,且每隔24小时都能重新获取一次,不用担心不够用:
至此,我们应该可以通过《【Filecoin源码仓库全解析】第二章:如何创建账户钱包,获取FIL Mock代币》的学习,了解并清楚Filecoin中钱包账户,FIL代币的概念和关系,并顺利获取到自己的FIL Mock代币,准备参与接下来的矿工挖矿和存储数据等操作了,期望帮正在电脑前研究Filecoin源码仓库的你,少走弯路!
下一章,我们将介绍 《【Filecoin源码仓库全解析】第三章:存储提供方(矿工)的配置操作》
参考文献
本章赞助品牌:
科极星球 坐标中国深圳,是国内第一批IPFS和Filecoin生态布道者。科极星球团队一直专注于研发、生产、销售基于IPFS的硬件设备以及IPFS生态应用,为IPFS生态体系的不同层次参与者提供包括矿机、矿场、托管、数据支持、应用开发、知识服务等在内的全方位立体化服务;目前已经部署北上广深港及周边多个矿场,并率先推出存储矿池CSPOOL,产品和服务已经覆盖包括日韩、欧美、东南亚在内全球各地。
感谢 科极星球 对嘉乐SOHO的原创内容提供支持。
联系作者:
深夜写作,不免有不足之处,欢迎指正和更多讨论,可私信微信公众号:jialesoho,或者加我微信:daijiale6239,如果觉得对您有帮助,可以帮点击好看推广和打赏支持噢,感激不尽!
(识别图中二维码,关注嘉乐SOHO微信公众号)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。