Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

NEO 客户端插件

朋友一起走
129 0 0
NEO 客户端插件
( G* x  }* m' |# m' p# C8 I从 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 状态数据。可选
' r3 j1 \. @& q( a: `
安装插件9 }- f! m+ X$ y+ M( _/ z2 I/ H
要安装插件,在客户端根目录下新建 Plugins 文件夹(注意首字母大写),然后将解压出来的插件拷贝到其中,如下所示在neo-cli根目录下安装:
' ?% Z5 L8 R  Z7 v1 ~
- O" k3 u, b1 [* l. D插件中的 API 接口
' q- o* h1 _% M1 \- P* o1 [getapplicationlog 方法
0 D, O' U  f+ `2 W2 E: ]+ n. k' F根据指定的 NEP-5 交易 ID 获取合约日志。完整的合约日志会记录到 ApplicationLogs 目录。, @  T/ F9 m! u0 _/ x1 m  ?8 m$ f
此方法由插件提供,需要安装 ApplicationLogs 插件才可以调用。% p* e- W; B' P1 {' r
参数说明
: }# s' Z" `, n0 \) x% |txid:交易ID
( v  p, F1 m6 z$ Y% k调用示例5 u/ I! D; X7 R- s  P3 R5 o
请求正文:
, V+ }, O% [  W% p# L{' J5 B8 _1 \! p% n7 z7 r8 m7 `
  "jsonrpc": "2.0",
5 K+ h6 q: ~/ F- h! J! w) W) s; q  "method": "getapplicationlog",
8 i2 y$ ^& x2 _7 ]" f  "params": ["0xff488264c1abf9f5c3c17ed8071f6dd3cd809b25797a43af49316490ded8fb07"],3 w, A9 |: b. S0 h6 Q
  "id": 1
1 G. T+ j: {5 h3 E}
# D' m; L& W( S" Q' i8 a响应正文:- H6 @0 D8 O9 f# Q$ q
{8 W2 n( U% T  a1 j/ u2 m
    "jsonrpc": "2.0",
) i# [1 |: i, ]1 x+ v    "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": [
8 t( ^$ f6 c7 F7 N            {
8 @: E7 M2 j6 n: W3 H                "trigger": "Application",
+ c. J3 z) r$ D3 F. E% t' g                "contract": "0x0110a8f666bcc650dc0b544e71c31491b061c79e",
* }7 a; I( z2 I1 Y3 |                "vmstate": "HALT, BREAK",
) A8 M4 U9 b8 E! E" V* F                "gas_consumed": "2.855",3 E! s: N% C, ]1 ]: u
                "stack": [
8 g) Y( ]; j5 W5 z( R( p7 p. b1 h                    {  u5 _; S/ ^4 ~9 e3 Q
                        "type": "Integer",
% p: [( f( O9 d: b  z                        "value": "1"
: ?$ f, Y$ u# f! K3 H9 ]                    }
$ C& M9 M- A# ~+ Q( q) a                ],* v5 K4 C! {; R9 X8 U7 _& @
                "notifications": [
& o7 J" w$ n, _                    {
4 u2 M/ T: y# F; S                        "contract": "0xb9d7ea3062e6aeeb3e8ad9548220c4ba1361d263",
, `9 o  A1 d# f5 F3 S# R                        "state": {
' k; V' V3 S- s0 N, `                            "type": "Array",
+ L/ O5 q" j+ w& t2 X                            "value": [
6 N0 r) N3 @5 g" v8 z                                {+ R& Q3 G! p* ^4 b6 P- f; k
                                    "type": "ByteArray",1 i' L- F( F  X
                                    "value": "7472616e73666572"
2 w+ z8 y! l3 g0 A4 g& M' S% H                                },# j( Q8 _, L' l7 O7 y: {
                                {3 J! d" A' T) h+ H+ j
                                    "type": "ByteArray",
! r& ?" w8 t; P" I  W& {                                    "value": "e3069da508f128069a0cd2544b0728ccbacdfb43"
/ f& ~) C; `- s, ^( r2 E* Q                                },
5 x! y% O/ U/ I% h, K- F% }; |                                {
' Y* V+ M; [4 Y, L1 V' q9 w+ {                                    "type": "ByteArray",$ M# p6 \) X9 @
                                    "value": "d142f89e93b2717426a8130c37dad93aad70cff5"
; U- E2 ~/ I; y0 |+ D/ C                                },
$ O+ ]3 S3 y1 n  D: B7 V0 X                                {4 v# s4 }0 o$ b0 U+ X& [
                                    "type": "ByteArray",
( a) R7 T4 w: U2 K! U8 G# X                                    "value": "00e1f50500000000"' j" o% m7 r7 }9 K$ v$ L) H
                                }
# G1 W3 d* D' n" t% F" \6 K1 i                            ]
8 H  R- ]" |3 L0 [+ y& Y                        }7 |+ T7 \- L& [3 h" u! W8 i$ i3 {
                    }
0 n! O( y9 k  h' q) m9 J. g                ]
/ {' J$ F# R( y: c$ H            }; 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
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

朋友一起走 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    16