WeBankBlockchain / WeBASE-Transaction

Apache License 2.0
16 stars 20 forks source link

contract deploy fail,error log is "code":-32603 #122

Closed meta-bowen closed 2 years ago

meta-bowen commented 3 years ago

Request URL

http://120.78.185.47:5003/WeBASE-Transaction/contract/deploy

Response body

{
  "code": 0,
  "message": "success",
  "data": null
}

log

2021-07-28 16:07:09.832 [http-nio-5003-exec-3] INFO ContractController() - deploy start. deployInfo:{"groupId":1,"uuidDeploy":"111","signType":2,"signUserId":"50062d36160b496e8c103a58818d8097","contractBin":"608060405234801561001057600080fd5b506040518060400160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b610310806101166000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634ed3885e1461003b5780636d4ce63c146100f6575b600080fd5b6100f46004803603602081101561005157600080fd5b810190808035906020019064010000000081111561006e57600080fd5b82018360208201111561008057600080fd5b803590602001918460018302840111640100000000831117156100a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610179565b005b6100fe610193565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013e578082015181840152602081019050610123565b50505050905090810190601f16801561016b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b806000908051906020019061018f929190610235565b5050565b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561022b5780601f106102005761010080835404028352916020019161022b565b820191906000526020600020905b81548152906001019060200180831161020e57829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061027657805160ff19168380011785556102a4565b828001600101855582156102a4579182015b828111156102a3578251825591602001919060010190610288565b5b5090506102b191906102b5565b5090565b6102d791905b808211156102d35760008160009055506001016102bb565b5090565b9056fea26469706673582212200190733195d78462d6c478ce8c1157316623d305da1dbed740fa63e5f092b60864736f6c634300060a0033","contractAbi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"get","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"n","type":"string"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"}],"funcParam":[]} 2021-07-28 16:07:09.857 [http-nio-5003-exec-3] INFO KeyStoreService() - checkSignUserId url:http://127.0.0.1:5004/WeBASE-Sign/user/50062d36160b496e8c103a58818d8097/userInfo 2021-07-28 16:07:09.864 [http-nio-5003-exec-3] INFO KeyStoreService() - checkSignUserId response:{"code":0,"message":"success","data":{"signUserId":"50062d36160b496e8c103a58818d8097","appId":"1","address":"0xf020b10b850948f95af1cfac09e3888e8bdbb9a8","publicKey":"04307a4408cff152537aa8822f525413da4b2143b2e8d1306a9ab6c787a388d20e0aa8cb2f587abbed75729e45ad909bcd5248942042b8977f23ffd1fc124d3991","privateKey":"","description":null,"encryptType":0}} 2021-07-28 16:07:09.896 [http-nio-5003-exec-3] INFO ContractService() - deploy end. groupId:1 uuid:111 2021-07-28 16:07:10.056 [transExecutor-3] INFO ContractService() - deploySend id:5 2021-07-28 16:07:10.070 [transExecutor-3] INFO KeyStoreService() - getSignData url:http://127.0.0.1:5004/WeBASE-Sign/sign 2021-07-28 16:07:10.085 [transExecutor-3] INFO KeyStoreService() - getSignData response:{"code":0,"message":"success","data":{"signDataStr":"00bc05994706b563f17b67d436ca00bba424f1e70da4cb9f936bb1414c235d293d5826c19f479d0db7a3ef5e9424ec696523fced68535b03a6b722f68057ac7733"}} 2021-07-28 16:07:10.093 [transExecutor-3] ERROR ContractService() - fail deploySend id:5 org.fisco.bcos.web3j.protocol.exceptions.MessageDecodingException: {"error":{"code":-32603,"data":null,"message":"INTERNAL_ERROR: : INTERNAL_ERROR: : /FISCO-BCOS/libdevcore/RLP.h(402): Throw in function _T dev::RLP::toInt(int) const [with _T = unsigned char]\nDynamic exception type: boost::exception_detail::clone_impl\nstd::exception::what: std::exception\n[dev::eth::tag_field*] = invalid rc2 transaction format, invalid Field:signature, RLP: f9049e9fec0857cc6351308baf847767300c60b92c287c8768d0fe668c50311d0329a98405f5e1008405f5e1008202958080b90426608060405234801561001057600080fd5b506040518060400160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b610310806101166000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634ed3885e1461003b5780636d4ce63c146100f6575b600080fd5b6100f46004803603602081101561005157600080fd5b810190808035906020019064010000000081111561006e57600080fd5b82018360208201111561008057600080fd5b803590602001918460018302840111640100000000831117156100a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610179565b005b6100fe610193565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013e578082015181840152602081019050610123565b50505050905090810190601f16801561016b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b806000908051906020019061018f929190610235565b5050565b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561022b5780601f106102005761010080835404028352916020019161022b565b820191906000526020600020905b81548152906001019060200180831161020e57829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061027657805160ff19168380011785556102a4565b828001600101855582156102a4579182015b828111156102a3578251825591602001919060010190610288565b5b5090506102b191906102b5565b5090565b6102d791905b808211156102d35760008160009055506001016102bb565b5090565b9056fea26469706673582212200190733195d78462d6c478ce8c1157316623d305da1dbed740fa63e5f092b60864736f6c634300060a003301018000a0bc05994706b563f17b67d436ca00bba424f1e70da4cb9f936bb1414c235d293da05826c19f479d0db7a3ef5e9424ec696523fced68535b03a6b722f68057ac7733\n"},"id":9,"jsonrpc":"2.0"}

at org.fisco.bcos.web3j.protocol.channel.ChannelEthereumService.send(ChannelEthereumService.java:115) ~[web3sdk-2.6.2.jar:?]
at org.fisco.bcos.web3j.protocol.core.Request.send(Request.java:90) ~[web3sdk-2.6.2.jar:?]
at com.webank.webase.transaction.trans.TransService.sendMessage(TransService.java:605) ~[WeBASE-Transaction.jar:?]
at com.webank.webase.transaction.contract.ContractService.deploySend(ContractService.java:356) [WeBASE-Transaction.jar:?]
at com.webank.webase.transaction.contract.ContractService$1.run(ContractService.java:292) [WeBASE-Transaction.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]

2021-07-28 16:07:20.150 [pool-6-thread-1] INFO TransService() - onResponse receipt:TransactionReceipt{transactionHash='null', transactionIndex='null', blockHash='null', blockNumber='null', gasUsed='null', contractAddress='null', root='null', status='Transaction receipt timeout', message='Transaction receipt timeout', from='null', to='null', input='null', output='null', logs=null, logsBloom='null', transAndProof=null, receiptAndProof=null}

背景

  1. 目前交易服务仅连接一个节点,配置文件如下:
    
    ###################################  Basic Configuration  ###################################
    # 后台服务的版本
    version=v1.4.0
    # 工程服务端口,端口被占用则修改
    server.port=5003
    server.context-path=/WeBASE-Transaction
    mybatis.mapper-locations=classpath:mapper/*.xml
    logging.config=classpath:log4j2.xml

################################### web3sdk Configuration ###################################

机构名

sdk.orgName=xxx sdk.timeout=10000

线程池配置

sdk.corePoolSize=100 sdk.maxPoolSize=500 sdk.queueCapacity=500 sdk.keepAlive=60

群组信息,可配置多群组和多节点

群组id(下同)

sdk.groupConfig.allChannelConnections[0].groupId=1

连接节点的ip和channelPort(下同)

sdk.groupConfig.allChannelConnections[0].connectionsStr[0]=xxx.xxx.xxx:20200

sdk.groupConfig.allChannelConnections[0].connectionsStr[1]=xxx.xxx.xxx:20200

sdk.groupConfig.allChannelConnections[1].groupId=2

sdk.groupConfig.allChannelConnections[1].connectionsStr[0]=127.0.0.1:20200

sdk.groupConfig.allChannelConnections[1].connectionsStr[1]=127.0.0.1:20201

切换非国密与国密 0: standard, 1: guomi

sdk.encryptType=0 ################################### constant Configuration ###################################

WeBASE-Sign签名服务ip端口,使用本签名方式(signType=2)则对应修改

constant.signServer=127.0.0.1:5004

本地配置私钥进行签名,使用本签名方式(signType=0)则对应修改

constant.privateKey=edf02a4a69b14ee6b1650a95de71d5f50496ef62ae4213026bd8d6651d030995 constant.cronTrans=0/1 ? constant.requestCountMax=6 constant.selectCount=10 constant.intervalTime=600 constant.sleepTime=50

是否删除数据

constant.ifDeleteData=false constant.cronDeleteData=0 0 1 ? constant.keepDays=360

使用分布式任务部署多活(true-是,false-否)

constant.ifDistributedTask=false

################################### elastic-job 分布式任务 ###################################

部署多活的话需配置zookeeper,支持集群

job.regCenter.serverLists=127.0.0.1:2181

zookeeper命名空间

job.regCenter.namespace=elasticjob-transaction

分片数(如多活3个的话可分成3片)

job.dataflow.shardingTotalCount=3

################################### 数据源配置 ###################################

* 说明:本工程使用Sharding-JDBC分库分表,支持单一数据源,也支持多库多表。

* 单库单表:配置单个数据源,将分库策略和分表策略注释或删除

* 多库多表:配置多数据源,以群组分库,以年份分表,用户自定义每年分成几个表(注:分表策略的路由字段不可修改[id,gmt_create])

* 样例:以两个数据源为例(数据库需事先创建),每张表根据年分表,每年再分成两个子表,以2020和2021年的表为例

配置所有的数据源,如此处定义了ds0,ds1两个数据源,对应两个库

sharding.jdbc.datasource.names=ds0

定义数据源ds0,配置数据库连接信息

sharding.jdbc.datasource.ds0.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds0.driver-class-name=com.mysql.cj.jdbc.Driver sharding.jdbc.datasource.ds0.url=jdbc:mysql://127.0.0.1:3306/webasetransaction0?autoReconnect=true&useSSL=false&serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=UTF-8 sharding.jdbc.datasource.ds0.username=innochain sharding.jdbc.datasource.ds0.password=innochain123

定义数据源ds1,配置数据库连接信息

sharding.jdbc.datasource.ds1.type=com.alibaba.druid.pool.DruidDataSource

sharding.jdbc.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driver

sharding.jdbc.datasource.ds1.url=jdbc:mysql://127.0.0.1:3306/webasetransaction1?autoReconnect=true&useSSL=false&serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=UTF-8

sharding.jdbc.datasource.ds1.username=innochain

sharding.jdbc.datasource.ds1.password=innochain123

定义数据库分片策略,如此处以群组id取模2来路由到ds0或ds1

sharding.jdbc.config.sharding.default-database-strategy.inline.sharding-column=group_id

sharding.jdbc.config.sharding.default-database-strategy.inline.algorithm-expression=ds$->{group_id % 2}

定义tb_deploy_transaction的分表策略,如此处以创建时间的年份和自增id取模2来路由到子表

sharding.jdbc.config.sharding.tables.tb_deploy_transaction.actual-data-nodes=ds$->{0..1}.tb_deploytransaction$->{2020..2021}_$->{0..1}

sharding.jdbc.config.sharding.tables.tb_deploy_transaction.table-strategy.complex.sharding-columns=id,gmt_create

sharding.jdbc.config.sharding.tables.tb_deploy_transaction.table-strategy.complex.algorithm-class-name=com.webank.webase.transaction.config.MyComplexShardingAlgorithm

sharding.jdbc.config.sharding.tables.tb_deploy_transaction.key-generator-column-name=id

定义tb_stateless_transaction的分表策略,如此处以创建时间的年份和自增id取模2来路由到子表

sharding.jdbc.config.sharding.tables.tb_stateless_transaction.actual-data-nodes=ds$->{0..1}.tb_statelesstransaction$->{2020..2021}_$->{0..1}

sharding.jdbc.config.sharding.tables.tb_stateless_transaction.table-strategy.complex.sharding-columns=id,gmt_create

sharding.jdbc.config.sharding.tables.tb_stateless_transaction.table-strategy.complex.algorithm-class-name=com.webank.webase.transaction.config.MyComplexShardingAlgorithm

sharding.jdbc.config.sharding.tables.tb_stateless_transaction.key-generator-column-name=id

sharding.jdbc.config.props.sql.show=false

meta-bowen commented 3 years ago

关联问题

https://github.com/FISCO-BCOS/generator/issues/79

meta-bowen commented 3 years ago

web3SDK日志显示,节点已正常连接,查询节点的报错日志如下:

error|2021-07-28 17:27:24.089714|[RPC]sendRawTransaction exceptioned,groupID=1,errorMessage=/FISCO-BCOS/libethcore/Transaction.cpp(149): Throw in function void dev::eth::Transaction::decodeRC2(const dev::RLP&, dev::eth::CheckTransaction)
Dynamic exception type: boost::exception_detail::clone_impl<dev::eth::InvalidSignature>
std::exception::what: std::exception
[dev::eth::tag_field*] = invalid rc2 transaction format, invalid Field:signature, RLP: f9049fa00162d153758c6706e1bcd141e6b75687e654fc44582fc664bfcd000bbca1da828405f5e1008405f5e1008202978080b90426608060405234801561001057600080fd5b506040518060400160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b610310806101166000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634ed3885e1461003b5780636d4ce63c146100f6575b600080fd5b6100f46004803603602081101561005157600080fd5b810190808035906020019064010000000081111561006e57600080fd5b82018360208201111561008057600080fd5b803590602001918460018302840111640100000000831117156100a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610179565b005b6100fe610193565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013e578082015181840152602081019050610123565b50505050905090810190601f16801561016b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b806000908051906020019061018f929190610235565b5050565b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561022b5780601f106102005761010080835404028352916020019161022b565b820191906000526020600020905b81548152906001019060200180831161020e57829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061027657805160ff19168380011785556102a4565b828001600101855582156102a4579182015b828111156102a3578251825591602001919060010190610288565b5b5090506102b191906102b5565b5090565b6102d791905b808211156102d35760008160009055506001016102bb565b5090565b9056fea26469706673582212200190733195d78462d6c478ce8c1157316623d305da1dbed740fa63e5f092b60864736f6c634300060a003301018001a018b9c18b69867112933941ecbbb8a154ae70ff4dd5f447d6dd9c6104977a07cca0702a202dd8ad5fdea021b379cabb22e80021741ebd7795941a77751b6d474125
CodingCattwo commented 2 years ago

根据信息判断部署合约的错误原因是因为私钥签名错误,检查链是国密或非国密的加密类型,并检查Transaction服务是否切换到对应的国密或非国密类型。