从 NEO 2.9.0 开始,一些附加功能被独立封装在插件中用以调用,目的是为了提升节点的安全性,稳定性和灵活性。用户可以自行选取所需要的扩展功能而不用每次在启动 NEO-CLI时通过附加参数来调用,避免了很多人为的失误操作同时简化了打开钱包,调用 API 等一系列繁琐的指令。点击此处下载 Plugins。* z! J. A) H/ W- P6 Z' q
插件 | 功能 | |
ApplicationLogs | 在 RPC 模式下自动同步智能合约日志(ApplicationLogs),目前日志已经改为以 LevelDB 格式存储。 | 交易所必选 |
ImportBlocks | 同步离线包。 | 必选 |
RpcSecurity | 提升 RPC 安全。 | 可选 |
SimplePolicy | 启用共识的简单策略。 | 搭建私链必选 |
StatesDumper | 导出 NEO-CLI 状态数据。 | 可选 |
安装插件
要安装插件,在客户端根目录下新建 Plugins 文件夹(注意首字母大写),然后将解压出来的插件拷贝到其中,如下所示在neo-cli根目录下安装:
插件中的 API 接口( x# B5 x/ a; @1 F2 h2 x% m# l3 b
getapplicationlog 方法8 n- m4 u) s: U, ~
根据指定的 NEP-5 交易 ID 获取合约日志。完整的合约日志会记录到 ApplicationLogs 目录。
此方法由插件提供,需要安装 ApplicationLogs 插件才可以调用。& A* B9 o3 A3 \, l6 N
参数说明
txid:交易ID
调用示例- _; ?5 a8 D! ^1 D+ S
请求正文:
{$ Q" Q# n: n8 l; C
"jsonrpc": "2.0",
"method": "getapplicationlog",
"params": ["0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07"],& z* q) o5 `; b! k$ O5 m
"id": 1
}
响应正文:- [! p0 x+ }% q; k# D
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"txid": "0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07",7 j1 F* ]3 }3 g+ Z. r& b
"executions": [
{
"trigger": "Application",
"contract": "0x0110a8f666bcc650dc0b544e71c31491b061c79e",
"vmstate": "HALT, BREAK",* y$ c4 V' e1 R. X; P( z
"gas_consumed": "2.855",
"stack": [
{
"type": "Integer",
"value": "1"2 z6 r, d- K' u E' p2 v6 T
}
],
"notifications": [: V4 w, ?/ K- q2 y) e* C
{
"contract": "0xb9d7ea3062e6aeeb3e8ad9548220c4ba1361d263",
"state": {& W3 ?6 Y+ D# O& [0 `9 s
"type": "Array",1 N( o% c) j' l5 x2 Z: F
"value": [" {' ~8 F$ x8 C
{
"type": "ByteArray",
"value": "7472616e73666572". ?, z/ q- a4 J8 w) {" _* `% w
},
{& n7 D" G0 L4 u3 Z
"type": "ByteArray",
"value": "e3069da508f128069a0cd2544b0728ccbacdfb43"
},) T" ^) y' X: h% h# |
{9 X; d, z- C9 P6 N
"type": "ByteArray",0 U* e; M5 [' j: r* Z; A- I J3 `. ]
"value": "d142f89e93b2717426a8130c37dad93aad70cff5"$ x! I! F' g. F3 Q b9 D* K4 F" V
},+ Y* S/ |/ o; ?: Y4 N
{
"type": "ByteArray",6 y7 `' C5 G/ \ P
"value": "00e1f50500000000"
} j" @! j6 ^' f8 F! s. n
]
}
}/ m% v6 c3 d' ]" x
]5 k9 k$ l$ ~" n* d0 P0 a% b# U
}
]
}
}( x* B1 B4 T( a6 ^" O8 d( Y7 ?
说明:
其中 gas_consumed 表示该交易消耗的 gas 数量,即交易手续费。每笔交易会有10 gas 的免费额度。如果数量小于10,则不收取手续费,如果大于10,那么收取超过10的那部分作为手续费并向上取整。例如 gas_consumed = 12.3,那么实际收取的手续费为3 gas