从 NEO 2.9.0 开始,一些附加功能被独立封装在插件中用以调用,目的是为了提升节点的安全性,稳定性和灵活性。用户可以自行选取所需要的扩展功能而不用每次在启动 NEO-CLI时通过附加参数来调用,避免了很多人为的失误操作同时简化了打开钱包,调用 API 等一系列繁琐的指令。点击此处下载 Plugins。
插件 | 功能 | |
ApplicationLogs | 在 RPC 模式下自动同步智能合约日志(ApplicationLogs),目前日志已经改为以 LevelDB 格式存储。 | 交易所必选 |
ImportBlocks | 同步离线包。 | 必选 |
RpcSecurity | 提升 RPC 安全。 | 可选 |
SimplePolicy | 启用共识的简单策略。 | 搭建私链必选 |
StatesDumper | 导出 NEO-CLI 状态数据。 | 可选 |
安装插件1 u* e% F6 ]* I5 C
要安装插件,在客户端根目录下新建 Plugins 文件夹(注意首字母大写),然后将解压出来的插件拷贝到其中,如下所示在neo-cli根目录下安装:
8 I/ C/ [. Q& y: Y
插件中的 API 接口1 B+ R$ u# s: |" r, A) _6 h" @% N1 D
getapplicationlog 方法
根据指定的 NEP-5 交易 ID 获取合约日志。完整的合约日志会记录到 ApplicationLogs 目录。: d c! R! R8 y$ _
此方法由插件提供,需要安装 ApplicationLogs 插件才可以调用。
参数说明9 }+ n/ h) p v$ S: ?
txid:交易ID
调用示例
请求正文:
{4 I' m3 I1 [: ^" ^' i8 t5 D
"jsonrpc": "2.0",
"method": "getapplicationlog",
"params": ["0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07"],
"id": 1
}
响应正文:/ m% U. L' t0 L' S0 W+ q
{* x$ P" k2 y; n! s2 Y# Q Q
"jsonrpc": "2.0",
"id": 1,
"result": {' O( [( n- ?( |& m8 `
"txid": "0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07",2 K& C5 h$ U' I- Z
"executions": [
{
"trigger": "Application",) n, f5 g9 J, o. n
"contract": "0x0110a8f666bcc650dc0b544e71c31491b061c79e",
"vmstate": "HALT, BREAK",% \5 H8 F3 p* ?7 o/ a2 N
"gas_consumed": "2.855",; D' O+ a2 i7 |
"stack": [
{5 I6 r; E1 P2 I2 Y
"type": "Integer", {8 G/ q. E7 F: s
"value": "1"/ r4 V! P A$ e
}
],
"notifications": [
{
"contract": "0xb9d7ea3062e6aeeb3e8ad9548220c4ba1361d263",2 H1 E* C- G6 \ R
"state": {
"type": "Array",
"value": [
{: b, y% r4 C( X8 P; D
"type": "ByteArray",
"value": "7472616e73666572"
},
{ [: Q- _) F3 g+ {; c2 `/ Z
"type": "ByteArray",/ M& l0 ?: w9 ]: B+ A! @0 S
"value": "e3069da508f128069a0cd2544b0728ccbacdfb43"* C! v T. q8 d. }
},
{
"type": "ByteArray",
"value": "d142f89e93b2717426a8130c37dad93aad70cff5"' x# Y r1 U0 C* H: u$ S% W, J
},
{
"type": "ByteArray",
"value": "00e1f50500000000"- t. Z0 `7 i# `3 {. @% T" E* ]& ?
}; }) u6 b4 O. l. X1 n6 |4 O
]
}
}
]3 d* ?6 ~0 g/ X$ ~5 C$ }7 e, @( r+ }
}7 H5 F1 V7 {1 k' x+ r' N4 s
]7 _1 m. t5 x3 e4 b( ~3 }4 B
}
}( {& [# d$ L# i- |7 |. K. ^
说明:
其中 gas_consumed 表示该交易消耗的 gas 数量,即交易手续费。每笔交易会有10 gas 的免费额度。如果数量小于10,则不收取手续费,如果大于10,那么收取超过10的那部分作为手续费并向上取整。例如 gas_consumed = 12.3,那么实际收取的手续费为3 gas