蚂蚁区块链第17课 错误码指导大全

2019-04-18 16:47:03 浏览数 (1)

1,摘要

本文介绍蚂蚁区块链的错误码按出错来源分为5类:平台校验错误码、虚拟机错误码、区块链错误码、客户端系统错误码、TEE 错误码,并给出了具体的错误码值和解释说明。

2,错误码大全

2.1 平台校验错误码

错误码

错误码值

错误消息

描述

BAD_HASH

100

the hash is not correctly computed

哈希计算错误

TX_IS_NULL

101

the tx pointer is nullptr

交易指针为空指针

TX_PAYLOAD_INVALID

102

the data of tx does not satisfy type constraint

交易的 data 字段不满足类型约束

TX_INVALID_SIGNATURE

103

the signature is not valid, used in PreResetPubKey/ResetPubKey/ActivateNode tx

签名不可用

TX_INSUFFICIENT_BALANCE

104

the sender of tx doesn’t have enough money

交易的发送账户余额不足

TX_INVALID_TIMESTAMP

105

the timestamp of tx is not in valid period

交易的时间戳所在时间段无效,合约平台会对时间戳做检查,不在特定的时间范围内将被认为不可用

TX_INVALID_DEST_ACCOUNT

106

the dest account of tx doesn’t have valid contract hash

交易的目标账户不包含可用的合约哈希

TX_DEST_ACCOUNT_IS_NULL

107

the dest account of tx is empty

交易的目标账户为空

TX_CREATE_ACCOUNT_INVALID

108

the create account tx doesn’t satisfy requirement

创建账户的交易不满足需求

TX_DEPLOY_CONTRACT_INVALID

109

the deploy contract tx doesn’t satisfy requirement

部署合约的交易不满足需求

TX_TYPE_CONSTRAINT_INVALID

110

basic tx type requirement verify failed

基本的交易类型需求校验失败

TX_TYPE_UNKNOWN

111

the type of tx is unknown

交易类型未知

TX_RECOVER_TIME_INVALID

112

the recover time is invalid

恢复时间未知

TX_REPLAY_ATTACK

113

the tx is replayed

交易被重放

TX_PAYLOAD_TOO_BIG

114

the data of tx is too big, beyond system constraint

交易的 data 字段太大,超过系统限制

TX_GAS_TOO_BIG

115

the gas if tx is too big, beyond system constraint

交易消耗的 gas 太大,超过系统限制

TX_SOURCE_ACCOUNT_NOT_FOUND

116

the source account of tx doesn’t exists in blockchain

交易的提交账户在区块链上不存在,提交账户是交易数据结构中的 from 字段

TX_SOURCE_ACCOUNT_IS_NULL

117

the source account of tx is empty

交易的提交账户为空

TX_SOURCE_ACCOUNT_IS_FREEZE

118

the source account of tx is frozen

交易的提交账户被冻结

TX_SOURCE_ACCOUNT_IS_RECOVERING

119

the source account of tx is recovering

交易的提交账户正在恢复中

TX_DEST_ACCOUNT_NOT_FOUND

120

the dest account of tx doesn’t exit in blockchain

交易的目标账户在区块链上不存在,目标账户是交易数据结构中的 to 字段

TX_DEST_ACCOUNT_IS_FREEZE

121

the dest account of tx is frozen

交易的目标账户被冻结

TX_INVALID_PERMISSION

122

the weight of all signatures of tx is less than 100

多签名的所有签名权重之和小于 100,合约平台要求必须等于 100

TX_DEST_ACCOUNT_ALREADY_EXIST

123

the dest account of tx already exist

交易的目标账户已经存在

TX_INVALID_GROUP_ID

132

the group id of tx constraint is not satisfied

不满足交易的 group id 约束要求

TX_INVALID_VERSION

133

tx version constraint is not satisfied

不满足交易的版本约束要求

虚拟机错误码

错误码

错误码值

错误消息

描述

VM_GENERIC_FAILED

10000

vm general failure

虚拟机一般故障

VM_INVALID_INSTRUCTION

10001

for bad instruction

错误指令

VM_STACK_OVERFLOW

10002

vm stack over flow

虚拟机堆栈溢出

VM_STACK_UNDERFLOW

