• 注册
  • 墨客科普 墨客科普 关注:34 内容:79

    墨客区块链部署FileStorm (上篇)

  • 查看作者
  • 打赏作者
    • 墨客科普
    • 大版主
      墨客战士

      本期科普给大家介绍如何部署FileStorm, 又是满满的干货,赶快拿出小本子记起来吧~

      本篇用到的软件版本下载地址:https://github.com/MOACChain/FileStorm/releases

      1.安装IPFS

      1.1 下载go-ipfs

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

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

      1.2 解压

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

      墨客区块链部署FileStorm (上篇)

      1.3 安装

      查看帮助:

      墨客区块链部署FileStorm (上篇)

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

      墨客区块链部署FileStorm (上篇)

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

      墨客区块链部署FileStorm (上篇)

      1.4 启动守护进程daemon

      墨客区块链部署FileStorm (上篇)

      2.启动多个ipfs daemon进程

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

      本文的测试环境需要多个(多于3个)ipfs daemon进程,本节介绍如何在windows环境下安装并启动多个ipfs daemon进程。

      2.1 配置环境变量

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

      墨客区块链部署FileStorm (上篇)

      保存环境变量。

      2.2 安装IPFS

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

      墨客区块链部署FileStorm (上篇)

      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。

      墨客区块链部署FileStorm (上篇)

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

      墨客区块链部署FileStorm (上篇)

      3.安装运行redis

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

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

      3.1 安装

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

      墨客区块链部署FileStorm (上篇)

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

      墨客区块链部署FileStorm (上篇)

      3.2 运行

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

      墨客区块链部署FileStorm (上篇)

      因为本文需要模拟三个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

      将下载的文件: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

      运行结果:

      墨客区块链部署FileStorm (上篇)

      运行另外两个进程:

      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 --rpcapi "chain3,personal,mc,net,vnode" --rpccorsdomain "http://walletbeta.moac.io"

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

      5.2 下载SCS

      从官网下载的节点文件包含一个scs目录,里面有两个文件scsserver.exe和userconfig.json,分别是scs执行程序和配置程序。

      用于fileStorm的SCS程序跟普通SCS不同,本文从https://github.com/MOACChain/FileStorm/releases下载scsserver-windows-4.0-amd64.exe版程序,将该文件覆盖目录scs下的scsserver.exe。

      5.3 配置userconfig.json 

      SCS节点配置文件,需要在启动前配置好;

      {

          "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会出现如下界面:

      墨客区块链部署FileStorm (上篇)

      同时会在scsserver目录下生成syskeystore目录,里面包含SCS id号,也就是账号。给每个scs账号发送1mc。

      按照以上步骤,复制两个干净的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合约代码区。

      墨客区块链部署FileStorm (上篇)

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

      Protocol = filestorm-test;          \\共识协议

      Bmin = 1;                                  \\最小押金

      protocol type = 1;                      \\协议类型,0为普通SCS子链,1为fileStorm

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

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

      墨客区块链部署FileStorm (上篇)

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

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

      墨客区块链部署FileStorm (上篇)

      6.4 部署子链控制合约SubChainBase

      跟6.2步骤一样;

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

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

      Proto = “0x399c905f438f50eBa82c77B702675DE73047e099”; \\刚刚部署的SubChainProtocolBase合约地址

      Vnode protocol base addr = “0x5B43583F33214c790B8206D9B06685c49A1DB455”;                                                    \\此处选择一个官方提供的Vnode 协议合约地址

      Min = 1;                                                     \\最少SCS个数

      Max  = 10;                                                 \\最多SCS个数

      Thousandth = 1000;                                  \\从合约池子里选择SCS的千分比,实验环境选择全部3个,所以是1000

      Flush round = 100;                                    \\子链刷新周期

      墨客区块链部署FileStorm (上篇)

      6.5 开放注册

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

      墨客区块链部署FileStorm (上篇)

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

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

      • 通过Node count可以知道已经注册的SCS个数。

      墨客区块链部署FileStorm (上篇)

      6.6 关闭注册

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

      墨客区块链部署FileStorm (上篇)

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

      墨客区块链部署FileStorm (上篇)

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

      6.7 注册SCSMonitor

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

      墨客区块链部署FileStorm (上篇)

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

      墨客区块链部署FileStorm (上篇)

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

      墨客区块链部署FileStorm (上篇)

      经过以上步骤,fileStorm的子链已经开始出块。

      MoacFoundation

      官网

      https://www.moac.io

      Facebook:Moac Chain

      https://www.facebook.com/moacchain/

      Medium:MOAC

      https://medium.com/moac

      Telegram(International)

      https://t.me/moacblockchain

      Telegram(Developers)

      https://t.me/MOACDevelopers

      Reddit:MOAC

      https://www.reddit.com/r/MOAC/

      Twitter:MOAC

      https://twitter.com/moac_io

      微博:MoacFoundation

      https://weibo.com/u/6563458350

      QQ群

      MOAC墨客区块链学习群   659376377

      MOAC墨客区块链技术群   651415568

      MOAC墨客区块链业务群   653202882

      微信群

      MOAC墨客区块链微信群

      请加小助手微信:MoacFD

      (扫码加小助手好友哦~)

      Github开源地址

      https://github.com/MOACChain/moac-core

      墨客区块链部署FileStorm (上篇)

      请登录之后再进行评论

      登录
    • 做任务
    • 实时动态
    • 偏好设置
    • 帖子间隔 侧栏位置: