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



目录


说明

  • 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 <合约地址>


更新中......


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • Linux习惯问题: 在vim编辑时,按了ctrl + s后,再按ctrl + q就可以继续执行了。ctrl + ...
    光着脚的鞋阅读 4,509评论 0 16
  • Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows...
    我想起个好名字阅读 298评论 0 1
  • 系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在...
    流光汐舞阅读 216评论 0 0
  • 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,...
    天尊_ffe1阅读 496评论 1 3
  • 10.18-22上周检视:本周目标完成情况?宝贝们早睡的时间生物钟还没调整好,基本上是在9点半以前完成,这个需要过...
    caoxixi阅读 434评论 2 1