一、社区迫切需要一份给技术小白用的NKN挖矿教程
最近NKN测试网开放实验挖矿以后,在NKN社区引起巨大反响,一度NKN测试网络中的节点总数超过4000个,而NKN团队自己部署的节点数量只有230节点。社区挖矿节点占总数的94.5%。这足以见得NKN实验挖矿的火爆,测试网节点数量和地理位置可以通过这里(http://testnet.nkn.org/network)进行查询,如图1所示。然而,很多并不了解编程的社区成员曾多次问我是否有一种更为简单,友好,甚至傻瓜式的方法来参与NKN测试网网络挖矿呢?答案是:必须的!NKN开发的新一代挖矿算法,不像比特币和以太坊那样使用能源消耗型的工作量证明(PoW)。 NKN专注在网络数据传输领域,所以实现了取样活跃信道正在传输数据作为工作量证明,实现依靠数据传输能力的中继证明(PoR)机制。这是一种全新的有用的工作量证明,有利于鼓励社区共享共建新型的网络基础设施。所以,NKN的矿机设备可以非常广泛,甚至在简单的树莓派开发板上稍作配置都可以挖矿。而本文旨在提供一种极为简单,容易上手的方法,可以在远程云服务器(Cloud Servers)/虚拟服务器(VPS)上, 短时间快速部署大量NKN矿机,构成小规模的矿场,参与到NKN测试网挖矿当中来。虽然,这种方法并不局限于某一种云计算平台上部署NKN节点,例如:亚马逊AWS、谷歌云、阿里云、腾讯云等,但是为了保证任何不懂编程的人都能来参与,我将介绍一种亲测可用的方法在Digital Ocean平台上,5分钟内创建自己NKN矿池实现全自动无人值守的NKN挖矿。
二、为什么NKN的挖矿和传统PoW不同
在我们开始介绍如何快速配置NKN矿池之前,最好通过一段视频了解一下NKN新型挖矿的原理:
NKN主网是开放的数据传输公链,参与挖矿无需任何许可。但是因为测试网正在开发阶段,所以,目前需要一定准入机制来参与实验挖矿一篇开发人员了解网络节点构成,便于定位出现的问题。也就是说,在您正式开始NKN实验挖矿之前需要联系NKN团队,请求将矿机的公网IP加入ag白名单。在NKN网络中,客户端将支付NKN通证以在NKN网络上传输数据。NKN在数据传输路径上为所有帮助客户端传输数据的转发节点创建一条签名链。签名链是由数据转发节点依次签名,并在NKN数据包中不断记录转发。
三、什么是DigitalOcean
DigitalOcean是一个云平台,允许用户通过创建多个云服务器。每一个云服务器都称之为Droplet,可以配置为一台符合特定规格的服务器主机。根据价格不同,用户可以选择不同的计算能力,网路连接和存储能力,以及每台服务器上要安装的操作系统。 DigitalOcean的结算非常简单 – 用户只需支付Droplet服务器存在的时间,也就说删除Droplet就不会计费。 最低配置的Droplet就可以满足NKN挖矿的需要,其价格是5美元/月(或0.007美元/小时)。通过(https://m.do.co/c/b563e65bce71)注册最低配5美元/月Droplet可以获得10美元的余额返还。
在众多云平台中,本文采用 DigitalOcean进行讲解。首先是因为NKN社区开发者ChrisT在上面已经有很多开发案例,比较方便社区成员之间沟通交流这种基于VPS的NKN挖矿方法。其此,DigitalOcean具有图形化操作界面,简洁易用,非常适合非技术成员上手配置。最后, DigitalOcean的服务可以“按使用付费”的。也就说,当用户不想挖矿时删掉已经部署上矿机的Droplet,用户DigitalOcean账户里面的余额并不会减少。转发节点按规则分配客户端支付的费用,并有机会获得记账权来生产新的区块从而获得系统奖励。每个NKN区块都包含多个签名链交易,并且每个节点都可以参与多个签名链交易。
四、挖矿前需要准备什么?
你只需要准备一个DigitalOcean账号和一个类似SSH终端的软件,例如:PuTTY。
· Digital Ocean账号注册
在我们开始配置矿池里面的第一台矿机之前,必须准备好一个Digital Ocean账户, 然后设置一个Droplet云服务器。
登陆(https://m.do.co/c/b563e65bce71), 按照图2所示选择直接登陆DigitalOcean账户或者新注册一个账户
按照图3和图4依次输入用户名、Email邮箱、自己创建的密码,最后点击“Sign Up”进行注册。在点击注册按钮后,会进入DigitalOcean页面提示有一封注册确认邮件发送到你的注册Email邮箱中。这时你需要登陆自己的Email邮箱,找到那个确认邮件,点击邮件里面的注册链接来确认邮件地址以完成DigitalOcean的账户注册过程。邮件里面的链接会直接跳转到DigitalOcean账户网页要求填写付费信息。您需要绑定自己的信用卡,或绑定Paypal(贝宝)账户。这个过程仅为您的帐户添加付款方式。在您开始使用服务之前,DigitalOcean不会向您收费。在完成最低充值5美元充值之后就可以使用了。
· 下载安装Putty SSH终端软件
可以根据您自己的计算机操作系统选择合适的Putty安装文件,其下载链接如下:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
MSI Windows安装程序
32-bit: putty-0.70-installer.msi
64-bit: putty-64bit-0.70-installer.msi
Unix版本源代码包
.tar.gz: putty-0.70.tar.gz
五、配置Droplet云服务器
在完成DigitalOcean账号充值和安装完Putty终端工具后,我们就可以开始配置一台Droplet云服务器了。如图5 所示, 点击充值后的账户名称,选择页面右上角的绿色“Create”菜单,选择第一项“Droplets”,单击就可以创建一个用于挖矿的Droplet云服务器。
在图5完成后,下拉页面可以看到下面的配置选项,我们这里只需要对如下4个选项进行配置即可, 如图6所示。
选择Linux镜像版本(CentOS 7.5 X64)
选择云服务器配置 (最低配置)
选择数据中心所在地区(随意选择,无要求)
输入主机名称,创建云服务器 (随意设置,无要求)
如图6所示,我们需要选择CentOS的Linux镜像,版本为7.5 x64。 接下来配置硬件参数,如图7所示。本身NKN矿机因为独特的算法设计,对于硬件要求极低,所以,我们可以选择DigitalOcean所能提供的最低配置即可,也就是1GB内存, 1vCPU, 25GB的固态硬盘。这样可以控制NKN试验网的挖矿成本,每台云服务器每月5美金。因为NKN矿机可以设置成为7X24小时无人值守挖矿,所以折合每小时的挖矿成本为7美厘,约合人民币每小时4分7厘。
如图8所示,DigitalOcean的数据中心分布在全球7个国家,所以当您要创建一个Droplet云服务器时需要选择其所在的数据中心。对于NKN挖矿来说,本身就是一个全球参与的开源社区活动,对于物理位置选择没有任何要求。
在完成以上配置以后,一个Droplet云服务器配置就基本完成,只需要按照如图9,随意输入一个主机名字用以区分后续创建的多个云服务器即可。
在点击“Create” 按钮创建Droplet云服务器后,界面会切换为该服务器的安装和配置进度条,一般只需要等待十几秒钟待其完成就可以获得一个被分配的该服务器的公网IP地址,如图10所示。这个公网IP地址将是后续NKN测试网矿机配置页面的网页地址,请记住并保留好。
到此为止,我们就完成了一台Droplet云服务器的配置工作,接下来就是在这个云服务器上安装矿机。原则上是一个Droplet可以安装一台NKN测试网矿机。不过,Digital Ocean的一个账户可以配置很多个Droplet云服务器,这样就可以安装多台NKN矿机,组建自己私有的一个NKN测试网微矿池。
六、安装自己第一台NKN矿机
当您完成Droplet云服务器配置以后,会在您的注册邮箱里收到一封来Digital Ocean的云服务器创建提示邮件《Your New Droplet: 你的Droplet主机名称》。这封邮件里会包含配置NKN测试网矿机所需要的必要信息,包括:公网IP地址、用户名和初始密码,如图11所示。
在收到邮件里的必要信息之后,可以打开预先安装的PuTTY软件(如果是MacOS,可以使用终端SSH),输入获得的公网IP地址后,左键单击“Open”,如图12所示。
如果是第一次使用PuTTY打开时,会弹出一个警告提示框,可以直接点击”是“,进行确认, 如图13所示。
这样就可以进入到命令行操作步骤,如图14所示,一共13个步骤,具体每一个步骤的操作为:
1. 在”login as“ 提示符后面输入用户名:”root”, 然后,回车。
2. 在”password:“后面输入初始密码,注意密码不会显示出来,并且只允许英文字母和数字组合。如果是Windows系统,可以通过Ctrl+C复制密码,到PuTTY命令行里面右键单击进行粘贴。
3. 再次输入初始密码,注意密码不会显示出来。
4. 输入自己创建的新密码,注意密码不会显示出来,并且只允许英文字母和数字组合。
5. 再次输入自己创建的新密码,注意密码不会显示出来。
6. 成功完成密码设置以后回车,会看到输入光标。
7. 输入如下指令并回车,在CentOS上安装wget软件:yum install wget -y
8. 输入如下指令并回车,在CentOS上安装unzip:yum install unzip -y
9. 输入如下指令并回车,从Github下载NKN矿机软件:wget https://github.com/nknorg/nkn-mining/releases/download/v0.0.4/NKNMining-linux.zip
10. 输入如下指令并回车,本地解压缩NKN矿机软件:unzip NKNMining-linux.zip
11.输入如下指令并回车,进入NKN矿机目录:cd NKNMining-linux
12. 输入如下指令并两次回车,获得序列号:./NKNMining
13.显示序列号如下格式,并将其复制粘贴保存好,以供后面步骤使用,
NKN-43d3cd9c-d5c3-11e8-98d4-f646aabe0226 (仅为序列号示例)
在完成上述13个步骤以后,NKN测试网矿机安装就算完成了,接下来我们需要到网页界面对矿机进行账户配置。
七、矿机界面和操作
首先,您需要按下面格式在网页浏览器里面输入您创建的Droplet云服务器地址:
http://Droplet公网IP:8181/web/
在此示例中,我们的公网IP地址是 68.183.76.125, 所以矿机页面的地址就是:
http://68.183.76.125:8181/web/
如图15所示,键入地址回车以后就可以看到矿机界面,第一步是先填入挖矿账户名称、挖矿密码,确认挖矿密码,输入图14中获得的序列号,然后点击”NEXT“进入下一步,如图16所示。
在图16中,这是矿节配置页面的第二步骤:生成一个NKN测试网的钱包。 需要创建钱包的密码并再次确认改密码。需要注意的是,密码的格式要求只允许英文字母和数字组合。另外,如果您已经有一个NKN测试网的钱包,并希望所有挖出来的NKN通证都放到一个钱包里,则可以通过”Load wallet“导入已有的NKN测试网钱包。完成后,点击”NEXT“进入下一步。
在图17中,会显示您所创建的钱包的私钥和地址,请妥善保存。点击”Download wallet“可以将该钱包下载到本地进行保存。完成之后,可以点击”Sign in“登陆到钱包页面。
如图18所示,NKN测试网钱包页面就是挖矿页面,里面有个很明显的“Node connect”开关,当您将开关状态设置为“on”时,NKN测试网矿机就开始正常运作,开始参与区块链共识,并有机会获得系统奖励了。与此同时,NKN测试网钱包页面还包含其它的测试网状态信息,例如,测试网区块链高度,您的矿机当前高度,钱包地址,钱包里的NKN余额,和您的矿机连接的邻居节点ID,IP和端口号等。在右手边则是您每次挖矿获得的NKN通证的明细。您也可以通过“transfer”实现转账,或通过”download”下载钱包。
到此为止,您的第一台NKN测试网矿机就开始启动运行了。您如果想进行规模挖矿,可以重复图5至图18的步骤,创建多个NKN矿机组成微矿池进行NKN测试网实验挖矿。例如图19,可以通过点击链接(http://testnet.nkn.org/network) 实时查看NKN测试网矿池的数量和地理位置。
八、卸载矿机
在Digital Ocean创建的微矿池可以实现随时创建或卸载矿机。有人会问,卸载矿机有什么必要么? 我们主要考虑到下面两个因素才介绍卸载矿机的方法:
很多新手第一次配置NKN测试网矿机,中间步骤错误有没有意识到,最后却发现无法挖矿。所以,最简单的方法就是卸载可能配置错的矿机,重新创建个新的。
NKN测试网里面的“矿主”,需要考虑收益和成本的折衷,当计算后发现自己矿池里面的矿机数量太多,成本高或不容易管理时,需要减少数量。因为Digital Ocean的云服务器费用是按照Droplet数量和实际使用时间计算的。所以,卸载矿机可以减少微矿池的运营成本。
当然,卸载矿机的方法非常简单,如图20所示
在Digital Ocean页面左手菜单栏中点击“Droplets” ,切换页面后,点击“More”下拉菜单找到“Destroy”并点击。之后确认要卸载矿机对话框,就完成了。
九、更新测试网矿机版本
因为NKN的测试网和矿机还在开发迭代,所以后续会有更新的矿机版本出来。本示例是用的v0.0.4版本。但是后续为了保证全网矿机版本一致,老版本矿机很可能不兼容最新版本的测试网,这时就需要您更新矿机版本。如果哪天发现NKN挖矿界面上的开关打开后,稍后一会儿自动关闭。这就说明您的NKN挖矿程序版本过于陈旧,无法继续参与测试网实验挖矿了。这时,您需要按照如下操作,更新NKN挖矿程序到最新版本,如图21所示,
1. 通过PuTTY登陆SSH,用户名是“root”, 密码是您自己设置的登陆密码。
2. 输入指令“ls” 查看已有的矿机目录,以确认“NKNMining-linux”目录确实存在。
3. 输入如“rm”指令移除过时的NKN挖矿程序:rm -rf ./NKNMining-linux
4. 再次输入“ls”指令查看“NKNMining-linux”目录是否被移除。
5. 输入”reboot“指令重新启动Droplet云服务器(可选)
6. 按照上图14中步骤9~13来更新NKN测试网挖矿程序。请注意,需要再第9步骤中把版本号更新到最新。例如:
wget https://github.com/nknorg/nkn-mining/releases/download/v0.0.4/NKNMining-linux.zip (此示例中的v0.0.4版本为矿机最新版本)
十、社区区块链浏览器
NKN具有强大的开发者社区,如果您想通过本地的NKN测试网钱包文件查询余额或者追踪交易可以通过NKNX浏览器,点击链接(https://nknx.org/dashboard)进行查询。
如图22中所示,NKNX浏览器钱包界面, 可以是先创建新钱包,打开钱包查询、转账等操作。
如图23所示,NKNX测试网区块信息页面,可以查询区块高度,交易数量,区块提议者的公钥,以及交易创建的时间。
如图24所示,NKNX浏览器交易信息页面可以查到所有系统挖矿奖励和签名链的哈希值,区块高度,以及创建时间。这样NKN区块链基本面的信息都可以通过NKNX方便地进行查询。
十一、展望
NKN测试网实验挖矿是明年主网上线之前重要的社区参与活动。本次活动的主要目的是鼓励更多 NKN 社区成员和我们一起,共同完成
共测:共同为明年的主网上线测试作准备;
共享:共同分享大家的网络连接资源;
共建:共同组建 NKN 基础设施。
NKN 有权对本次活动参与者的资格进行审核,一旦发现作弊行为,将取消参其与资格并后续不能参与任何其它活动。本次活动解释权归NKN 项目组所有,我们会不定期根据活动反馈情况更新活动规则,请关注我们官方渠道了解最新消息。
关于NKN
NKN是一个完全去中心化, 基于网络传输量工作证明,可支持千万级规模节点共识的公链系统。同时由NKN所构建的这样一个区块链驱动、社区共建共享的新型点对点网络,可为终端用户带来全新的网络传输体验和为开发者提供便捷、高效的数据传输开发平台。继以太坊区块链化计算能力, Filecoin/IPFS区块链化存储,NKN对信息基础设施的第三大支柱-网络传输-进行区块链化,创建新型区块链网络生态系统。