北京时间2018年4月30日,墨客区块链(MOAC BlockChain)正式上线,运行稳定。
1.准备工作
墨客区块链(MOAC BlockChain)系统软件包下载地址为:
https://github.com/MOACChain/moac-core/releases
当前提供两种版本下载,其中最新的正式版为nuwa1.0.2。
nuwa(女娲)为代号,1.0.2为版本号。
windows版本适用于64位Windows 7及以上系统。
本文实际操作环境为:64位Windows 10 中文版。
注意!注意!注意:如果之前使用的Pangu0.8.2版,请保存keystore文件夹,更新时需要停止原来盘古的节点,更新,再启动,然后确认自动同步区块到最新高度,再挖矿(可以不挖),再跑自己的逻辑(比如充提)。
2.节点安装
解压下载的软件包nuwa-vnode1.0.2.win.zip到本地硬盘。目录下包含四个文件。
说明:
moac.exe:MOAC VNODE主程序;
mctest.js:在console界面使用的部分功能;
readme.txt:说明文档;
vnodeconfig.json:设置子链服务的配置文件。
2.1 查看帮助
打开命令(cmd)终端,转到墨客解压目录,在命令行中执行:
D:\nuwa1.0.2.win>moac --help
2.2 安装节点
打开命令(cmd)终端,转到墨客当前目录,在命令行中执行:
D:\nuwa1.0.2.win>moac
程序会自动安装到目录:C:\Users\[userName]\AppData\Roaming\MoacNode。该目录下包含两个文件夹,moac和keystore。
如果网络正常,节点会自动开始同步。
如果是要安装到墨客测试网,在命令中执行:
D:\nuwa1.0.2.win>moac --testnet
程序会自动安装到目录:C:\Users\[userName]\AppData\Roaming\MoacNode\testnet。
如果网络正常,节点会自动开始同步。
注意:
1.仅在安装moac节点的时候使用不带任何参数的moac命令。
2.测试网安装的节点,每次执行moac命令后面都需要加上--testnet。
2.3 启动已经存在的节点
系统关机或主动关闭运行中的节点后,如果需要重新启动节点,在命令行中执行:
D:\nuwa1.0.2.win>moac console
该命令执行后,节点会自动从上次同步的区块开始同步数据
如果是在云端安装的节点,通常是Linux环境。启动节点命令:
nohup ./moac --rpc --rpcaddr=0.0.0.0 --rpcport=8545 --rpcapi="chain3,mc,net,db,personal,debug" &
2.4 进入节点attach界面
节点的console界面因为一直在同步数据,滚屏速度较快,不方便接收命令和查看命令输出效果,需要打开另一个命令(cmd)终端,转到墨客当前目录,在命令行中执行:
D:\nuwa1.0.2.win>moac attach
该命令依赖于节点已经运行起来,进入后,没有滚屏动作,方便用户输入命令及查看输出结果。
如果是非windows系统,可能需要加上ipc endpoint。在terminal命令行中执行:
ubuntu@nuwa1.0.2-ubuntu $ moac attach \\.\pipe\moac.ipc
3.子链服务配置
注意!注意!注意:
请在2018-08-08之后配置Vnode子链功能。
解压目录下的文件vnodeconfig.json是子链服务的配置文件。该文件默认设置不支持子链。
{
"SCSservice":false,
"ShowToPublic":false,
"VnodeServiceCfg":"localhost:50062",
"VnodeIp":"",
"VnodeBeneficialAddress":""
}
为了让VNODE节点支持子链,用户需要配置vnodeconfig.json文件。
"SCSservice":
false -不支持SCS连接, 为该项的默认设置值。
true -支持SCS 连接, 允许VNODE支持子链, 提供该服务后需要提供一个有效的收益地址。
"VnodeServiceCfg":
SCS通信端口, 默认值为50062。
"VnodeBeneficialAddress":
此账号地址用于接收因为提供子链服务而得到的奖励收益,需要将"SCSservice"设置为true。
"ShowToPublic":
false - 不允许外部用户连接到SCS, 为该项的默认设置值。
true - 允许外部用户通过vnode连接SCS, 同时需要配置有效的VnodeIP地址值。
"VnodeIp":
允许外部用户通过该IP地址与VNODE连接。
4.挖矿
4.1 建立新账户
挖矿前节点必须已经建立了一个账户。
进入moac console界面,执行命令建立一个新账户:
> personal.newAccount()
系统会提示输入一个密码,例如"passwd",并再次输入相同密码确认后,会显示一个以0x开头的字符串,即为MOAC帐号的地址。
系统同时会在以下目录记录一个账号文件:C:\Users\userName\AppData\Roaming\MoacNode\keystore。
请保存好该文件,并牢记密码,之后用于解密帐号和操作。
也可以直接在命令里带上密码。比如:
> personal.newAccount("123456")
4.2 查看账户
进入MOAC console界面,执行命令:
> mc.accounts
可以查看本节点下的所有账号。
4.3 查看账户余额
进入MOAC console界面,执行命令:
> mc.getBalance(mc.accounts[0])
可以查看本节点下的账号余额。0表示第一个账户,也是默认挖矿账户。
或者:导入“mctest.js”的情况下,执行命令:
> loadScript("mctest.js")
> checkBalance()
该命令用于查看当前节点所有账号的余额。
mctest.js是节点的一个文件,里面包装了部分功能,需要用loadScript命令导入,才能在界面直接使用。
也可以通过浏览器查看账户余额等情况。
墨客区块链浏览器:
http://explorer.moac.io/home ;
测试网浏览器:
http://47.75.144.55:3000/home。
4.4 查看挖矿状态
进入MOAC console界面,执行命令:
> mc.mining
返回true表明节点正在挖矿,false表明节点没有挖矿。
4.5 开始挖矿
进入MOAC console界面,执行命令:
> miner.start()
启动挖矿状态时,console界面会有提示开始挖矿。
4.6 停止挖矿
进入MOAC console界面,执行命令:
> miner.stop()
注意:因为主网算力大,很难用普通台式机或笔记本用命令行形式挖到矿,在测试网则可以较容易挖到矿。
5. 交易
5.1 读入函数
mctest.js是节点的一个文件,里面包装了部分功能,需要用loadScript命令导入,才能在界面直接使用。
进入MOAC console界面,执行命令:
> loadScript("mctest.js")
5.2 交易条件
为执行交易,需要至少两个帐号,其中一个有足够的mc。
如果没有目标账号,可以用步骤3.1的命令创建一个本地账号。
5.3 交易
进入MOAC console界面,执行命令:
> Send(mc.accounts[0], 'passwd', mc.accounts[1], 0.1)
这个过程中,mc.accounts[0]是发送账号,mc.accounts[1]是接收账号,'passwd'是第一个账号的密码,发送额为0.1 mc。
发送通常在下一个区块产生时完成。
系统显示的是以 sha(Sand) 为单位的余额, 1 mc = 1e18 sha。
附:墨客常用命令行参数
API AND CONSOLE OPTIONS:
--testnet 连接到MOAC测试网络
--rpc 启动HTTP-RPC服务(基于HTTP的)
--rpcaddr value HTTP-RPC服务器监听地址(default: "localhost")
--rpcport value HTTP-RPC服务器监听端口(default: 8545)
--rpcapi value 指定需要调用的HTTP-RPC API接口,默认只有mc,net,chain3
--ws 启动WS-RPC服务(基于WebService的)
--wsaddr value WS-RPC服务器监听地址(default: "localhost")
--wsport value WS-RPC服务器监听端口(default: 8546)
--wsapi value 指定需要调用的WS-RPC API接口,默认只有mc,net,chain3
--wsorigins value 指定接收websocket请求的来源
--ipcdisable 禁掉IPC-RPC服务
--ipcpath 指定IPC socket/pipe文件目录(明确指定路径)
--rpccorsdomain value 指定一个可以接收请求来源的以逗号间隔的域名列表(浏览器访问的话,要强制指定该选项)
--jspath loadScript JavaScript根目录用来加载脚本 (default: ".")
--exec value 执行JavaScript声明
--preload value 指定一个可以预加载到控制台的JavaScript文件,其中包含一个以逗号分隔的列表
示例:
./moac attach /xx/xxx/moac.ipc 通过本地ipc接口连接到MOAC节点;
./moac attach "http://xxx.xxx.xxx.xxx:8545" 通过基于HTTP的RPC接口连接到本地或者远程MOAC节点;
./moac --testnet 启动MOAC测试节点;
./moac --testnet console 启动MOAC测试节点,并启动交互命令行;
./moac --testnet --rpc 启动MOAC测试节点,同时启动RPC服务;
./moac --testnet --rpc --rpcaddr=0.0.0.0 --rpcapi="db,mc,net,chain3,personal,debug" --rpccorsdomain="*"
启动MOAC测试节点,非本机可访问,非本机也可以使用personal及debug服务,同时提供跨域资源共享服务。
nohup ./moac --rpc --rpcaddr=0.0.0.0 --rpcport=8545 --rpcapi="db,mc,net,chain3,personal,debug" &
云端Linux服务启动