智能合约DAPP程序搭建流程(系统开发源码)

2022-10-26 09:24:59 浏览数 (2)

使用CMC工具部署和调用GO智能合约

创建合约

下边是以官方提供的contract_fact存证示例合约为例:

代码语言:javascript复制
./cmc client contract user create 
--contract-name=contract_fact 
--runtime-type=DOCKER_GO 
--byte-code-path=./testdata/docker-go-demo/contract_fact.7z 
--version=1.0 
--sdk-conf-path=./testdata/sdk_config.yml 
--admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.tls.key,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.tls.key,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.tls.key,./testdata/crypto-config/wx-org4.chainmaker.org/user/admin1/admin1.tls.key 
--admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.tls.crt,./testdata/crypto-config/wx-org2.chainmaker.org/user/admin1/admin1.tls.crt,./testdata/crypto-config/wx-org3.chainmaker.org/user/admin1/admin1.tls.crt,./testdata/crypto-config/wx-org4.chainmaker.org/user/admin1/admin1.tls.crt 
--sync-result=true 
--params="{}"

这里可能会出现一个问题就是:请求消息太大,导致部署不成功。错误提示语如下

trying to send message larger than max (6153962 vs. 4194304)

此时需要修改连接配置:testdata/sdk_config.yml里边的rpc_client:

代码语言:javascript复制
  rpc_client:
    max_receive_message_size: 1000
    max_send_message_size: 1000

把max_send_message_size调大一些。这里还需要提一点就是JAVA SDK 2.2.0版本不支持max_send_message_size配置,算是一个BUG,所以如果尝试使用JAVA SDK部署合约时,发生上边的错误暂时只能改为通过CMC去部署。

调用合约

代码语言:javascript复制
./cmc client contract user invoke 
--contract-name=contract_fact 
--method=invoke_contract 
--sdk-conf-path=./testdata/sdk_config.yml 
--params="{"method":"save","file_name":"name007","file_hash":"ab3456df5799b87c77e7f88","time":"6543234"}" 
--sync-result=true

查询合约

代码语言:javascript复制
./cmc client contract user get 
--contract-name=contract_fact 

0 人点赞