WeCross部署及架构解析

WeCross部署

环境要求:

JDK1.8.0_251以上

Gradle 5.0及以上

MySQL 5.6及以上

环境依赖脚本:

# Ubuntu

sudo apt-get install -y openssl curl expect tree fontconfig

# CentOS

sudo yum install -y openssl curl expect tree

WeCross基础网络的搭建

进入操作目录:

cd ~/wecross-networks

1 下载WeCross

bash <(curl -sL https://github.com/WeBankBlockchain/WeCross/releases/download/resources/download_wecross.sh)

# 若出现长时间下载WeCross包失败,请尝试以下命令重新下载:

bash <(curl -sL https://gitee.com/WeBank/WeCross/raw/master/scripts/download_wecross.sh)

2 部署跨链路由

cd ~/wecross-networks

vim ipfile

# 在文件中键入以下内容

127.0.0.1:8250:25500

127.0.0.1:8251:25501

生成好ipfile文件后,使用脚本build_wecross.sh生成两个跨链路由。

# -f 表示以文件为输入

bash ./WeCross/build_wecross.sh -n payment -o routers-payment -f ipfile

# 成功输出如下信息

[INFO] Create routers-payment/127.0.0.1-8250-25500 successfully

[INFO] Create routers-payment/127.0.0.1-8251-25501 successfully

[INFO] All completed. WeCross routers are generated in: routers-payment/

3 部署账户服务

执行过程中需输入相应数据库的配置。

cd ~/wecross-networks

bash <(curl -sL https://github.com/WeBankBlockchain/WeCross/releases/download/resources/download_account_manager.sh)

# 若出现长时间下载WeCross-Account-Manager包失败,请尝试以下命令重新下载:

bash <(curl -sL https://gitee.com/WeBank/WeCross/raw/master/scripts/download_account_manager.sh)

在这里插入图片描述

4 拷贝证书

cd ~/wecross-networks/WeCross-Account-Manager/

cp ~/wecross-networks/routers-payment/cert/sdk/* conf/

5 生成私钥

bash create_rsa_keypair.sh -d conf/

6 配置

cp conf/application-sample.toml conf/application.toml

vim conf/application.toml

需配置内容包括:

admin:配置admin账户,此处可默认,router中的admin账户需与此处对应,用于登录账户服务

db:配置自己的数据库账号密码

在这里插入图片描述

7 启动

bash start.sh

8 启动跨链路由

# 启动 router-8250

cd ~/wecross-networks/routers-payment/127.0.0.1-8250-25500/

bash start.sh

# 启动 router-8251

cd ~/wecross-networks/routers-payment/127.0.0.1-8251-25501/

bash start.sh

启动成功,输出如下:

WeCross booting up …WeCross start successfully

如果启动失败,检查8250, 25500端口是否被占用。

netstat -napl | grep 8250

netstat -napl | grep 25500

netstat -napl | grep 8251

netstat -napl | grep 25501

9 部署控制台

下载
cd ~/wecross-networks

bash <(curl -sL https://github.com/WeBankBlockchain/WeCross/releases/download/resources/download_console.sh)

# 若出现长时间下载WeCross-Console包失败,请尝试以下命令重新下载:

bash <(curl -sL https://gitee.com/WeBank/WeCross/raw/master/scripts/download_console.sh)
配置
cd ~/wecross-networks/WeCross-Console

# 拷贝连接router所需的TLS证书,从生成的routers-payment/cert/sdk目录下拷贝

cp ~/wecross-networks/routers-payment/cert/sdk/* conf/ 

# 拷贝配置文件,并配置跨链路由RPC服务地址以及端口。此处采用默认配置,默认连接至本地8250端口。

cp conf/application-sample.toml conf/application.toml
启动
bash start.sh

启动成功则输出如下信息,通过help可查看控制台帮助。

===============================================================================

Welcome to WeCross console(v1.1.0)!

Type ‘help’ or ‘h’ for help. Type ‘quit’ or ‘q’ to quit console.

===============================================================================

测试功能

# 正常进入,可先退出控制台,等待后续配置

[WeCross]> quit

二 接入bcos

1. 搭建区块链

# 创建操作目录

mkdir -p ~/wecross-networks/bcos && cd ~/wecross-networks/bcos

# 下载build_chain.sh脚本

curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.7.1/build_chain.sh && chmod u+x build_chain.sh

# 若因为网络原因出现长时间下载失败,请尝试以下命令:

curl -LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/v2.7.1/tools/build_chain.sh && chmod u+x build_chain.sh

# 搭建单群组4节点联盟链# 在fisco目录下执行下面的指令,生成一条单群组4节点的FISCO链。请确保机器的3030030303,2020020203,8545~8548端口没有被占用。# 命令执行成功会输出All completed。如果执行出错,请检查nodes/build.log文件中的错误信息。

bash build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545

#启动所有节点

bash nodes/127.0.0.1/start_all.sh

在这里插入图片描述

2. 安装插件

2.1 下载编译

# 拉取代码

git clone https://github.com/WeBankBlockchain/WeCross-BCOS2-Stub.git

# 若因网络原因出现长时间下载失败,请尝试以下命令:

git clone https://gitee.com/WeBank/WeCross-BCOS2-Stub.git

# 在 dist/apps/ 下生成 bcos2-stub-XXXXX.jar 和 bcos2-stub-gm-xxxx.jar

cd WeCross-BCOS2-Stub

bash gradlew assemble 
2.2 拷贝安装

在跨链路由的主目录下创建plugin目录,然后将插件拷贝到该目录下完成安装。

cp dist/apps/* ~/wecross-networks/routers-payment/127.0.0.1-8250-25500/plugin/

3. 配置插件

3.1 生成配置框架

进入跨链路由的主目录,用add_chain.sh脚本在conf目录下生成BCOS链的配置框架。

cd ~/wecross-networks/routers-payment/127.0.0.1-8250-25500

# -t 链类型,-n 指定链名字,可根据-h查看使用说明

bash add_chain.sh -t BCOS2.0 -n bcos

执行成功,输出如下。如果执行出错,请查看屏幕打印提示。

Chain “bcos” config framework has been generated to “conf/chains/bcos”

3.2 完成配置
拷贝证书

为了能够连接BCOS链的节点,需要拷贝节点SDK的证书,证书位于节点的nodes/127.0.0.1/sdk/目录。

# 证书目录以实际情况为准

cp -r xxxxxx/nodes/127.0.0.1/sdk/*   ~/wecross-networks/routers-payment/127.0.0.1-8250-25500/conf/chains/bcos/
编辑插件配置文件stub.toml

根据实际情况编辑[chain]、[channelService]的各个配置项。
在这里插入图片描述

4. 部署系统合约

4.1 非国密链

# 部署代理合约

bash deploy_system_contract.sh -t BCOS2.0 -c chains/bcos -P

# 部署桥接合约

bash deploy_system_contract.sh -t BCOS2.0 -c chains/bcos -H

在这里插入图片描述

4.2 国密链

# 部署代理合约

bash deploy_system_contract.sh -t GM_BCOS2.0 -c chains/bcos -P

# 部署桥接合约

bash deploy_system_contract.sh -t GM_BCOS2.0 -c chains/bcos -H

三 接入fabric1.4

1. 搭建区块链

mkdir -p ~/wecross-networks/fabric && cd ~/wecross-networks/fabric

# 下载Demo包

bash <(curl -sL https://github.com/WeBankBlockchain/wecross/releases/download/resources/download_demo.sh)

# 若出现长时间下载Demo包失败,请尝试以下命令重新下载:

bash <(curl -sL https://gitee.com/WeBank/WeCross/raw/master/scripts/download_demo.sh)

# 拷贝其中的Fabric demo链环境

cp ./wecross-demo/fabric/* ./

# 搭链,若出错,执行 bash clear.sh 后重新 bash build.sh

bash build.sh

2. 安装插件

2.1 下载编译
git clone https://github.com/WeBankBlockchain/WeCross-Fabric1-Stub.git

# 若因网络原因出现长时间拉取代码失败,请尝试以下命令:

git clone https://gitee.com/WeBank/WeCross-Fabric1-Stub.git

cd WeCross-Fabric1-Stub

# 在 dist/apps/ 下生成 fabric1-stub-XXXXX.jar

bash gradlew assemble

2.2 拷贝安装

在跨链路由的主目录下创建plugin目录,然后将插件拷贝到该目录下完成安装。

cp dist/apps/* ~/wecross-networks/routers-payment/127.0.0.1-8251-25501/plugin/

3. 配置内置账户

# 切换至对应跨链路由的主目录

cd ~/wecross-networks/routers-payment/127.0.0.1-8251-25501/

# 用脚本生成Fabric账户配置:账户类型(Fabric1.4),账户名(fabric_admin)# 接入Fabric链,需要配置一个admin账户

bash add_account.sh -t Fabric1.4 -n fabric_admin 

# 为Fabric链的每个Org都配置一个admin账户,此处有两个org(Org1和Org2),分别配两个账户

# 配Org1的admin

bash add_account.sh -t Fabric1.4 -n fabric_admin_org1

# 配Org2的admin

bash add_account.sh -t Fabric1.4 -n fabric_admin_org2
3.2 完成配置
修改账户配置

生成的账户配置,默认的mspid为Org1MSP,需将Org2的账户的mspid配置为Org2MSP的。此处只需修改fabric_admin_org2账户的配置。

vim conf/accounts/fabric_admin_org2/account.toml

# 修改mspid,将 ‘Org1MSP’ 更改为 ‘Org2MSP’

拷贝证书文件

Fabric链的证书位于crypto-config目录,请参考以下命令并根据实际情况完成相关证书的拷贝。
在这里插入图片描述

cd ~/wecross-networks/routers-payment/127.0.0.1-8251-25501

# 配置fabric_admin

# 拷贝私钥

cp xxxxxx/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/*_sk  conf/accounts/fabric_admin/account.key

# 拷贝证书

cp xxxxxx/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem   conf/accounts/fabric_admin/account.crt

# 配置fabric_admin_org1

# 拷贝私钥

cp xxxxxx/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/*_sk   conf/accounts/fabric_admin_org1/account.key

# 拷贝证书

cp xxxxxx/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem   conf/accounts/fabric_admin_org1/account.crt

# 配置fabric_admin_org2

# 拷贝私钥

cp xxxxxx/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/*_sk   conf/accounts/fabric_admin_org2/account.key

# 拷贝证书

cp xxxxxx/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-ce

4. 配置插件

4.1 生成插件配置框架

进入跨链路由的主目录,用add_chain.sh脚本在conf目录下生成Fabric链的配置框架。

cd ~/wecross-networks/routers-payment/127.0.0.1-8251-25501

# -t 链类型,-n 指定链名字,可根据-h查看使用说明

bash add_chain.sh -t Fabric1.4 -n fabric

执行成功,输出如下。如果执行出错,请查看屏幕打印提示。

SUCCESS: Chain “fabric” config framework has been generated to “conf/chains/fabric”

4.2 完成配置
拷贝证书

相关证书同样位于crypto-config目录,请参考以下命令并根据实际情况完成相关证书的拷贝。

# 假设当前位于跨链路由的主目录# 拷贝orderer证书

cp xxxxxx/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem   conf/chains/fabric/orderer-tlsca.crt

# 拷贝org1证书

cp xxxxxx/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt   conf/chains/fabric/org1-tlsca.crt

# 拷贝org2证书

cp xxxxxx/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt   conf/chains/fabric/org2-tlsc
编辑插件配置文件stub.toml

根据实际情况编辑[fabricServices]、[orgs]的各个配置项。

在这里插入图片描述

5.部署系统合约

# 部署代理合约

bash deploy_system_contract.sh -t Fabric1.4 -c chains/fabric -P

# 部署桥接合约

bash deploy_system_contract.sh -t Fabric1.4 -c chains/fabric -H

在这里插入图片描述

WeCross架构

WeCross是微众区块链跨链协作平台,新版本对Stub(跨链路由)进行了插件化封装,开发者只需根据插件规范进行开发,即可让WeCross接入不同类型的链,此外,还基于HTLC(哈希时间锁定)事务机制,实现了跨链转账,让资产能够在不同链之间流转。

在这里插入图片描述
首先我们会以一个用户的身份去调用跨链应用----->之后我们使用跨链路由来进行联系----->他们统一运行在一个stub 中这个叫跨链适配器大概作用就和EVM一样------>多链之间使用统一暴露的接口进行联系

其次就是我对这个应用的理解,他就像我们的手机一样打电话给对方就是p2p,然后使用手机卡进行身份判定,在之后有手机装手机卡,启动使手机拥有打电话功能与身份

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值