部署docker-go智能合约时报错trying to send message larger than max
【问题分类】
- 智能合约相关
【问题描述】
长安链V2.2.1环境,采用cmc部署docker-go实例合约“contract_fact”时报错。报错信息如下:
Error: send INVOKE_CONTRACT failed, client.call failed, rpc error: code = ResourceExhausted desc = trying to send message larger than max (6153961 vs. 4194304)
在chainmaker.yml配置了docker vm如下:
vm:
# Enable docker go virtual machine
enable_dockervm: true
# Mount point in chainmaker
dockervm_mount_path: ../data/ljh-org1.qianjinlian.com/docker-go
# Specify log file path
dockervm_log_path: ../log/ljh-org1.qianjinlian.com/docker-go
# Whether to print log at terminal
log_in_console: false
# Log level
log_level: INFO
# Unix domain socket open, used for chainmaker and docker manager communication
uds_open: true
# docker vm contract service host, default 127.0.0.1
docker_vm_host: 127.0.0.1
# docker vm contract service port, default 22351
docker_vm_port: 22351
# Grpc max send message size, Default size is 4, Unit: MB
max_send_msg_size: 20
# Grpc max receive message size, Default size is 4, Unit: MB
max_recv_msg_size: 20
# max number of connection created to connect docker vm service
max_connection: 5
在start.sh脚本中配置DOCKERVM环境变量如下:
echo "start docker vm service container:"
docker run -itd \
-e ENV_LOG_IN_CONSOLE="$log_in_console" -e ENV_LOG_LEVEL="$log_level" -e ENV_ENABLE_UDS=true \
-e ENV_USER_NUM=1000 -e ENV_MAX_CONCURRENCY=100 -e ENV_TX_TIME_LIMIT=8 \
-e ENV_MAX_SEND_MSG_SIZE=20 -e ENV_MAX_RECV_MSG_SIZE=20 \
-v "$mount_path":/mount \
-v "$log_path":/log \
--name DOCKERVM-ljh-org2.qianjinlian.com \
--privileged $image_name
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information