SCSListener
优质
小牛编辑
127浏览
2023-12-01
A1、下载SCS代码(或准备一个SCS盒子)
A2、配置SCS配置文件userconfig.json,需要配置的内容如下
- VnodeServiceCfg:这个SCS需要连接的vnode的ip和port。如架构图,每个SCS需要连接一个MOAC-VNODE来进行通讯,所以如果你没有自己部署一个节点,需要从官方渠道来设置连接一个可用的MOAC-VNODE
- DataDir:SCS数据目录,以子链地址为文件夹存放子链数据。默认:./scsdata
- LogPath:SCS日志目录,以天为单位存放日志。默认:./logs
- Beneficiary:矿工收益账号。为了安全起见,我们建议采用与scsid不同的账号用来获取子链的收益(scsid将会在后面讲到)
- VnodeChainId:母链ID,当前,测试环境ID是101,正式环境ID是99,请按需设置,不要设置其他ID
- BondLimit:服务子链的押金上限。每个DAPP用户需要设置押金来为子链服务,矿工可以使用这个上限来选择不为押金高的子链服务。该押金将从register时候的保证金中扣除。(TODO)
A3、启动SCS
参数说明
- “-p [密码]” scsid的密码,不设置默认密码为 moacscsofflineaccountpwd
- “-rpcaddr [addr]” SCS开启rpc的ip
- “-rpcport [port]” SCS开启rpc的port
启动后,SCS将会在当前目录下生成一个keystore目录,并在目录中新建一个账号,这个账号就是scsid,可在第一次启动时使用-p设置密码。如果想换一个scsid,则需要删除keystore中的内容重新启动。
SCS的rpc功能是提供给DAPP用户查询用的(MONITOR),如果是矿工,可以不开启这个功能。
A4、将这个SCS注册到SCS池子中去
SCS根据子链矿池智能合约subchainprotocolbase进行注册,并缴纳保证金。在等待一定时间之后(通常是母链50个block),就进入子链矿池,成为该子链的候选SCS节点。
只要性能允许,一个SCS可以参与多个子链的注册。
注册子链协议Javascript方法:(请注意,所有js方法需要和MOAC-VNODE Console配合使用,之后的例子相同)
function protocolRegister(baseAddr,basePasswd,protocolAddr,scsAddr)
{
chain3.personal.unlockAccount(baseAddr, basePasswd,0);
sendtx(baseAddr, protocolAddr, '10','0x4420e486000000000000000000000000' + scsAddr);
}
【说明】:
- baseAddr、basePasswd:moac主网端存在的一个账户及其密码,用来发送交易前账户解锁;
- protocolAddr:子链矿池合约subchainprotocolbase地址;
- scsAddr:scsid地址,放在“…/scsserver/scskeystore”目录下;
- 保证金:这里最低交10个moac,实际根据协议合约的最低保证金要求,保证金交的越多,可以参与的子链数量越多;
- 数据:‘0x4420e486’是子链矿池合约subchainprotocolbase中‘register(address scs)’通过hash算法Keccak256得到前4个字节;该函数带一个参数,每个参数占用32个字节,地址20字节,不足32字节则前补12字节00。这里不用修改。
另附1调用实例:
protocolRegister ('0x1b9ce7e4f1.......e38913a56cd986786',
‘123’,
'0x09f0dfc09b......0b85e5189a7493671',
'f687272ae00f8cea......37dd9be30329d8cf')//不带0x开头
另附2交易实例:
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);
}
注意:注册时缴纳的保证金,将在SCS被选中做子链的时候临时扣除,用于做假惩罚。
至此,矿工的前期工作全部完成,如果被选中参与子链的运行,将会在子链刷新之后,在Beneficiary中看到收益。