10003

vm stack under flow

虚拟机空栈取项出错

VM_MEMORY_ERROR

10004

vm memory error

虚拟机内存错误

VM_EMPTY_CODE

10005

the empty code error

代码为空

VM_CONFIG_OVER_GAS_LIMIT

10100

vm execute over the gas limit

虚拟机消耗超出限制

VM_CREATE_FAILED

10101

vm create failure

虚拟机创建失败

VM_PARAMETER_CODE_EMPTY_FAILED

10102

vm parameter code empty

虚拟机参数代码为空

VM_PARAMETER_INPUT_DATA_EMPTY_FAILED

10103

vm parameter input data empty

虚拟机参数输入数据为空

VM_OUT_OF_GAS

10200

out of gas

燃料不足

VM_REVERT

10201

caused by revert instruction

由 revert 指令触发的错误

VM_OUT_OF_LIMIT

10202

caused by touint64 method

由 touint64 方法触发的错误

VM_DISALLOWED_STATE_CHANGE

10203

caused by static_call module

由 static_call 模块触发的错误

VM_GET_BALANCE_FAILED

10300

vm get balance fail

获取余额失败

VM_SET_STORAGE_FAILED

10301

vm set storage fail

虚拟机设置存储失败

VM_GET_STORAGE_FAILED

10302

vm get storage fail

虚拟机获取存储失败

VM_TRANSFER_BALANCE_FAILED

10303

vm transfer balance fail

虚拟机转账失败

VM_GET_CODE_FAILED

10304

vm get code fail

虚拟机获取代码失败

VM_GET_BLOCKHASH_FAILED

10305

vm get block hash fail

虚拟机获取块哈希失败

VM_GET_CODEHASH_FAILED

10306

vm get code fail

虚拟机获取代码哈希失败

VM_GET_GASLIMIT_FAILED

10307

vm get gas limit fail

虚拟机受燃料限制

VM_INTERNAL_ERROR

10500

vm internal error

虚拟内部错误

2.2 区块链错误码

错误码

错误码值

错误消息

描述

SERVICE_PLUGIN_NOT_EXISTS

400

plugin not exists

插件不存在

SERVICE_MSG_CONVERT_FAILED

401

msg convert failed

消息转换失败

SERVICE_RUN_LOCAL_TX_FAILED

402

execute local transaction failed

本地交易执行失败

SERVICE_PUSH_CACHE_FAILED

403

push transaction into cache queue failed

无法将交易推送至缓存队列

SERVICE_QUERY_NO_RESULT

404

no result when querypossible reasons: 1) transaction verify failed 2) transaction has not been executed in block 3) get last block failed 4) wrong parameters when query block or block header 5) wrong parameters when query account

查询无结果,可能的原因有:1. 交易验证失败;2. 交易尚未在区块中执行;3. 无法获取最后一个块;4. 查询块或块头时,参数出错5. 查询账户时,参数出错

SERVICE_NOT_SUPPORT

405

service not supportpossible reasons:1) incorrect service configure, complete configure is [transaction, query, event, admin] now2) invalid message type

业务不支持,可能的原因有:1. 业务配置有误,完整的配置应为 [transaction, query, event, admin];2. 消息类型无效

SERVICE_EVENT_NOT_EXISTS

406

event not existspossible reasons: 1) the event has not been registered 2) the event timeout in pull mode

事件不存在,可能的原因有:1. 事件未注册;2. 在拉取模式下,事件超时

SERVICE_LOG_INSTANCE_NOT_EXISTS

407

log instance not exists

日志实例不存在

SERVICE_TX_VERIFY_FAILED

408

transaction verify failed

交易验证失败

SERVICE_FORWARD_NO_NODEID

409

no node to forward request

无节点可转发请求

SERVICE_FORWARD_TIMEOUT

410

forward request timeout

请求转发超时

SERVICE_FORWARD_RESPONSE_ERROR

411

forward response error

响应转发超时

SERVICE_ADD_GROUP_CHAIN_FAILED

412

add group chain failed

添加群链失败

SERVICE_TX_WAITING_VERIFY

413

tx is pending to be verified

交易尚未验证

SERVICE_TX_WAITING_EXECUTE

414

