从 NEO 2.9.0 开始,一些附加功能被独立封装在插件中用以调用,目的是为了提升节点的安全性,稳定性和灵活性。用户可以自行选取所需要的扩展功能而不用每次在启动 NEO-CLI时通过附加参数来调用,避免了很多人为的失误操作同时简化了打开钱包,调用 API 等一系列繁琐的指令。点击此处下载 Plugins。4 [ _. p$ n6 E- u4 x9 \" t& Z
插件 | 功能 | |
ApplicationLogs | 在 RPC 模式下自动同步智能合约日志(ApplicationLogs),目前日志已经改为以 LevelDB 格式存储。 | 交易所必选 |
ImportBlocks | 同步离线包。 | 必选 |
RpcSecurity | 提升 RPC 安全。 | 可选 |
SimplePolicy | 启用共识的简单策略。 | 搭建私链必选 |
StatesDumper | 导出 NEO-CLI 状态数据。 | 可选 |
安装插件9 }- f! m+ X$ y+ M( _/ z2 I/ H
要安装插件,在客户端根目录下新建 Plugins 文件夹(注意首字母大写),然后将解压出来的插件拷贝到其中,如下所示在neo-cli根目录下安装:
插件中的 API 接口
getapplicationlog 方法
根据指定的 NEP-5 交易 ID 获取合约日志。完整的合约日志会记录到 ApplicationLogs 目录。, @ T/ F9 m! u0 _/ x1 m ?8 m$ f
此方法由插件提供,需要安装 ApplicationLogs 插件才可以调用。% p* e- W; B' P1 {' r
参数说明
txid:交易ID
调用示例5 u/ I! D; X7 R- s P3 R5 o
请求正文:
{' J5 B8 _1 \! p% n7 z7 r8 m7 `
"jsonrpc": "2.0",
"method": "getapplicationlog",
"params": ["0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07"],3 w, A9 |: b. S0 h6 Q
"id": 1
}
响应正文:- H6 @0 D8 O9 f# Q$ q
{8 W2 n( U% T a1 j/ u2 m
"jsonrpc": "2.0",
"id": 1,( u; i d& |7 i+ k6 L4 ^
"result": {$ N, Z) _( I0 q9 R( j( \) S
"txid": "0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07",( P& U* F U* R. Y- b+ b
"executions": [
{
"trigger": "Application",
"contract": "0x0110a8f666bcc650dc0b544e71c31491b061c79e",
"vmstate": "HALT, BREAK",
"gas_consumed": "2.855",3 E! s: N% C, ]1 ]: u
"stack": [
{ u5 _; S/ ^4 ~9 e3 Q
"type": "Integer",
"value": "1"
}
],* v5 K4 C! {; R9 X8 U7 _& @
"notifications": [
{
"contract": "0xb9d7ea3062e6aeeb3e8ad9548220c4ba1361d263",
"state": {
"type": "Array",
"value": [
{+ R& Q3 G! p* ^4 b6 P- f; k
"type": "ByteArray",1 i' L- F( F X
"value": "7472616e73666572"
},# j( Q8 _, L' l7 O7 y: {
{3 J! d" A' T) h+ H+ j
"type": "ByteArray",
"value": "e3069da508f128069a0cd2544b0728ccbacdfb43"
},
{
"type": "ByteArray",$ M# p6 \) X9 @
"value": "d142f89e93b2717426a8130c37dad93aad70cff5"
},
{4 v# s4 }0 o$ b0 U+ X& [
"type": "ByteArray",
"value": "00e1f50500000000"' j" o% m7 r7 }9 K$ v$ L) H
}
]
}7 |+ T7 \- L& [3 h" u! W8 i$ i3 {
}
]
}; j6 b, S3 U0 e4 |" D( d! j
]7 R0 F# f' ?6 O! `! ?; U' o; n
}" S4 f0 r+ q% C: U9 \
}) c" u" i0 i& U0 r9 Z5 J
说明:. U }$ i, @/ X* |' Q
其中 gas_consumed 表示该交易消耗的 gas 数量,即交易手续费。每笔交易会有10 gas 的免费额度。如果数量小于10,则不收取手续费,如果大于10,那么收取超过10的那部分作为手续费并向上取整。例如 gas_consumed = 12.3,那么实际收取的手续费为3 gas