Pi Network及目前大家看到的公有区块链都是去中心化、分布式的系统,它的运算、储存都是仰赖全球成千上万的机器,我们称之为节点(不过在封闭式主网的阶段,Pi Network仍是中心化,因为官方掌控了所有的节点)。
比较一下白皮书中对于节点的描述,超级节点(Super Node)跟节点(Node)的差异在于超级节点参与共识,所以超级节点就是Stellar Core里面的Validador,节点就是Watcher。
在封闭式主网的阶段,所有先锋的节点都运行在测试网上,而且是Watcher,主要是与Horizon一起运行,用于提交交易和观察账本变化,并不参与验证或历史发布。 但此架构自从Horizon 2.0起已经被弃用,估计开放式主网还会有所调整。
这里要澄清一下,Pi 节点并不是用来「挖矿」的,Pi Network 也不是用手机挖矿。 所谓的「手机挖矿」只是「营销话术」,因为比特币是全世界第一个加密货币,「挖矿」一词也是出自于比特币,讲「手机挖矿」只是为了吸引人们的注意力,也让大众更容易理解。
我们来看比特币是怎么“铸造”出来的? 比特币大约每十分钟产生一个新的区块,如果观察块的内容(例如 https://www.blockchain.com/btc/block/000000000000000000063091dccd48774d7f0f02714d850bc96e4cefd8e8c612 ),会发现每一个区块都有Miner, 也就是产生这个区块的人,而区块中的第一笔交易就是产生新的比特币给Miner。 因为有这样的诱因,所以大家才会抢着挖矿。
Pi币的总量是1000亿,其中650亿分配给全世界的先锋(就是我们啦)。 这些Pi币已经在2021/12/29铸造出来了,存放在GBQQ这个钱包内(同样可以在主网区块链查到 https://minepi.com/blockexplorer/block/445170 )。 因为没有大家抢着要「铸币」的「挖矿」过程,也就不会落入无止尽的矿机军备竞赛。
我们每天按闪电,就跟麦当劳APP签到赚积分、虾皮APP签到集虾币是一样的。 这样的行为一方面是确定我们是真人,另一方面是要维持先锋的黏着度。 它们都跟区块链没有任何关系,都不是去中心化,只是在官方数据库中的一个点数。
BUT! 但是! 一旦我们通过Pi Network的KYC(身份验证),有一个迁移主网的动作,让GBQQ钱包(更准确地说是GABT钱包,由它来建立先锋的钱包,以及锁仓。 细节请参考 https://yuanrui919.github.io/cb )的Pi币转到我们在Pi Network主网的钱包内,到时候就是真正的区块链技术、 加密货币、去中心化。
所以如果你能理解麦当劳APP签到赚积分这件事,就应该也理解Pi Network点闪电就能挖Pi。 差别在于麦当劳的积分只能让你吃一顿汉堡,而Pi有机会成为全球最广泛流通使用的加密货币。
Pi节点要安装两个软件:Pi Node Software与Docker Desktop。
Pi Node Software绑定了Pi帐号,让你在电脑上也可以使用手机APP的部分功能(但点闪电只能在手机APP上),以及在网络上能识别这台节点是属于哪个Pi账号,以利计算奖励。 还有一个很重要的功能:让你很容易的执行Stellar Core。
Stellar Core又是什么? Pi Network采用的共识协议是「恒星共识协议 (Stellar Consensus Protocol, SCP)」,SCP的节点程序就叫做Stellar Core。
因为不是每个人都有足够的技术能力可以自行安装与设定Stellar Core,所以Pi核心团队想了一个办法,将相关的程序与设定都打包好,做成一个image文件,只要安装了Docker Desktop这个虚拟化软件,就能执行。
Docker Desktop是一个虚拟化软件,它加载image文件,建立一个Container(容器)。 Container就是一个执行的应用程序(此例是Stellar Core)加上执行它的简易版Linux环境( 包括root用户权限、程序空间、用户空间和网络空间等)。
所以Pi Node Software也管理了Docker Desktop部分功能,让下载image档、建立/启动/停止Container等作业,变成只要按一下滑鼠就能轻松完成。
从Troubleshooting画面可以看到有PortsChecker及Consensus两个container。
这两者分别就是pi-consensus (Consensus container)与stellar-dummy (PortsChecker container)。
而它们的image档是ese7en/node-port-test (PortsChecker container)与pinetwork/pi-node-docker ( Consensus container)。
pi-consensus container (Consensus container)就是Stellar Core,SCP的节点程序。 stellar-dummy container (PortsChecker container)则是测试Port有没有开的(烂)工具,有没有它都无所谓。
Troubleshooting的container状态有三种:
l absent:不存在
l running:执行中
l exited:未执行
如果你从未执行过「Check now」,就不会有stellar-dummy container,状态会是absent,这是正常的,不用理会它。 它执行几秒钟后也会自动停止,所以状态通常不是absent就是exited。
stellar-dummy container跟pi-consensus container因为用到相同的port,所以也不能同时执行。 「Check now」其实有提醒,但大部分人可能都没注意到。
如前面所述,Pi Node Software管理了下载image文件、建立container的工作,但image文件也是可以手动下载,只要在命令提示字符(CMD)执行以下指令:
docker pull pinetwork/pi-node-docker
docker pull ese7en/node-port-test
但是container就不建议手动建立了,因为有一些隐藏的参数,所以还是老实点让Pi Node Software来管理。 但如果你真的手很痒,可以参考这一篇 https://yuanrui919.github.io/changevolume/ 。
这是5台节点的网络流量统计,平时的状况下,最低速率的光世代16M/3M方案就可以满足节点需求。
只有在catchup的时候,向History Archives下载历史资料时才会有瞬间的大流量,但它对网速需求仍不高,即使网速慢一点也没关系,顶多就是catchup时间久一点而已。
Pi节点需要安装Docker Desktop,Docker Desktop需要安装WSL 2 (Windows Subsystem for Linux 2),WSL会使用Hyper-V架构来启用其虚拟化,但并不需要安装完整版本的「Hyper-V」(Windows Home没有此功能) ,如果只使用WSL2的话,只需要安装「虚拟机平台」就可以了。
但是这会遇到一个“致命”问题,那就是Hyper-V不能与VirtualBox和VMware共存。 原因是Hyper-V的虚拟方式不一样,开启Hyper-V后会将用户的桌面系统给虚拟化,用户的桌面系统就会成为Hyper-V的虚拟系统,而Hyper-V的虚拟系统是不允许再开虚拟机的,因此开启Hyper-V后VirtualBox和VMware就不能执行。 其他手机模拟器也是相同原因。
VirtualBox 6中新增了利用Hyper-V的API进行虚拟化系统,由于这个功能还是实验性的功能,所以没有现成的GUI按钮或接口开启这个功能,需要使用命令行开启。
#指定VirtualBox下的虚拟系统开启这个功能
VBoxManage setextradata “<虚拟机名字>” "VBoxInternal/NEM/UseRing0Runloop" 0
#或指定VirtualBox所有虚拟系统开启
VBoxManage setextradata global "VBoxInternal/NEM/UseRing0Runloop" 0
但经我实测,VirtualBox 6.1.32虽然可以执行,效能也会大打折扣。 至于VMware跟手机模拟器我就没测试了。
另外一提,节点可以使用VMware的虚拟机,只要勾选Processors的「Virtualize Intel VT-x/EPT or AMD-v/RVI 选项即可。
本站(Picn.cc)文章与教程皆为网络搜集和个人分享,并非代表Pi Network官方言论。如有误,望广大Pi友指正。
还没有评论,来说两句吧...