tx is verified, waiting to be executed

交易已验证,等待执行

WS_NO_DATABASE_FAILED

1000

ws database is not Initialized

世界状态(WS)数据库未初始化

WS_NO_CODE_HASH_FAILED

1001

ws failed to find the code hash for the contract

世界状态中找不到合约的代码哈希

WS_NO_OBJECT_FAILED

1002

the state object is not found from the world state

世界状态中未找到该状态对象

WS_OBJECT_EXIST_FAILED

1003

the state object (id) is occupied

状态对象(ID)被占用

WS_OBJECT_DELETED_FAILED

1004

the given state object (id) has been deleted

指定的状态对象(ID)已删除

WS_NO_ENOUGH_BALANCE_FAILED

1005

the given state object doesn’t have enough balance

指定的状态对象余额不足

WS_TRANSFER_FAILED

1006

failed to transfer balance

转账失败

WS_AUTH_NO_PUB_KEY_FAILED

1007

the given public key doesn’t exist from auth map

指定的公钥不存在

WS_BALANCE_OVERFLOW_FAILED

1008

balance overflow

余额溢出

WS_UNKNOWN_FAILED

1009

unknown failure from

未知故障

WS_INVALID_AUTH_MAP_FAILED

1010

the given auth map is invalid

指定的权重值无效

CHAIN_TX_GAS_INVALID

2000

the transaction runner can’t get enough gas from the tx

交易执行无法从交易获取足够的燃料

CHAIN_TX_IDENTITY_INVALID

2001

the transaction runner can’t locate the identity from the chain

交易执行无法在区块链中定位到标识

CHAIN_TX_AUTH_MAP_INVALID

2002

the auth map in the payload is invalid

负载中的权重值无效

CHAIN_TX_PAYLOAD_INVALID

2003

the payload of transaction is invalid

交易负载无效

CHAIN_TX_RECOVER_INVALID

2004

invalid recover time

恢复时间无效

CHAIN_TX_INSIDE_ERROR

2005

unknown error from transaction runner

交易执行出现未知错误

2.3 客户端系统错误码

错误码

错误码值

错误消息

描述

SDK_INTERNAL_ERROR

20000

sdk interval error

SDK 内部错误

SDK_ADDRESS_FAMILY_NOT_SUPPORTED

20001

ipc/network argument errors: address family not supported by protocol family

IPC/网络参数错误:协议族不支持的地址族

SDK_ADDRESS_IN_USE

20002

ipc/network argument errors: address already in use

IPC/网络参数错误:该地址已被使用

SDK_ADDRESS_NOT_AVAILABLE

20003

ipc/network argument errors: can’t assign requested address

IPC/网络参数错误:无法分配请求的地址

SDK_ALREADY_CONNECTED

20004

ipc/network operational errors: socket is already connected

IPC/网络运行出错:套接口已连接

SDK_ARGUMENT_LIST_TOO_LONG

20005

argument list too long

参数列表太长

SDK_ARGUMENT_OUT_OF_DOMAIN

20006

math: numerical argument out of domain

数值参数不在域内

SDK_BAD_ADDRESS

20007

bad address

地址不详

SDK_BAD_FILE_DESCRIPTOR

20008

bad file descriptor

文件描述符不详

SDK_BAD_MESSAGE

20009

program loading errors: bad message

程序加载错误:消息不详

SDK_BROKEN_PIPE

20010

broken pipe

管道破损

SDK_CONNECTION_ABORTED

20011

ipc/network operational errors: software caused connection abort

IPC/网络运行出错:软件问题导致连接中断

SDK_CONNECTION_ALREADY_IN_PROGRESS

20012

non-blocking and interrupt i/o: operation already in progress

非阻塞和中断 I/O:操作进行中

SDK_CONNECTION_REFUSED

20013

ipc/network operational errors: connection refused

IPC/网络运行出错:连接被拒绝

SDK_CONNECTION_RESET

20014

connection reset by peer

连接被对方重设

SDK_CROSS_DEVICE_LINK

20015

cross-device link

跨设备链接

SDK_DESTINATION_ADDRESS_REQUIRED

20016

ipc/network argument errors: destination address required

IPC/网络参数错误:目标地址不得为空

