从 NEO 2.9.0 开始,一些附加功能被独立封装在插件中用以调用,目的是为了提升节点的安全性,稳定性和灵活性。用户可以自行选取所需要的扩展功能而不用每次在启动 NEO-CLI时通过附加参数来调用,避免了很多人为的失误操作同时简化了打开钱包,调用 API 等一系列繁琐的指令。点击此处下载 Plugins。$ y6 E8 x$ t) h0 H/ I
插件 | 功能 | |
ApplicationLogs | 在 RPC 模式下自动同步智能合约日志(ApplicationLogs),目前日志已经改为以 LevelDB 格式存储。 | 交易所必选 |
ImportBlocks | 同步离线包。 | 必选 |
RpcSecurity | 提升 RPC 安全。 | 可选 |
SimplePolicy | 启用共识的简单策略。 | 搭建私链必选 |
StatesDumper | 导出 NEO-CLI 状态数据。 | 可选 |
安装插件1 L. C+ f) u3 _
要安装插件,在客户端根目录下新建 Plugins 文件夹(注意首字母大写),然后将解压出来的插件拷贝到其中,如下所示在neo-cli根目录下安装:: O/ v7 \' W+ Y! O2 C
插件中的 API 接口
getapplicationlog 方法6 t) K. C% \$ F5 n
根据指定的 NEP-5 交易 ID 获取合约日志。完整的合约日志会记录到 ApplicationLogs 目录。
此方法由插件提供,需要安装 ApplicationLogs 插件才可以调用。& [1 `+ ?" f, [6 J
参数说明" W$ @( r4 \% b' ]2 L- w0 i
txid:交易ID- _1 p8 z5 r9 p! x7 T- a
调用示例" x& J- ?8 d0 }$ [
请求正文:
{; e: ~. U" X% k$ o W* J
"jsonrpc": "2.0",6 U: r& x3 b9 g9 S9 D7 O+ J5 o
"method": "getapplicationlog",
"params": ["0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07"],! |+ }. v) ?5 r: c7 Y3 k* L- O& F( J
"id": 1
}
响应正文:
{
"jsonrpc": "2.0",
"id": 1,
"result": {. c* G' J7 k% g0 w8 E7 P) }
"txid": "0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07", t ~0 \1 X8 E4 T) j
"executions": [
{7 ^, I! @' z& U: N6 w" N5 W
"trigger": "Application",- q5 [" N0 h: Z3 p9 {
"contract": "0x0110a8f666bcc650dc0b544e71c31491b061c79e",: O" N: U- Y4 {6 Z7 b
"vmstate": "HALT, BREAK"," W7 v7 K; l& k& n- `1 R8 V
"gas_consumed": "2.855",, Q: r" @) g+ z+ |/ h/ A$ q
"stack": [
{
"type": "Integer",
"value": "1"
}
],8 K5 t) h; p1 V% k
"notifications": [: x0 L- x p) r
{
"contract": "0xb9d7ea3062e6aeeb3e8ad9548220c4ba1361d263",
"state": {+ ?4 Z& x) V( |& K# k
"type": "Array",% J+ r& r3 i) K
"value": [
{( s8 f$ ?! k4 j
"type": "ByteArray",
"value": "7472616e73666572"
},
{& ]8 b7 F/ A9 Q, n$ `) g' z3 n
"type": "ByteArray",' @& x/ }0 r e% z6 s
"value": "e3069da508f128069a0cd2544b0728ccbacdfb43"0 C* A; x7 c! J8 Y( D
},$ H4 u) H o' @. H- x
{' O& z( R* u" Z$ B4 K H" p# H8 H
"type": "ByteArray",$ |- C6 b4 L9 q; S" A& a' |# \
"value": "d142f89e93b2717426a8130c37dad93aad70cff5"
},0 k: @# g1 P% [. s0 w" ?! y" b
{
"type": "ByteArray",
"value": "00e1f50500000000"! s0 M; r! w$ q3 q
}. g1 e* n$ M6 I8 [* j
]
}" `4 k2 |4 J0 |, h1 t' v Y
}6 y2 d/ q6 I5 ?4 n3 O+ ?
]
}7 z- L7 v( f2 T% f, ?
]" r, ^. M5 O3 }- M7 x
}+ A: u! C5 P) o6 }! ^4 N" f( M
}
说明:
其中 gas_consumed 表示该交易消耗的 gas 数量,即交易手续费。每笔交易会有10 gas 的免费额度。如果数量小于10,则不收取手续费,如果大于10,那么收取超过10的那部分作为手续费并向上取整。例如 gas_consumed = 12.3,那么实际收取的手续费为3 gas