第二十篇 墨客区块链(MOAC BlockChain) 部署FileStorm

版权声明:Copyright Reserved © 2018-2020 https://blog.csdn.net/lyq13573221675/article/details/82800312

1.安装IPFS

1.1 下载go-ipfs

官方下载网址:https://ipfs.io

本文下载版本为:go-ipfs_v0.4.15_windows-amd64.zip。

 

1.2 解压

下载之后将go-ipfs解压到自己的工作目录:

1.3 安装

查看帮助:

初始化安装。打开控制台进入到工作目录,执行ipfs init命令,结果如下:

此时,在固定路径会生成一个.ipfs的文件夹:

1.4 启动守护进程daemon

 

2.启动多个ipfs daemon进程

第一节说明了ipfs的安装和启动过程,默认情况下,ipfs会安装到C:\Users\[userName]\.ipfs目录下。

本文的测试环境需要多个(一般3个)ipfs daemon进程,怎么在windows环境下安装并启动多个ipfs daemon进程呢。

2.1 配置环境变量

进入环境变量配置界面,在“系统变量”里新建一个条目,命名“IPFS_PATH”,取值“C:\Users\lyq2018\.ipfs1”。

保存环境变量。

2.2 安装IPFS

初始化安装。打开控制台进入到工作目录,执行ipfs init命令,ipfs会自动安装到目录“C:\Users\lyq2018\.ipfs1”。

2.3 修改参数

打开目录C:\Users\lyq2018\.ipfs1”下的文件config,修改端口参数。使得本文所需要的三个ipfs均使用不同的端口。

  "Addresses": {
    "Swarm": [
      "/ip4/0.0.0.0/tcp/4002",           //默认4001
      "/ip6/::/tcp/4002"                 //默认4001
    ],
    "Announce": [],
    "NoAnnounce": [],
    "API": "/ip4/127.0.0.1/tcp/5002",    //默认5001
    "Gateway": "/ip4/127.0.0.1/tcp/8082" //默认8080
  },

2.4 启动守护进程daemon

D:\fileStorm\go-ipfs_v0.4.15_windows-amd64\go-ipfs>ipfs daemon

2.5 启动其他两个进程

按照以上步骤,修改变量——启动ipfs——修改参数——启动进程。启动另外两个ipfs daemon进程。

此时,目录下会存在三个ipfs。

同时启动进程后,均工作正常。

 

3.安装运行redis

Redis 是一个开源的、高性能的、支持网络、可基于内存亦可持久化的日志型、key-value数据库。

到官网https://redis.io/下载即可,本文使用版本为Redis-x64-3.2.100.msi。

3.1 安装

直接在windows下运行安装文件,一路默认。

即可将redis安装到目录“C:\Program Files\Redis”。

3.2 运行

打开cmd,进入目录“C:\Program Files\Redis”,运行

因为本文需要模拟三个SCS,因此,也需要启动三个redis进程与它们对应,用端口号区别它们。

启动另外两个cmd,进入目录“C:\Program Files\Redis”,分别运行

C:\Program Files\Redis>redis-server  --port 6373
C:\Program Files\Redis>redis-server  --port 6374

 

4. 运行monkey

请到墨客官方https://github.com/MOACChain/moac-core/releases下载:monkey-windows-4.0-amd64.exe。

如果下载的文件保存在“D:\fileStorm”,进入目录,运行

D:\fileStorm>monkey  --listen-host-port 127.0.0.1:18082 --redis-host-port 127.0.0.1:6372 --ipfs-host-port 127.0.0.1:5002

运行结果:

运行另外两个进程:

D:\fileStorm>monkey  --listen-host-port 127.0.0.1:18083 --redis-host-port 127.0.0.1:6373 --ipfs-host-port 127.0.0.1:5003
D:\fileStorm>monkey  --listen-host-port 127.0.0.1:18084 --redis-host-port 127.0.0.1:6374 --ipfs-host-port 127.0.0.1:5004

 

5.启动SCS

5.1 启动Vnode节点

请下载官方版本Nuwa 1.0.3下的nuwa1.0.3.win.zip;本文编辑时,该版本Vnode仅限用于testnet。

解压,里面包含两部分:scs目录为普通SCS代码(fileStrom的SCS可以作为普通SCS使用,反之不可以),vnode为底层节点代码。

Vnode的配置文件vnodeconfig.json需要配置为:

{
  "SCSService":true,                  //默认false
  "ShowToPublic":false,
  "VnodeServiceCfg":"localhost:50062",
  "VnodeIp":"",
  "VnodeBeneficialAddress":"0x7610fd66c272332edd59a43460ad24eee1973bfe"
}

启动SCS之前需要启动Vnode节点,本例为测试网本地节点。

D:\nuwa1.0.3.win\vnode>moac –testnet --rpc –rpccorsdomain "http://wallet.moac.io"

该Vnode也就是userconfig.json 中配置的VnodeServiceCfg。

 

5.2 下载SCS