SDK_DEVICE_OR_RESOURCE_BUSY

20017

device / Resource busy

设备或资源忙

SDK_DIRECTORY_NOT_EMPTY

20018

should be rearranged: directory not empty

目录不为空,需重新安排

SDK_EXECUTABLE_FORMAT_ERROR

20019

exec format error

执行格式错误

SDK_FILE_EXISTS

20020

file exists

文件已存在

SDK_FILE_TOO_LARGE

20021

file too large

文件太大

SDK_FILENAME_TOO_LONG

20022

ipc/network operational errors: file name too long

IPC/网络运行出错:文件名太长

SDK_FUNCTION_NOT_SUPPORTED

20023

network file system: function not implemented

网络文件系统:功能未实现

SDK_HOST_UNREACHABLE

20024

should be rearranged: no route to host

无主机路由,需重新安排

SDK_IDENTIFIER_REMOVED

20025

program loading errors: identifier removed

程序加载错误:标识已被删除

SDK_ILLEGAL_BYTE_SEQUENCE

20026

program loading errors: illegal byte sequence

程序加载错误:非法字节序列

SDK_INAPPROPRIATE_IO_CONTROL_OPERATION

20027

inappropriate ioctl for device

ioctl 不适合设备

SDK_INTERRUPTED

20028

interrupted system call

系统调用中断

SDK_INVALID_ARGUMENT

20029

invalid argument

参数无效

SDK_INVALID_SEEK

20030

illegal seek

非法寻求

SDK_IO_ERROR

20031

input/output error

输入/输出错误

SDK_IS_A_DIRECTORY

20032

is a directory

此为目录

SDK_MESSAGE_SIZE

20033

ipc/network argument errors: message too long

IPC/网络参数错误:消息太长

SDK_NETWORK_DOWN

20034

ipc/network operational errors: network is down

IPC/网络运行出错:网络故障

SDK_NETWORK_RESET

20035

ipc/network operational errors: network dropped connection on reset

IPC/网络运行出错:重置时网络断开连接

SDK_NETWORK_UNREACHABLE

20036

ipc/network operational errors: network is unreachable

IPC/网络运行出错:网络无法访问

SDK_NO_BUFFER_SPACE

20037

ipc/network operational errors: no buffer space available

IPC/网络运行出错:无缓冲空间

SDK_NO_CHILD_PROCESS

20038

no child processes

无子程序

SDK_NO_LINK

20039

program loading errors: reserved

程序加载错误:已保留

SDK_NO_LOCK_AVAILABLE

20040

network file system: no locks available

网络文件系统,无锁可用

SDK_NO_MESSAGE_AVAILABLE

20041

program loading errors: no message available on stream

程序加载错误:消息流上无消息

SDK_NO_MESSAGE

20042

program loading errors: no message of desired type

程序加载错误:无预期类型的消息

SDK_NO_PROTOCOL_OPTION

20043

ipc/network argument errors: protocol not available

IPC/网络参数错误:协议不可用

SDK_NO_SPACE_ON_DEVICE

20044

no space left on device

设备空间不足

SDK_NO_STREAM_RESOURCES

20045

program loading errors: no stream resources

程序加载错误:无流资源

SDK_NO_SUCH_DEVICE_OR_ADDRESS

20046

device not configured

设备未配置

SDK_NO_SUCH_DEVICE

20047

operation not supported by device

设备不支持该操作

SDK_NO_SUCH_FILE_OR_DIRECTORY

20048

no such file or directory

该文件或目录不存在

SDK_NO_SUCH_PROCESS

20049

no such process

该程序不存在

SDK_NOT_A_DIRECTORY

20050

not a directory

非目录

SDK_NOT_A_SOCKET

20051

ipc/network argument errors: socket operation on non-socket

IPC/网络参数错误:未在套接口上执行套接口操作

SDK_NOT_A_STREAM

20052

program loading errors: not a stream

程序加载错误:非流

SDK_NOT_CONNECTED

20053

ipc/network operational errors: socket is not connected

IPC/网络运行出错:套接口未连接

SDK_NOT_ENOUGH_MEMORY

20054

cannot allocate memory

无法分配内存

SDK_NOT_SUPPORTED

20055

ipc/network argument errors: operation not supported

