chain33中broker合约的初始化及使用
根据Chain33开发环境搭建,搭好环境
- broker合约的初始化
构建交易
harry@harry-VirtualBox:~/chain33$ ./chain33-cli broker init_broker -a chain33 -b link33 --rpc_laddr="http://localhost:8901"
0x0a0662726f6b6572121530650a110a066c696e6b33331207636861696e333320a08d0630d9b1f397bdd9bf9e153a22314b324139785243724d7a69515965623468446b516668786947336f5a4d45784355
签名和发送
harry@harry-VirtualBox:~/chain33$ ./chain33-cli wallet sign -d 0x0a0662726f6b6572121530650a110a066c696e6b33331207636861696e333320a08d0630d9b1f397bdd9bf9e153a22314b324139785243724d7a69515965623468446b516668786947336f5a4d45784355 -k cc38546e9e659d15e6b4893f0ab32a06d103931a8230b0bde71459d2b27d6944
0a0662726f6b6572121530650a110a066c696e6b33331207636861696e33331a6d0801122102504fa1c28caaf1d5a20fefb87c50a49724ff401043420cb3ba271997eb5a43871a463044022100bebd8e86fba6432ac61fde79e0c971b0ccb5382627d943413eaec641711bfe89021f5f69b24c65bdcf2a393376fc38d6b3f3b82d7d5f82fd26f204a0343b23acbf20a08d0628ebab808e0630d9b1f397bdd9bf9e153a22314b324139785243724d7a69515965623468446b516668786947336f5a4d45784355
harry@harry-VirtualBox:~/chain33$ ./chain33-cli wallet send -d 0a0662726f6b6572121530650a110a066c696e6b33331207636861696e33331a6d0801122102504fa1c28caaf1d5a20fefb87c50a49724ff401043420cb3ba271997eb5a43871a463044022100bebd8e86fba6432ac61fde79e0c971b0ccb5382627d943413eaec641711bfe89021f5f69b24c65bdcf2a393376fc38d6b3f3b82d7d5f82fd26f204a0343b23acbf20a08d0628ebab808e0630d9b1f397bdd9bf9e153a22314b324139785243724d7a69515965623468446b516668786947336f5a4d45784355 --rpc_laddr="http://localhost:8901"
0x8ddf40ca30a9948fef7fed50e459f72fe8b48f2ad4e4a434531c1565c80256ec
- 查看broker版本信息
harry@harry-VirtualBox:~/chain33$ ./chain33-cli broker get --rpc_laddr="http://localhost:8901"
link33:chain33:
- 设置KV值
//设置 k=v1,value=version1
harry@harry-VirtualBox:~/chain33$ ./chain33-cli broker interchainSet -k v1 -v version1 --rpc_laddr="http://localhost:8901"
0x0a0773746f72616765121238010a0e12027631220876657273696f6e3120a08d0630bbdda5b7f29fceeb4b3a22314d7248544a75627137447669504e3573587345426d3839724338756d4738587744
// 签名
harry@harry-VirtualBox:~/chain33$ ./chain33-cli wallet sign -d 0x0a0773746f72616765121238010a0e12027631220876657273696f6e3120a08d0630bbdda5b7f29fceeb4b3a22314d7248544a75627137447669504e3573587345426d3839724338756d4738587744 -k cc38546e9e659d15e6b4893f0ab32a06d103931a8230b0bde71459d2b27d6944
0a0773746f72616765121238010a0e12027631220876657273696f6e311a6d0801122102504fa1c28caaf1d5a20fefb87c50a49724ff401043420cb3ba271997eb5a43871a46304402200806215554d5eff8a1693b1bd4116e7b967da17ac47bdf059c8c720b9b38e8580220266b721c152aecd43cd055b0d04b64a1fe9b9a87981bd9f408dce38b2b65e98720a08d0628b1b4808e0630bbdda5b7f29fceeb4b3a22314d7248544a75627137447669504e3573587345426d3839724338756d4738587744
//发送交易
harry@harry-VirtualBox:~/chain33$ ./chain33-cli wallet send -d 0a0773746f72616765121238010a0e12027631220876657273696f6e311a6d0801122102504fa1c28caaf1d5a20fefb87c50a49724ff401043420cb3ba271997eb5a43871a46304402200806215554d5eff8a1693b1bd4116e7b967da17ac47bdf059c8c720b9b38e8580220266b721c152aecd43cd055b0d04b64a1fe9b9a87981bd9f408dce38b2b65e98720a08d0628b1b4808e0630bbdda5b7f29fceeb4b3a22314d7248544a75627137447669504e3573587345426d3839724338756d4738587744 --rpc_laddr="http://localhost:8901"
0xf7d49c37e6fcf7cc286605afd9441e12d80ae67d06894fbcfb039c8a641ef409
- 查看值
harry@harry-VirtualBox:~/chain33$ ./chain33-cli broker query -k v1 --rpc_laddr="http://localhost:8901"
version1
跨链请求操作示例
执行本操作之前需要完成基础环境的搭建,chain33,fabric及sidecar都已经正常启动
假设 fabric中有key=v2的值,这时我们需要请求交易从fabric上面获取key=v2的具体值
harry@harry-VirtualBox:~/chain33$ ./chain33-cli broker interchainGet -a v2 -c v2 -r v2 -d "link33:fabric:mychannel&data_swapper" -f "interchainGet,interchainSet," --rpc_laddr="http://localhost:8901"
0x0a0662726f6b657212543069225012246c696e6b33333a6661627269633a6d796368616e6e656c26646174615f737761707065722a1c696e746572636861696e4765742c696e746572636861696e5365742c320276323a0276324202763220a08d0630b1e7e0e5c4fdc8a9373a22314b324139785243724d7a69515965623468446b516668786947336f5a4d45784355
harry@harry-VirtualBox:~/chain33$ ./chain33-cli wallet sign -d 0x0a0662726f6b657212543069225012246c696e6b33333a6661627269633a6d796368616e6e656c26646174615f737761707065722a1c696e746572636861696e4765742c696e746572636861696e5365742c320276323a0276324202763220a08d0630b1e7e0e5c4fdc8a9373a22314b324139785243724d7a69515965623468446b516668786947336f5a4d45784355 -k cc38546e9e659d15e6b4893f0ab32a06d103931a8230b0bde71459d2b27d6944
0a0662726f6b657212543069225012246c696e6b33333a6661627269633a6d796368616e6e656c26646174615f737761707065722a1c696e746572636861696e4765742c696e746572636861696e5365742c320276323a027632420276321a6d0801122102504fa1c28caaf1d5a20fefb87c50a49724ff401043420cb3ba271997eb5a43871a46304402200210a62a93e2a43e95f4361d65d016515498beb73369475a6c7ad63608203b080220279f594549f9bd6ce5e8f13b7d7ea7bd6c7123ed76129de7c9f5a8cdd92e2a8620a08d0628aecf808e0630b1e7e0e5c4fdc8a9373a22314b324139785243724d7a69515965623468446b516668786947336f5a4d45784355
harry@harry-VirtualBox:~/chain33$ ./chain33-cli wallet send -d 0a0662726f6b657212543069225012246c696e6b33333a6661627269633a6d796368616e6e656c26646174615f737761707065722a1c696e746572636861696e4765742c696e746572636861696e5365742c320276323a027632420276321a6d0801122102504fa1c28caaf1d5a20fefb87c50a49724ff401043420cb3ba271997eb5a43871a46304402200210a62a93e2a43e95f4361d65d016515498beb73369475a6c7ad63608203b080220279f594549f9bd6ce5e8f13b7d7ea7bd6c7123ed76129de7c9f5a8cdd92e2a8620a08d0628aecf808e0630b1e7e0e5c4fdc8a9373a22314b324139785243724d7a69515965623468446b516668786947336f5a4d45784355 --rpc_laddr="http://localhost:8901"
0x9dde6a0b5351c29f38fb8f3ad0f856b99fcf87bdfa181c4bbb110609e9cdbcdc
正确响应后,网关节点会有如下日志
...
INFO[2021-12-20T14:47:28.026] start p2p success module=lightp2p
INFO[2021-12-20T14:47:32.029] Connect successfully address:=0x44CcF7412C51BAFCE7e7b6301148eD767FFA561d module=peer_mgr node=QmNhN9v8vi7pBs7LqknXKWVYJafMu6v9d1fD6b3ogZNnTs
INFO[2021-12-20T14:48:43.373] Apply tx from="link33:chain33:local&broker" id="link33:chain33:local&broker-link33:fabric:mychannel&data_swapper-2" index=2 module=app type=RECEIPT_SUCCESS
2021-12-20T14:48:43.375+0800 [DEBUG] plugin.sh: 2021-12-20T14:48:43.374+0800 [INFO ] client: =======content===func:interchainSet,args:,v2,version2,callback:,argscb:
INFO[2021-12-20T14:48:44.722] Execute callback fields.msg=0xe09f176d1dfd28264a5c1ec8a181df61dda828ddc8eb5d0235be62d810b7568d index=2 module=app status=true type=RECEIPT_SUCCESS
- 在chain33上面查询以下v2的值,看是否已经从fabric上写入到chain33中
harry@harry-VirtualBox:~/chain33$ ./chain33-cli broker query -k v2 --rpc_laddr="http://localhost:8901"
version2
这样看是跨链成功了