美文网首页
区块链 |快速搭建联盟测试链并部署web3sdk

区块链 |快速搭建联盟测试链并部署web3sdk

作者: Ricsy | 来源:发表于2019-05-01 13:01 被阅读0次


    目录


    说明

    • Win10 VM虚拟机中Ubuntu1604_Server
    • 联盟链选择FISCO-BCOS
    • 目的:
      使用物料包以最快的速度搭建一条在单台服务器上运行4个节点的FISCO BCOS的测试环境.
    • 为了提高git clone速度,我把官方的fork到我的github,只保留了FSCO-BCOS的master-1.3分支和fisco-package-build-tool的1.2.4分支,然后导入到我的码云仓库中,但官方有更新,我的却不会自动更新.
    项目 分支 官方地址 我的码云
    FSCO-BCOS master-1.3 https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master-1.3 https://gitee.com/yimeng54/FISCO-BCOS.git
    fisco-package-build-tool 1.2.4 https://github.com/FISCO-BCOS/fisco-package-build-tool/tree/v1.2.4 https://gitee.com/yimeng54/fisco-package-build-tool.git
    web3sdk master-1.2 https://github.com/FISCO-BCOS/web3sdk/tree/master-1.2 https://gitee.com/yimeng54/web3sdk.git

    一、安装JDK

    注意:下载时要接受它的许可协议,注册并登录。(这个有点坑,不登录没法下载)

    分享链接 提取码
    https://pan.baidu.com/s/18cj1crYJA09ehS73Hmmv5A 5n1v
    • 打开Xshell
      cd /usr/local
    • 打开Xftp,上传下载的jdk-8u181-linux-x64.tar.gz,然后执行
      tar -zxvf jdk-8u181-linux-x64.tar.gz
      cd jdk1.8.0_181 && pwd

    全局安装, 所有用户均生效

    • 将下面的内容添加入 /etc/profile 文件的末尾.
      vim /etc/profile

    export JAVA_HOME=/usr/local/jdk1.8.0_181
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    source /etc/profile

    • 检查java版本
      java -version

    二、搭建测试链

    参阅:

    1. 构建安装包
    • 下载物料包
      git clone https://gitee.com/yimeng54/fisco-package-build-tool.git

    • 生成安装包
      cd fisco-package-build-tool
      ./generate_installation_packages.sh build

    其中,


    提示:

    • 中间会有FISCO-BCOS下载、编译、安装, 时间大概要45分钟吧, 执行成功最终在当前目录下会生成build目录.
    • 检查FISCO-BCOS是否安装成功
      fisco-bcos -V
    • 查看生成的build目录结构
      apt install tree -y
      tree -L 1 build

    提示:

    • 其中 127.0.0.1_agent_genesis即是生成的安装包.

    参阅:

    2. 安装
    • 假定需要将FISCO BCOS安装在当前用户home目录下, 安装的目录名fisco-bcos

    cd && mkdir fisco-bcos && cd fisco-package-build-tool
    mv build/127.0.0.1_agent_genesis ~/fisco-bcos
    cd ~/fisco-bcos/127.0.0.1_agent_genesis
    ./install_node.sh

    • 查看127.0.0.1_agent_genesis目录
      tree -L 2
    3. 启动

    cd build
    ./start.sh

    4. 验证

    tail -f node0/log/log_2019050510.log | egrep "seal"

    提示:

    • 验证成功之后,一条简单的测试链搭建成功.

    三、web3sdk配置

    参阅:

    说明:
    使用web3sdk前,请确保:

    • FISCO BCOS节点环境搭建完成
    • java版本符合要求要求(jdk1.8+,推荐使用jdk8u141)
    • 网络连通
      检查web3sdk连接的FISCO BCOS节点channelPort是否能telnet通,若telnet不通,需要检查网络连通性和安全策略.(telnet 127.0.0.1 8821telnet 127.0.0.1 8822telnet 127.0.0.1 8823telnet 127.0.0.1 8824)

    1. 安装依赖软件

    • 部署web3sdk之前需要安装git、dos2unix依赖软件:

    git:用于拉取最新代码.
    dos2unix: 用于处理windows文件上传到linux服务器时,文件格式无法被linux正确解析的问题.

    apt install git tofrodos -y
    ln -s /usr/bin/todos /usr/bin/unxi2dos && ln -s /usr/bin/fromdos /usr/

    提示:

    • 实际上它安装了两个工具:todos(相当于unix2dos)和fromdos(相当于dos2unix)
      安装完即可,现在你已经可以进行文本格式的转换了.

    2. 编译源码

    git clone https://gitee.com/yimeng54/web3sdk.git

    cd web3sdk && fromdos *.sh
    chmod +x compile.sh &&./compile.sh

    3. 配置文件

    说明:

    1. 拷贝证书

    cd ~/fisco-bcos/127.0.0.1_agent_genesis/build/web3sdk/conf
    cp sdk.* ca.crt client.keystore ~/web3sdk/dist/conf

    2. 配置java客户端相关信息
    • 获取系统合约代理地址
      cd ~/fisco-bcos/127.0.0.1_agent_genesis/build/node0 && cat config.json
    • 获取god账号信息
      cd ~/FISCO-BCOS/tools/scripts/god_info && cat godInfo.txt
    • web3sdk客户端配置
      cd ~/web3sdk/dist/conf && vim applicationContext.xml
    "systemproxyaddress":"0x66d03dbf1c98fcf53eefa991b7ef781c2df98d9f"
    "privateKey":"596cdab0c01ac5f69264b46bee554bbd0eec4b5b775c95471d910b714f182efb"
    "god address": "0xfeb0fba3558a11e3d3add6bd9c0caad8d18329af"
                                                                    <value>node0@127.0.0.1:8821</value>
                                                                    <value>node1@127.0.0.1:8822</value>
                                                                    <value>node2@127.0.0.1:8823</value>
                                                                    <value>node3@127.0.0.1:8824</value>
    
    3. 测试是否配置成功
    • 测试web3sdk与节点连接是否正常
      cd ~/web3sdk/dist && java -cp 'conf/:apps/*:lib/*' org.bcos.channel.test.TestOk

    提示:

    •   在web3sdk/dist目录下调用TestOk,非国密版web3sdk输出 =====INIT ECDSA KEYPAIR From private key=== 等提示,说明web3sdk与节点连接正常,否则请参考 faq【dist/bin/web3sdk运行出错】 .

    四、应用开发指南

    参阅:

    Counter示例

    1. 启动节点

    cd ~/fisco-bcos/127.0.0.1_agent_genesis/build && ./start.sh

    2. 测试web3sdk与节点连接是否正常

    cd ~/web3sdk/dist && java -cp 'conf/:apps/*:lib/*' org.bcos.channel.test.TestOk

    3. 编写合约
    • 实现简单计数器
      cd ~/web3sdk/dist/contracts && touch Counter.sol && vim Counter.sol
    pragma solidity ^0.4.2;
    contract Counter{
        string name;
        uint256 counter;
        //event handle
        event counted(uint256 c,uint256 oldvalue,uint256 currvalue,string memo); 
        event changename(string oldname); 
    
        function Counter(){
           name="I'm counter";
           counter = 0;
        }
    
        function setname(string n){
            name=n;
            changename(n);
        }
        
        function getname()constant returns(string){
            return name;
        }
    
        function addcount(uint256 c,string memo)
        {
        uint256 oldvalue = counter;
            counter = counter+c;
            counted(c,oldvalue,counter,memo); //event
        }
        
        function getcount()constant returns(uint256){
            return counter;
        }
    }
    

    提示:

    • 直接复制代码到Ubuntu中会缺少pragma,注意添加.
    • 编译合约,将合约代码Counter.sol转换为java代码Counter.java
      cd ~/web3sdk/dist/bin && bash compile.sh org.bcosliteclient

    提示:

    • 查看生成的java代码
      cd ~/web3sdk/dist/output && tree -L 3
    4. 搭建并配置java应用
    • FISCO-BCOS提供了示例应用bcosliteclient,该应用在 CounterClient.java 中提供Counter.sol合约部署和调用功能
      cd && wget https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS-DOC/release-1.3/docs/web3sdk/codes/bcosliteclient.zip
      unzip bcosliteclient.zip
      cd bcosliteclient && tree -L 4

    apt install gradle -y && gradle build

    提醒:

    5. 部署和调用合约

    cd ~/bcosliteclient/bcosliteclient/bin

    • 部署Counter.sol合约并获得合约地址
      chmod a+x bcosclient
      ./bcosclient deploy

    • 调用Counter.sol合约
      ./bcosclient call_contract <合约地址>


    更新中......


    相关文章

      网友评论

          本文标题:区块链 |快速搭建联盟测试链并部署web3sdk

          本文链接:https://www.haomeiwen.com/subject/rhginqtx.html