从 NEO 2.9.0 开始,一些附加功能被独立封装在插件中用以调用,目的是为了提升节点的安全性,稳定性和灵活性。用户可以自行选取所需要的扩展功能而不用每次在启动 NEO-CLI时通过附加参数来调用,避免了很多人为的失误操作同时简化了打开钱包,调用 API 等一系列繁琐的指令。点击此处下载 Plugins。
插件 | 功能 | |
ApplicationLogs | 在 RPC 模式下自动同步智能合约日志(ApplicationLogs),目前日志已经改为以 LevelDB 格式存储。 | 交易所必选 |
ImportBlocks | 同步离线包。 | 必选 |
RpcSecurity | 提升 RPC 安全。 | 可选 |
SimplePolicy | 启用共识的简单策略。 | 搭建私链必选 |
StatesDumper | 导出 NEO-CLI 状态数据。 | 可选 |
安装插件
要安装插件,在客户端根目录下新建 Plugins 文件夹(注意首字母大写),然后将解压出来的插件拷贝到其中,如下所示在neo-cli根目录下安装:
插件中的 API 接口+ f' \! p7 b d4 ]4 o0 A
getapplicationlog 方法6 ^' H5 e# C9 |) @' a/ W. r9 b$ A7 k
根据指定的 NEP-5 交易 ID 获取合约日志。完整的合约日志会记录到 ApplicationLogs 目录。
此方法由插件提供,需要安装 ApplicationLogs 插件才可以调用。
参数说明
txid:交易ID1 h9 t F2 w. K
调用示例
请求正文:
{
"jsonrpc": "2.0",, f; t5 p" r$ ~7 I/ d- \: C+ V
"method": "getapplicationlog",- T# p6 i- q5 _7 O, c, _
"params": ["0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07"],# w+ O5 b0 G! ?3 }9 [7 y5 S
"id": 12 }+ B# H' S3 N$ F7 d* U
}
响应正文:( `0 \* P8 [1 c. @* _
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"txid": "0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07",8 s$ ?7 G3 \1 Y! ^
"executions": [
{' ~) m9 X1 Q5 `. M# t, V
"trigger": "Application",- i: U) p1 [9 g
"contract": "0x0110a8f666bcc650dc0b544e71c31491b061c79e",
"vmstate": "HALT, BREAK",
"gas_consumed": "2.855",4 U+ W& z) M! B5 m( |& G
"stack": [7 ~9 X9 N/ Q* K+ Q
{
"type": "Integer",$ ^: `. k% W$ A* z6 T6 _
"value": "1"4 f( G2 Q Z0 `
}! F; B" I6 L4 c. Z/ p, R8 B' ]
],
"notifications": [
{ a5 E" N9 L R- S
"contract": "0xb9d7ea3062e6aeeb3e8ad9548220c4ba1361d263",
"state": {, J6 o; h/ g1 L/ ]0 g0 K
"type": "Array",! Y- C8 S2 M1 T0 `9 H% q* t# b
"value": [
{
"type": "ByteArray",
"value": "7472616e73666572": J0 L& C0 E+ {( ?' F% P
},' n+ A: }2 i# b- E, a+ v- U( w
{! T& d) R+ j1 V/ f5 W1 [
"type": "ByteArray",
"value": "e3069da508f128069a0cd2544b0728ccbacdfb43"
},7 B# y( }. c, E
{9 G0 V' ^( r- p. T0 ~! M" J
"type": "ByteArray",
"value": "d142f89e93b2717426a8130c37dad93aad70cff5"0 V! M: L, [9 r
},
{
"type": "ByteArray",
"value": "00e1f50500000000"
}
]5 J- I/ u5 O( ^9 `
}
}( p* Q! V6 U, y/ l* `7 a
]
}1 |6 S9 z% N# Z) x$ R
]5 c( c9 O6 q7 H# i4 A! j/ z' Z
}
}
说明:
其中 gas_consumed 表示该交易消耗的 gas 数量,即交易手续费。每笔交易会有10 gas 的免费额度。如果数量小于10,则不收取手续费,如果大于10,那么收取超过10的那部分作为手续费并向上取整。例如 gas_consumed = 12.3,那么实际收取的手续费为3 gas