北京时间8月10日,墨客区块链底层节点更新到Nuwa v1.0.5,墨客子链(MicroChain)功能全面正式上线。
本文介绍:墨客子链SCS软件节点的安装与配置。SCS硬件盒子挖矿请参考自带说明书。
windows版本适用于64位/32位Windows 7及以上系统。
本文实际操作环境为:64位Windows 10 中文版。
1.下载SCS软件
解压下载的软件包nuwa1.0.5.win.zip到本地硬盘。目录下包含两个文件夹和一个readme文件。
说明:
scs:子链节点程序,里面有3个文件;分别是64位执行程序scsserver-windows-4.0-amd64.exe、32位执行程序scsserver-windows-4.0-386.exe和配置文件userconfig.json;
vnode:主链节点程序,里面有5个文件;分别是64位执行程序moac-windows-4.0-amd64.exe、32位执行程序moac-windows-4.0-386.exe、配置文件vnodeconfig.json、部分功能代码mctest.js和说明文档README.txt;
2.配置userconfig.json
内容主要包括:
{
"VnodeServiceCfg": "localhost:50062",
"DataDir": "./scsdata",
"LogPath": "./_logs",
"Beneficiary": "0xD814F2ac2c4cA49b33066582E4e97EBae02F2aB9",
"VnodechainId": 101,
"Capability": 10,
"ReconnectInterval": 5,
"LogLevel": 4,
"BondLimit":2,
"ReWardMin":0.0001
}
VnodeServiceCfg:这个SCS需要连接的VNODE IP地址和端口。每个SCS需要连接到一个VNODE来进行通讯,才能与母链进行通信。你可以自己建一个本地VNODE节点,或者连接到一个官方的可信任的VNODE。如果是本地节点,配置“localhost:50062”;
DataDir:SCS数据目录,以子链地址为文件夹存放子链数据。默认配置 "./scsdata";
LogPath:SCS日志目录,以天为单位存放日志。 默认配置"./logs";
Beneficiary:矿工收益账号。为了安全起见,建议采用与scsid不同的账号用来获取子链挖矿的收益;
VnodeChainId:母链的网络ID。当前墨客测试网 testnet 是 101,主网 mainnet 是 99,请按需设置。如果是自建一个网络,要确保你的vnode连接到了同样的网络ID;
Capability: 此SCS服务器可以加入的appChains数量,默认为10;
ReconnectInterval: 如果SCS跟vnode之间的连接丢失,SCS将试图重新连接vnode。该参数以秒为单位,设置与vnode连接的间隔;
LogLevel: 输出日志的级别: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 3);
BondLimit: 加入一个appChain的最低存款额,以moac为单位,默认为每个appChain 2 moac; 如果appChain的要求高于这个限制,那么SCS不会加入;
ReWardMin: 子链每个区块的最小奖励额度。 SCS可以通过设置该参数,以加入能得到更高奖励额度的子链。
3.启动SCS
启动命令及参数:
C:\nuwa1.0.5.win\win\scs>scsserver -p [password] //Start SCS with a password for the scsid keystore,default password is "moacscsofflineaccountpwd"
C:\nuwa1.0.5.win\win\scs>scsserver -rpcaddr [addr] //SCS start with rpc ip
C:\nuwa1.0.5.win\win\scs>scsserver -rpcport [port] //SCS start with rpc port
第一次启动后,SCS将会在当前目录下生成一个keystore目录,并在目录中新建一个账号,这个账号就是scsid。可在第一次启动时使用-p设置密码,没有设置则使用默认密码。
注意:
scsid用于注册SCS,不要使用该账号接收SCS挖矿收益。
scsid账号可以接收墨客,在正式使用前需要用户给该地址发送1个墨客,用于与vnode进行数据交换的gas费。
如果想换一个scsid,则需要删除keystore中的内容重新启动。
SCS的rpc功能是提供给DAPP用户查询用的(MONITOR),如果是矿工,可以不开启这个功能。
可以根据实际需要,按照以上步骤重新启动一个或多个SCS,单台电脑建议启动不超过3个SCS。
4.将SCS注册到SCS池子中去
SCS根据子链矿池智能合约subchainProtocolBase进行注册,并缴纳保证金。
只要性能允许,一个SCS可以参与多个子链矿池的注册;在交纳足够的保证金后,也可以为多个子链服务。
注册子链协议Javascript方法(保存为文件scsRegister.js):
var Chain3 = require('chain3');
var chain3 = new Chain3(new Chain3.providers.HttpProvider('http://localhost:8545'));
//scs注册
console.log('SCS Register start!');
var baseAddr = "0x7610fd66c272332edd59a43460ad24eee1973bfe";
var basePasswd = "password";
var protocolAddr = "0x225Ebb0b9DF76E3D48eA0614943340611f635EA0";
var scsAddr = "755a37ec5ba302cd0022af2b8e3ff97c1996601b"; //不带0x开头
chain3.personal.unlockAccount(baseAddr, basePasswd,0);
sendtx(baseAddr, protocolAddr, '5','0x4420e486000000000000000000000000' + scsAddr);
function sendtx(src, tgtaddr, amount, strData) {
chain3.mc.sendTransaction(
{
from: src,
value:chain3.toSha(amount,’mc’),
to: tgtaddr,
gas: "9000000",
gasPrice: chain3.mc.gasPrice,
data: strData
});
console.log('sending from:' + src + ' to:' + tgtaddr + ' with data:' + strData);
}
主要参数如下:
baseAddr、basePasswd:主网的一个账户及其密码,付出本次交易的gas费及SCS注册所需的押金(本例5mc);
protocolAddr:公开的子链矿池合约subchainProtocolBase地址;
scsAddr:scsid地址,放在“…/scsserver/scskeystore”目录下;
amount:注册mc数量,本例子中为5mc,此处必须大于矿池合约的设置值。scs提交押金越多,能参与的子链越多。
strData:‘0x4420e486’是子链矿池合约subchainProtocolBase中‘register(address scs)’通过hash算法Keccak256得到前4个字节;该函数带一个参数,每个参数占用32个字节,地址20字节,不足32字节则前补12字节00。这里不用修改。
特别注意:scsAddr的地址不要加上“0x”。
在文件目录下执行该注册文件scsRegister.js:
C:\nuwa1.0.5.win\win\scs>node scsRegister.js
在等待一定时间之后(通常是主链50个block),就进入子链矿池,成为子链的候选SCS节点。注册后,保证金会从baseAddr账号转到子链矿池合约账号。
注册时缴纳的保证金,将在SCS被选中服务子链的时候临时扣除。
参与的每一个子链,在子链flush的时候会发放奖励,就是子链挖矿所得,自动在收益账号Beneficiary体现。
————————————————
版权声明:本文为CSDN博主「Li_Yu_Qing」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lyq13573221675/article/details/81624434