IPC/网络参数错误:不支持该操作

SDK_OPERATION_CANCELED

20056

program loading errors: operation canceled

程序加载错误:操作已取消

SDK_OPERATION_IN_PROGRESS

20057

non-blocking and interrupt i/o: operation now in progress

非阻塞和中断 I/O:操作进行中

SDK_OPERATION_NOT_PERMITTED

20058

operation not permitted

操作不允许

SDK_OPERATION_NOT_SUPPORTED

20059

this value is only discrete when compiling __DARWIN_UNIX03, or KERNE: operation not supported on socket

仅当编译 __DARWIN_UNIX03 时该值为离散值,或 KERNE:套接口不支持该操作

SDK_OPERATION_WOULD_BLOCK

20060

non-blocking and interrupt i/o: operation would block

非阻塞和中断 I/O:操作将阻塞

SDK_OWNER_DEAD

20061

program loading errors: previous owner died

程序加载错误:之前的 Owner 已去世

SDK_PERMISSION_DENIED

20062

permission denied

权限不足

SDK_PROTOCOL_ERROR

20063

program loading errors: protocol error

程序加载错误:协议错误

SDK_PROTOCOL_NOT_SUPPORTED

20064

ipc/network argument errors: protocol not supported

IPC/网络参数错误:不支持该协议

SDK_READ_ONLY_FILE_SYSTEM

20065

read-only file system

只读文件系统

SDK_RESOURCE_DEADLOCK_WOULD_OCCUR

20066

resource deadlock avoided

避免资源死锁

SDK_RESOURCE_UNAVAILABLE_TRY_AGAIN

20067

non-blocking and interrupt i/o: resource temporarily unavailable

非阻塞和中断 I/O:资源暂时不可用

SDK_RESULT_OUT_OF_RANGE

20068

math: result too large

结果太大

SDK_STATE_NOT_RECOVERABLE

20069

program loading errors: state not recoverable

程序加载错误:状态不可恢复

SDK_STREAM_TIMEOUT

20070

program loading errors: stream ioctl timeout

程序加载错误:流 ioctl 超时

SDK_TEXT_FILE_BUSY

20071

text file busy

文本文件忙

SDK_TIMED_OUT

20072

ipc/network operational errors: operation timed out

IPC/网络运行出错:运行超时

SDK_TOO_MANY_FILES_OPEN_IN_SYSTEM

20073

too many open files in system

系统打开的文件太多

SDK_TOO_MANY_FILES_OPEN

20074

too many open files

打开的文件太多

SDK_TOO_MANY_LINKS

20075

too many links

太多链接

SDK_TOO_MANY_SYMBOLIC_LINK_LEVELS

20076

ipc/network operational errors: too many levels of symbolic links

IPC/网络运行出错:符号链接级别太多

SDK_VALUE_TOO_LARGE

20077

intelligent device errors: value too large to be stored in data type

智能设备错误:值太大导致无法存储在数据类型中

SDK_WRONG_PROTOCOL_TYPE

20078

ipc/network argument errors: protocol wrong type for socket

IPC/网络参数错误:套接口协议类型错误

SDK_INVALID_PARAMETER

30000

sdk parameter is invalid

SDK 参数无效

SDK_INVALID_PRIVATE_KEY

30001

sdk invalid private key

SDK 私钥无效

SDK_SIGN_TOOL_VERIFY_ERROR

30002

sdk sign tool verify error

SDK 签名工具验证出错

SDK_UNSUPPORT_ENCODING_FAILED

30003

sdk unsupport encoding error

SDK 不支持编码

SDK_GET_FILE_INPUT_STREAM_FAILED

30004

sdk get file input stream failed

SDK 获取文件输入流失败

SDK_FIND_THREAD_FAILED

30005

sdk find thread failed

SDK 查找线程失败

SDK_BYTES_OPERATE_FAILED

30006

sdk bytes operate failed

SDK 字节操作失败

SDK_CONVERT_PUBLIC_KEY_FAILED

30007

sdk convert public key failed

SDK 转换公钥失败

SDK_MESSAGE_ENCODING_FAILED

30008

sdk message encoding failed

SDK 消息编码失败

SDK_READ_CONFIG_FAILED