用于fileStorm的SCS程序跟普通SCS不同,从下载页https://github.com/MOACChain/moac-core/releases下载fileStorm-scs1.0.3版程序。

解压下载的软件包到本地硬盘。目录下包含两个文件夹和一个readme文件:

说明:

  1. config/userconfig.json:SCS节点配置文件,需要在启动前配置好;
  2. scsserver/scsserver.exe:SCS执行程序;
  3. readme:说明文档。  

5.3 配置userconfig.json 

{
    "VnodeServiceCfg": "localhost:50062",                        //scs需要连接的Vnode IP地址和端口
    "DataDir": "./scsdata",                                      //scs数据目录
    "LogPath": "./_logs",                                        //scs日志目录
    "Beneficiary": "0x7610fd66c272332edd59a43460ad24eee1973bfe", //scs矿工收益账号
    "VnodechainId": 101,                                         //主链的网络号,miannet = 99,test net = 101
    "Capability": 10,                                            //服务子链的押金上限
    "ReconnectInterval": 5,                                      //设置与vnode连接的间隔,以秒为单位
    "LogLevel": 3,                                               //输出日志级别,数值越大,越详细
    "FileStorm": {
        "MonkeyPort": 18082                                      //monkey端口
    },
    "BondLimit":2,                                               //需要支付的押金上限
    "ReWardMin":0.0001                                           //子链每个区块的最小奖励金额
}

5.4 启动SCS

进入目录scs\scsserver启动scs:

D:\fileStorm-scs1.0.3\scsserver>scsserver -p "123456123456"   //设定密码为“123456123456”

正常启动,新的SCS会出现如下界面:

同时会在scsserver目录下生成syskeystore目录,里面包含SCS id号,也就是账号。

按照以上步骤,复制两个干净的SCS目录——分别修改userconfig.json的MonkeyPort为18083和18084——运行scsserver,启动另外两个SCS。

5.5 启动一个SCS monitor

使用如下命令,会将SCS设置为monitor。

D:\nuwa1.0.2.win\scs\scsserver>scsserver --rpcaddr 0.0.0.0 --rpcport 2345

该SCS不出块,仅同步子链的数据,并提供调用。

 

6.部署子链控制合约

6.1 下载fileStorm子链合约文件

到官网下载子链控制合约文件:File Storm v1.0版下的DeploySubChainBase.sol。

6.2 部署SubChainProtocolBase

登录网页版钱包http://wallet.moac.io/,按照部署合约的步骤,点击合约\部署新合约,将DeploySubChainBase.sol合约内容复制到solidity合约代码区。

在选择合约里选“Sub Chain Protocol Base”,填入三个参数:

  1. Protocol = filestorm-test;          \\共识协议
  2. Bmin = 1;                                  \\最小押金
  3. protocol type = 1;                      \\协议类型,0为普通SCS子链,1为fileStorm

6.3 将SCS注册到刚刚部署的SubChainProtocolBase池子

界面使用合约Register函数,注册SCS:参数主要包括SCS id和押金数量,此处写入2mc押金。

重复以上步骤,将3个SCS均注册到池子里去。

执行交易,并完成后,SubChainProtocolBase合约将显示有6mc。

6.4 部署子链控制合约SubChainBase

6.2步骤一样;

登录网页版钱包http://wallet.moac.io/,按照部署合约的步骤,点击合约\部署新合约,将DeploySubChainBase.sol合约(仍然是刚才那个合约)内容复制到solidity合约代码区。

在选择合约里选“Sub Chain Base”,填入六个参数:

  1. Proto = “0x399c905f438f50eBa82c77B702675DE73047e099”; \\刚刚部署的SubChainProtocolBase合约地址
  2. Vnode protocol base addr = “”;                                                    \\此处选择一个官方提供的Vnode 协议合约地址
  3. Min = 1;                                                     \\最少SCS个数
  4. Max  = 10;                                                 \\最多SCS个数
  5. Thousandth = 1000;                                  \\
  6. Flush round = 100;                                    \\子链刷新周期

6.5 开放注册

使用Register Open函数功能,开放子链控制合约注册。

执行之后,可以通过左边读取合约看到实时注册情况。比如:

  • 通过Node list可以查询已经注册的SCS id,编号从0开始;
  • 通过Node count可以知道已经注册的SCS个数。

6.6 关闭注册

在Node count的数量达到要求后,使用Register Close函数功能,关闭子链控制合约注册。

成功关闭注册后,SCS开始出块:

其中较明显的变化是:MINE SUBCHAIN NUM的值由0变到1。代表该SCS已经为1个子链提供服务。

6.7 注册SCSMonitor

将已经启动的SCS Monitor注册到子链控制合约。

几秒钟后,该SCS Monitor的界面将进行区块同步。

并显示MONITOR SUBCHAIN NUM的值由0变到1。

 

本篇总结:

经过以上步骤,fileStorm的子链已经开始出块,下篇将讲解在此基础上部署和使用fileStorm的详细过程。

阅读更多

更多精彩内容