FISCO BCOS Transaction execution error合约执行失败原因

 根据TransactionExceptionID查询错误原因

交易回执状态

status(十进制/十六进制) message 含义
0(0x0) None 正常
1(0x1) Unknown 未知异常
2(0x2) BadRLP 无效RLP异常
3(0x3) InvalidFormat 无效格式异常
4(0x4) OutOfGasIntrinsic 部署的合约长度超过gas限制/调用合约接口参数超过gas限制
5(0x5) InvalidSignature 无效的签名异常
6(0x6) InvalidNonce 无效nonce异常
7(0x7) NotEnoughCash cash不足异常
8(0x8) OutOfGasBase 调用合约的参数过长 (RC版本)
9(0x9) BlockGasLimitReached GasLimit异常
10(0xa) BadInstruction 错误指令异常
11(0xb) BadJumpDestination 错误目的跳转异常
12(0xc) OutOfGas 合约执行时gas不足 / 部署的合约长度超过最长上限
13(0xd) OutOfStack 栈溢出异常
14(0xe) StackUnderflow 栈下限溢位异常
15(0xf) NonceCheckFail nonce检测失败异常
16(0x10) BlockLimitCheckFail blocklimit检测失败异常
17(0x11) FilterCheckFail filter检测失败异常
18(0x12) NoDeployPermission 非法部署合约异常
19(0x13) NoCallPermission 非法call合约异常
20(0x14) NoTxPermission 非法交易异常
21(0x15) PrecompiledError precompiled错误异常
22(0x16) RevertInstruction revert指令异常
23(0x17) InvalidZeroSignatureFormat 无效签名格式异常
24(0x18) AddressAlreadyUsed 地址占用异常
25(0x19) PermissionDenied 无权限异常
26(0x1a) CallAddressError 被调用的合约地址不存在
27(0x1b) GasOverflow Gas溢出错误
28(0x1c) TxPoolIsFull 交易池已满异常
29(0x1d) TransactionRefused 交易被拒绝异常
30(0x1e) ContractFrozen 合约被冻结异常
31(0x1f) AccountFrozen 账户被冻结异常
10000(0x2710) AlreadyKnown 交易已经在交易池中
10001(0x2711) AlreadyInChain 交易已经上链异常
10002(0x2712) InvalidChainId 无效的链ID异常
10003(0x2713) InvalidGroupId 无效的群组ID异常
10004(0x2714) RequestNotBelongToTheGroup 请求不属于群组异常
10005(0x2715) MalformedTx 交易格式错误
10006(0x2716) OverGroupMemoryLimit 超出群组内存限制异常

FISCO BCOS完整的错误码描述请参考这里.

1. out of gas
问题描述:

交易回执状态值为0xc,错误描述out-of-gas during EVM execution。 这个错误可能的原因:

合约逻辑比较复杂。
合约逻辑问题,数组结构体没有初始化,或者出现死循环。
解决方法:

使用控制台加大tx_gas_limit的值,操作流程参考: 控制台设置tx_gas_limit
检查合约的逻辑,修复合约逻辑的漏洞


2. revert instruction
问题描述:

交易回滚,交易回执状态值为0x16,错误描述revert instruction,这个错误是因为合约的逻辑问题,包括:

访问调用未初始化的合约
访问初始化为0x0的合约
数组越界访问
除零错误
调用assert、revert
其他错误


解决方法:

检查合约逻辑,修复漏洞。
 

交易执行失败 | FISCO BCOS开发问题排查_FISCO_BCOS的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/u013288190/article/details/124475330
今日推荐