30009

sdk read client config failed

SDK 读取客户端配置失败

SDK_INIT_FAILED

30010

sdk init failed

SDK 初始化失败

SDK_CONNECT_NETWORK_FAILED

30011

sdk connect to network failed

SDK 连接网络失败

SDK_DECODE_ERROR

30012

sdk decode error

SDK 解码出错

SDK_UNSUPPORT_MESSAGE_TYPE_ERROR

30013

sdk unsupport message type error

SDK 不支持该消息类型

SDK_HAND_SHAKE_ERROR

30014

did not handshake

未做握手

SDK_INIT_SSL_CONTEXT_FAILED

30015

init ssl context failed

初始化 SSL 上下文失败

2.4 TEE 错误码

错误码

错误码值

错误消息

描述

TEE_CONFIDENTIAL_TX_DECRYPTION_FAILURE

60001

Failed to decrypt confidential transaction

加密交易解密失败

TEE_NESTED_CONFIDENTIAL_TX

60002

Confidential transaction detected insides a confidential transaction

加密交易中内嵌的不是明文交易

TEE_UNEXPECPTED_PLAIN_TX

60003

Got a plain transaction while expecting a confidential one

待处理的交易非加密交易

TEE_NATIVE_CONTRACT_NOT_SUPPORTED

60004

Native Contract is not supported in TEE environment

TEE 中不支持 native 类型的合约

TEE_CONFIDENTIAL_TX_DESERIALIZATION_FAILURE

60005

Failed to deserialize confidential transaction

加密交易反序列化失败

TEE_CONFIDENTIAL_STATE_DESERIALIZATION_FAILURE

60006

Failed to deserialize account state

合约账户的状态反序列化失败

TEE_ILLEGAL_ACCESSING_CONFIDENTIAL_STORAGE

60007

Illegally accessing confidential account storage

非法访问加密的账户数据

TEE_TX_TYPE_NOT_SUPPORTED

60008

Type of transaction is not supported in TEE environment

TEE 内不支持的交易类型

TEE_CONFIDENTIAL_TX_ENCRYPT_LOG_FAILURE

60009

Failed to encrypt confidential transaction’s log

加密回执中的 log 信息失败

TEE_ACCESS_CONFIDENTIAL_CODE_DENIED

60010

Illegally accessing confidential contract’s code

非法访问加密的合约代码

TEE_HASH_TIMESTAMP_NOT_MATCH

60011

Confidential Transaction’s hash (and/or timestamp) is not in consistent with what is embeded inside the encrypted payload

加密交易的 hash 和时间戳不合法

TEE_RECEIPT_OVERFLOW

60012

Confidential Transaction’s receipt is too large (> 408600 bytes)

交易回执过大

TEE_INTERNAL_ERROR

60013

Internal error

TEE 内部错误

TEE_CODE_ENCRYPTION_FAILURE

60014

Failed to encrypt contract’s code

合约代码加密失败

TEE_CODE_DECRYPTION_FAILURE

60015

Failed to decrypt contract’s code

合约代码解密失败

TEE_STORAGE_ENCRYPTION_FAILURE

60016

Failed to encrypt contract’s state

合约状态加密失败

TEE_STORAGE_DECRYPTION_FAILURE

60017

Failed to decrypt contract’s state

合约状态解密失败

TEE_STATE_UNMARSHAL_FAILURE

60018

Failed to unmarshal contract’s state

合约状态反序列化失败

TEE_STATE_MARSHAL_FAILURE

60019

Failed to marshal contract’s state

合约状态序列化失败

TEE_PAYLOAD_DECRYPTION_FAILURE

60020

Failed to decrypt contract’s primitive information

合约账户基本信息解密失败

TEE_PAYLOAD_ENCRYPTION_FAILURE

60021

Failed to encrypt contract’s primitive information

合约账户基本信息加密失败

TEE_EXEC_PLAIN_CONTRACT_NOT_ALLOWED

60022

Executing plain contract in TEE environment is not allowed

TEE 中不允许执行明文合约

TEE_UPDATE_PLAIN_CONTRACT_NOT_ALLOWED

60023

Updating plain contract in TEE encvironment is not allowed

TEE 中不允许更新明文合约

0 人点赞