手动组网
本文档介绍以手动的方式,一步步搭建一个与Demo相同的跨链网络。
快速部署
- 跨链路由:与区块链节点对接,并彼此互连,形成跨链分区,负责跨链请求的转发
- 跨链控制台:查询和发送交易的操作终端
操作以~/wecross/
目录下为例进行。若Demo未清理,请先清理Demo环境。
- mkdir -p ~/wecross/ && cd ~/wecross/
部署 WeCross Router
下载WeCross,用WeCross中的工具生成跨链路由,并启动跨链路由。
下载WeCross
WeCross中包含了生成跨链路由的工具,执行以下命令进行下载(提供三种下载方式,可根据网络环境选择合适的方式进行下载),程序下载至当前目录WeCross/
中。
- bash <(curl -sL https://github.com/WeBankFinTech/WeCross/releases/download/resources/download_wecross.sh)
生成跨链路由
本例将构建两个跨链路由。首先创建一个ipfile
配置文件,将需要构建的两个跨链路由信息(ip:rpc_port:p2p_port
)按行分隔,保存到文件中。
注:请确保机器的8250
,8251
, 25500
,25501
端口没有被占用。
- cd ~/wecross
- 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/
注解
- -n 指定跨链分区标识符(zone id),跨链分区通过zone id进行区分,可以理解为业务名称。
- -o 指定输出的目录,并在该目录下生成一个跨链路由。
- -f 指定需要生成的WeCross跨链路由的列表,包括ip地址,rpc端口,p2p端口,生成后的router已完成互联配置。
在routers-payment目录下生成了两个跨链路由。
- tree routers-payment/ -L 1
- routers-payment/
- ├── 127.0.0.1-8251-25501
- ├── 127.0.0.1-8252-25502
- └── cert
生成的跨链路由目录内容如下,以127.0.0.1-8250-25500
为例。
- # 已屏蔽lib目录,该目录存放所有依赖的jar包
- tree routers-payment/127.0.0.1-8250-25500/ -I "lib"
- routers-payment/127.0.0.1-8250-25500/
- ├── add_account.sh # 账户生成脚本
- ├── add_chain.sh # 区块链配置文件创建脚本
- ├── apps
- │ └── WeCross.jar # WeCross路由jar包
- ├── build_wecross.sh
- ├── conf # 配置文件目录
- │ ├── accounts # 账户配置目录
- │ ├── application.properties
- │ ├── chains # 区块链配置目录,要接入不同的链,在此目录下进行配置
- │ ├── log4j2.xml
- │ ├── ca.crt # 根证书
- │ ├── ssl.crt # 跨链路由证书
- │ ├── ssl.key # 跨链路由私钥
- │ ├── node.nodeid # 跨链路由nodeid
- │ └── wecross.toml # WeCross Router主配置文件
- ├── create_cert.sh # 证书生成脚本
- ├── download_wecross.sh
- ├── plugin # 插件目录,接入相应类型链的插件
- │ ├── bcos-stub-gm.jar
- │ ├── bcos-stub.jar
- │ └── fabric-stub.jar
- ├── start.sh # 启动脚本
- └── stop.sh # 停止脚本
启动跨链路由
- # 启动 router-8250
- cd ~/wecross/routers-payment/127.0.0.1-8250-25500/
- bash start.sh # 停止: bash stop.sh
- # 启动 router-8251
- cd ~/wecross/routers-payment/127.0.0.1-8251-25501/
- bash start.sh # 停止: bash stop.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
部署WeCross控制台
WeCross提供了控制台,方便用户进行跨链开发和调试。可通过脚本build_console.sh
搭建控制台。
下载WeCross控制台
执行如下命令进行下载(提供三种下载方式,可根据网络环境选择合适的方式进行下载),下载完成后在当前目录下生成WeCross-Console
目录。
- cd ~/wecross/
- bash <(curl -sL https://github.com/WeBankFinTech/WeCross/releases/download/resources/download_console.sh)
配置控制台
- cd ~/wecross/WeCross-Console
- # 拷贝连接router所需的TLS证书,从生成的routers-payment/cert/sdk目录下拷贝
- cp ~/wecross/routers-payment/cert/sdk/* conf/ # 包含:ca.crt、node.nodeid、ssl.crt、ssl.key
- # 拷贝配置文件,并配置跨链路由RPC服务地址以及端口。此处采用默认配置,默认连接至本地8250端口。
- cp conf/application-sample.toml conf/application.toml
重要
- 若搭建WeCross的IP和端口未使用默认配置,需自行更改WeCross-Console/conf/application.toml,详见 控制台配置。
启动控制台
- bash start.sh
启动成功则输出如下信息,通过help
可查看控制台帮助
- =================================================================================
- Welcome to WeCross console(v1.0.0-rc2)!
- Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
- =================================================================================
测试功能
- # 查看连接的router当前支持接入的链类型
- [WeCross]> supportedStubs
- [BCOS2.0, GM_BCOS2.0, Fabric1.4]
- # 退出控制台
- [server1]> q
更多控制台命令及含义详见控制台命令。
接入区块链
完成了WeCross的部署,如何让它和一条真实的区块链交互,相信优秀的您一定在跃跃欲试。本节包括
- 接入BCOS链:在router-8250上接入,配置交易发送账户
- 接入Fabric链:在router-8251上接入,配置交易发送账户
搭建区块链
在接入区块链前,先给出BCOS和Fabric链的搭建过程。
搭建BCOS链
FISCO BCOS官方提供了一键搭链的教程,详见单群组FISCO BCOS联盟链的搭建
详细步骤如下:
- 脚本建链
- # 创建操作目录
- mkdir -p ~/wecross/bcos && cd ~/wecross/bcos
- # 下载build_chain.sh脚本
- curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.4.0/build_chain.sh && chmod u+x build_chain.sh
- # 搭建单群组4节点联盟链
- # 在fisco目录下执行下面的指令,生成一条单群组4节点的FISCO链。请确保机器的30300~30303,20200~20203,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
启动成功会输出类似下面内容的响应。否则请使用netstat -an | grep tcp
检查机器的30300~30303,20200~20203,8545~8548
端口是否被占用。
- try to start node0
- try to start node1
- try to start node2
- try to start node3
- node1 start successfully
- node2 start successfully
- node0 start successfully
- node3 start successfully
部署HelloWeCross合约
通过FISCO BCOS控制台部署HelloWeCross
合约,控制台的安装和使用详见官方文档配置及使用控制台
HelloWeCros
合约位于~/wecross/routers-payment/127.0.0.1-8250-25500/conf/chains-sample/bcos/
控制台安装配置完后启动并部署HelloWeCross.sol
,详细步骤如下:
- 安装控制台
- # 获取控制台
- cd ~/wecross/bcos/nodes/127.0.0.1/
- bash download_console.sh -v 1.0.9
- # 拷贝控制台配置文件
- # 若节点未采用默认端口,请将文件中的20200替换成节点对应的channle端口。
- cp -n console/conf/applicationContext-sample.xml console/conf/applicationContext.xml
- # 配置控制台证书
- cp ~/wecross/bcos/nodes/127.0.0.1/sdk/* console/conf/
- 拷贝合约文件
将HelloWeCross
合约拷贝至FISCO BCOS控制台目录。
- cp ~/wecross/routers-payment/127.0.0.1-8250-25500/conf/chains-sample/bcos/HelloWeCross.sol console/contracts/solidity/
- 启动控制台
- bash console/start.sh
输出下述信息表明启动成功,否则请检查conf/applicationContext.xml
中节点端口配置是否正确。
- =============================================================================================
- Welcome to FISCO BCOS console(1.0.9)!
- Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
- ________ ______ ______ ______ ______ _______ ______ ______ ______
- | \| \ / \ / \ / \ | \ / \ / \ / \
- | $$$$$$$$ \$$$$$$| $$$$$$\| $$$$$$\| $$$$$$\ | $$$$$$$\| $$$$$$\| $$$$$$\| $$$$$$\
- | $$__ | $$ | $$___\$$| $$ \$$| $$ | $$ | $$__/ $$| $$ \$$| $$ | $$| $$___\$$
- | $$ \ | $$ \$$ \ | $$ | $$ | $$ | $$ $$| $$ | $$ | $$ \$$ \
- | $$$$$ | $$ _\$$$$$$\| $$ __ | $$ | $$ | $$$$$$$\| $$ __ | $$ | $$ _\$$$$$$\
- | $$ _| $$_ | \__| $$| $$__/ \| $$__/ $$ | $$__/ $$| $$__/ \| $$__/ $$| \__| $$
- | $$ | $$ \ \$$ $$ \$$ $$ \$$ $$ | $$ $$ \$$ $$ \$$ $$ \$$ $$
- \$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$
- =============================================================================================
- 部署合约
- [group:1]> deploy HelloWeCross
- contract address: 0x19a70c01e801d3cac241de5f11686e3aa01e463b
- # 退出控制台
- [group:1]> quit
将HelloWeCross
的合约地址记录下来,后续步骤中使用:
contract address: 0x19a70c01e801d3cac241de5f11686e3aa01e463b
搭建Fabric链
为方便Fabric链的搭建,WeCross Demo包中提供了Fabric链搭建脚本。若下载较慢,可选择更多下载方式。
- mkdir -p ~/wecross/fabric && cd ~/wecross/fabric
- # 下载Demo包
- bash <(curl -sL https://github.com/WeBankFinTech/WeCross/releases/download/resources/download_demo.sh)
- cp demo/fabric/* ./
- # 搭建
- bash build.sh # 若出错,执行 bash clear.sh 后重新 bash build.sh
搭建成功,查看Fabric链各个容器运行状态。
- docker ps
可看到各个容器的状态:
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 3b55f9681227 dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab "chaincode -peer.add…" 13 minutes ago Up 13 minutes dev-peer1.org2.example.com-mycc-1.0
- 2d8d660c9481 dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9 "chaincode -peer.add…" 13 minutes ago Up 13 minutes dev-peer0.org1.example.com-mycc-1.0
- b82b0b8dcc0f dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b "chaincode -peer.add…" 14 minutes ago Up 14 minutes dev-peer0.org2.example.com-mycc-1.0
- 441ca8a493fc hyperledger/fabric-tools:latest "/bin/bash" 14 minutes ago Up 14 minutes cli
- de0d32730926 hyperledger/fabric-peer:latest "peer node start" 14 minutes ago Up 14 minutes 0.0.0.0:9051->9051/tcp peer0.org2.example.com
- ad98565bfa57 hyperledger/fabric-peer:latest "peer node start" 14 minutes ago Up 14 minutes 0.0.0.0:10051->10051/tcp peer1.org2.example.com
- bf0d9b0c54bf hyperledger/fabric-peer:latest "peer node start" 14 minutes ago Up 14 minutes 0.0.0.0:8051->8051/tcp peer1.org1.example.com
- b4118a65f01a hyperledger/fabric-orderer:latest "orderer" 14 minutes ago Up 14 minutes 0.0.0.0:7050->7050/tcp orderer.example.com
- fcf1bfe17dbe hyperledger/fabric-peer:latest "peer node start" 14 minutes ago Up 14 minutes 0.0.0.0:7051->7051/tcp peer0.org1.example.com
接入BCOS链
添加账户
在router中添加用于向链上发交易的账户。账户配置好后,可通过跨链网络向相应的链发交易,交易可被router转发至对应的链上。
添加BCOS账户
所配置的账户可用于向BCOS2.0
类型的链发交易。
- # 切换至对应router的目录下
- cd ~/wecross/routers-payment/127.0.0.1-8250-25500/
- # 用脚本生成BCOS账户:账户类型(BCOS2.0),账户名(bcos_user1)
- bash add_account.sh -t BCOS2.0 -n bcos_user1
生成的bcos_user1文件目录如下:
- tree conf/accounts/bcos_user1/
- conf/accounts/bcos_user1/
- ├── account.key
- └── account.toml
添加Fabric账户
所配置的账户可用于向Fabric1.4
类型的链发交易。
- # 用脚本生成Fabric账户:账户类型(Fabric1.4),账户名(fabric_user1)
- bash add_account.sh -t Fabric1.4 -n fabric_user1
- cp ~/wecross/fabric/certs/accounts/fabric_user1/* conf/accounts/fabric_user1/ # 拷贝 Fabric链的证书,具体说明请参考《跨链接入》章节
生成的fabric_user1文件目录如下:
- tree conf/accounts/fabric_user1/
- conf/accounts/fabric_user1/
- ├── account.crt
- ├── account.key
- └── account.toml
配置接入BCOS链
为router添加需要接入的链配置。
生成配置文件
切换至跨链路由的目录,用 add_chain.sh 脚本在conf
目录下生成bcos的配置文件框架。
- cd ~/wecross/routers-payment/127.0.0.1-8250-25500
- # -t 链类型,-n 指定链名字
- bash add_chain.sh -t BCOS2.0 -n bcos
生成的目录结构如下:
- tree conf/chains/bcos
- conf/chains/bcos
- └── stub.toml # chain配置文件
命令执行成功会输出operator: chain type: BCOS2.0 path: conf/chains/bcos
,如果执行出错,请查看屏幕打印提示。
之后只需要配置证书、群组以及资源信息。
配置BCOS节点连接
- 拷贝证书
- cp ~/wecross/bcos/nodes/127.0.0.1/sdk/* conf/chains/bcos/
- 修改配置
- vim conf/chains/bcos/stub.toml
如果搭FISCO BCOS链采用的都是默认配置,那么将会得到一条单群组四节点的链,群组ID为1,可连接至节点0的channel端口20200
,则配置如下:
- [chain]
- groupId = 1 # default 1
- chainId = 1 # default 1
- [channelService]
- caCert = 'ca.crt'
- sslCert = 'sdk.crt'
- sslKey = 'sdk.key'
- timeout = 300000 # ms, default 60000ms
- connectionsStr = ['127.0.0.1:20200']
配置跨链资源
在stub.toml
文件中配置HelloWeCross
合约资源信息,让此跨链路由能够访问此合约。可将配置中多余的资源配置举例删除。
在前面的步骤中,已经通过FISCO BCOS控制台部署了一个HelloWeCross
合约,地址为0x19a70c01e801d3cac241de5f11686e3aa01e463b
,将contractAddress
配置为该地址中。
- [[resources]]
- # name cannot be repeated
- name = 'HelloWeCross'
- type = 'BCOS_CONTRACT'
- contractAddress = '0x19a70c01e801d3cac241de5f11686e3aa01e463b'
完整配置
此时已完成bcos
的连接配置,并注册了一个合约资源,最终的stub.toml
文件如下。参考此处获取更详尽的配置说明
- [common]
- name = 'bcos'
- type = 'BCOS2.0' # BCOS
- [chain]
- groupId = 1 # default 1
- chainId = 1 # default 1
- [channelService]
- caCert = 'ca.crt'
- sslCert = 'sdk.crt'
- sslKey = 'sdk.key'
- timeout = 300000 # ms, default 60000ms
- connectionsStr = ['127.0.0.1:20200']
- # resources is a list
- [[resources]]
- # name cannot be repeated
- name = 'HelloWeCross'
- type = 'BCOS_CONTRACT'
- contractAddress = '0x19a70c01e801d3cac241de5f11686e3aa01e463b'
启动路由
启动跨链路由加载已配置的跨链资源。
- cd ~/wecross/routers-payment/127.0.0.1-8250-25500
- # 若WeCross跨链路由未停止,需要先停止
- bash stop.sh
- # 重新启动
- bash start.sh
检查日志,可看到刷出已加载的跨链资源,ctrl + c
退出。
- tail -f logs/info.log |grep "active resources"
- 2020-04-24 20:07:20.966 [Thread-4] INFO WeCrossHost() - Current active resources: payment.bcos.HelloWeCross(local)
- 2020-04-24 20:07:30.973 [Thread-4] INFO WeCrossHost() - Current active resources: payment.bcos.HelloWeCross(local)
- 2020-04-24 20:07:40.980 [Thread-4] INFO WeCrossHost() - Current active resources: payment.bcos.HelloWeCross(local)
接入Fabric链
添加账户
在router中添加用于向链上发交易的账户。
添加Fabric账户
- # 切换至对应router的目录下
- cd ~/wecross/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链的证书,具体说明请参考《跨链接入》章节
- cp ~/wecross/fabric/certs/accounts/fabric_admin/* conf/accounts/fabric_admin/
- # router-8250上配置的账户直接拷贝也可用
- cp -r ~/wecross/routers-payment/127.0.0.1-8250-25500/conf/accounts/fabric_user1 conf/accounts/
目前配置了两个账户,若此router需要向BCOS的链发交易,也可配置BCOS的账户。账户配置与接入的链无关,router间自动转发交易至相应的链。账户目录结构如下:
- tree conf/accounts
- conf/accounts
- ├── fabric_admin
- │ ├── account.crt
- │ ├── account.key
- │ └── account.toml
- └── fabric_user1
- ├── account.crt
- ├── account.key
- └── account.toml
配置接入Fabric链
为router添加需要接入的链配置。
生成配置文件
切换至跨链路由的目录,用 add_chain.sh 脚本在conf
目录下生成Fabric的配置文件框架。
- cd ~/wecross/routers-payment/127.0.0.1-8251-25501
- # -t 链类型,-n 指定链名字
- bash add_chain.sh -t Fabric1.4 -n fabric
生成的目录结构如下:
- tree conf/chains/fabric
- conf/chains/fabric
- └── stub.toml # chain配置文件
命令执行成功会输出operator: connection type: Fabric1.4 path: conf/chains//fabric
,如果执行出错,请查看屏幕打印提示。
配置Fabric节点连接
- 拷贝证书
- # 证书具体说明请参考《跨链接入》章节
- cp ~/wecross/fabric/certs/chains/fabric/* conf/chains/fabric/
- 修改配置
- vim conf/chains/fabric/stub.toml
相关配置项使用默认即可。
- [fabricServices]
- channelName = 'mychannel'
- orgName = 'Org1'
- mspId = 'Org1MSP'
- orgUserName = 'fabric_admin'
- orgUserAccountPath = 'classpath:accounts/fabric_admin'
- ordererTlsCaFile = 'orderer-tlsca.crt'
- ordererAddress = 'grpcs://localhost:7050'
- [peers]
- [peers.org1]
- peerTlsCaFile = 'org1-tlsca.crt'
- peerAddress = 'grpcs://localhost:7051'
- [peers.org2]
- peerTlsCaFile = 'org2-tlsca.crt'
- peerAddress = 'grpcs://localhost:9051'
配置跨链资源
- vim conf/chains/fabric/stub.toml
内容如下,fabric链中自带了一个名字为mycc
的chaincode,此处将mycc
配置为跨链资源,使其能够在WeCross网络中被调用。
- [[resources]]
- # name cannot be repeated
- name = 'abac'
- type = 'FABRIC_CONTRACT'
- chainCodeName = 'mycc'
- chainLanguage = "go"
- peers=['org1','org2']
完整配置
此时已完成fabric
的连接配置,并注册了一个合约资源,最终的stub.toml
文件如下。参考此处获取更详尽的配置说明
- [common]
- name = 'fabric'
- type = 'Fabric1.4'
- [fabricServices]
- channelName = 'mychannel'
- orgName = 'Org1'
- mspId = 'Org1MSP'
- orgUserName = 'fabric_admin'
- orgUserAccountPath = 'classpath:accounts/fabric_admin'
- ordererTlsCaFile = 'orderer-tlsca.crt'
- ordererAddress = 'grpcs://localhost:7050'
- [peers]
- [peers.org1]
- peerTlsCaFile = 'org1-tlsca.crt'
- peerAddress = 'grpcs://localhost:7051'
- [peers.org2]
- peerTlsCaFile = 'org2-tlsca.crt'
- peerAddress = 'grpcs://localhost:9051'
- # resources is a list
- [[resources]]
- # name cannot be repeated
- name = 'abac'
- type = 'FABRIC_CONTRACT'
- chainCodeName = 'mycc'
- chainLanguage = "go"
- peers=['org1','org2']
启动路由
启动跨链路由加载配置好的跨链资源。
- cd ~/wecross/routers-payment/127.0.0.1-8251-25501
- # 若WeCross跨链路由未停止,需要先停止
- bash stop.sh
- # 重新启动
- bash start.sh
检查日志,可看到刷出已加载的跨链资源,ctrl + c
退出。
- tail -f logs/info.log |grep "active resources"
- 2020-04-24 20:30:30.444 [Thread-2] INFO WeCrossHost() - Current active resources: payment.bcos.HelloWeCross(remote), payment.fabric.abac(local)
- 2020-04-24 20:30:40.458 [Thread-2] INFO WeCrossHost() - Current active resources: payment.bcos.HelloWeCross(remote), payment.fabric.abac(local)
- 2020-04-24 20:30:50.469 [Thread-2] INFO WeCrossHost() - Current active resources: payment.bcos.HelloWeCross(remote), payment.fabric.abac(local)
调用跨链资源
至此,已搭建了如图所示的跨链网络,本节将用控制台调用跨链资源。开发者也可基于WeCross Java SDK开发自己的跨链应用。
启动控制台
控制台连接的是router-8250
。
- cd ~/wecross/WeCross-Console
- # 配置连接至 router-8250,默认已配置,直接保存退出
- vim conf/application.toml
- # 启动控制台
- bash start.sh
查看资源
进入控制台,用listResources
命令查看WeCross跨连网络中的所有资源。可看到有两个资源:
- payment.bcos.HelloWeCross
- 对应于FISCO BCOS链上的HelloWeCross.sol合约
- payment.fabric.abac
- 对应于Fabric链上的abac.go合约
- [WeCross]> listResources
- path: payment.bcos.HelloWeCross, type: BCOS2.0, distance: 0
- path: payment.fabric.abac, type: Fabric1.4, distance: 1
- total: 2
查看账户
用listAccounts
命令查看WeCross Router上已存在的账户,操作资源时用相应账户进行操作。
- [WeCross]> listAccounts
- name: fabric_user1, type: Fabric1.4
- name: bcos_user1, type: BCOS2.0
- total: 2
操作资源:payment.bcos.HelloWeCross
- 读资源
- 命令:
call path 账户名 接口名 [参数列表]
- 示例:
call payment.bcos.HelloWeCross bcos_user1 get
- 命令:
- # 调用HelloWeCross合约中的get接口
- [WeCross]> call payment.bcos.HelloWeCross bcos_user1 get
- Result: [Talk is cheap, Show me the code]
- 写资源
- 命令:
sendTransaction path 账户名 接口名 [参数列表]
- 示例:
sendTransaction payment.bcos.HelloWeCross bcos_user1 set Tom
- 命令:
- # 调用HelloWeCross合约中的set接口
- [WeCross]> sendTransaction payment.bcos.HelloWeCross bcos_user1 set Tom
- Txhash : 0x21a412a1eb5239f2da9d40d09d11ce0107a5d82d113f1ecb315f2aa5bd3cc0cd
- BlockNum: 2
- Result : [Tom] // 将Tom给set进去
- [WeCross]> call payment.bcos.HelloWeCross bcos_user1 get
- Result: [Tom] // 再次get,Tom已set
操作资源:payment.fabric.abac
跨链资源是对各个不同链上资源的统一和抽象,因此操作的命令是保持一致的。
- 读资源
- # 调用abac合约中的query接口
- [WeCross]> call payment.fabric.abac fabric_user1 query a
- Result: [90] // 初次query,a的值为90
- 写资源
- # 调用abac合约中的invoke接口
- [WeCross]> sendTransaction payment.fabric.abac fabric_user1 invoke a b 10
- Txhash : db44b064c54d4dc97f01cdcd013cae219f7849c329f38ee102853344d8f0004d
- BlockNum: 5
- Result : []
- [WeCross]> call payment.fabric.abac fabric_user1 query a
- Result: [80] // 再次query,a的值变成80
- # 退出当前控制台
- [WeCross]> quit
恭喜,你已经完成了整个WeCross网络的体验。相信优秀的你已经对WeCross有了大致的了解。接下来,你可以基于WeCross Java SDK开发更多的跨连应用,通过统一的接口对各种链上的资源进行操作。