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,然后使用手机卡进行身份判定,在之后有手机装手机卡,启动使手机拥有打电话功能与身份文章来源:https://www.toymoban.com/news/detail-783732.html
文章来源地址https://www.toymoban.com/news/detail-783732.html
到了这里,关于WeCross部署及架构解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!