# txid反查插件使用教程

# 1. 插件概述

一个轻便的txid反查插件,通过txid获取transaction结构,采用levedb数据库存储,仅保存不可逆区块中的交易。采用leveldb数据库,无需启动额外进程,且witness_node程序提供API接口查询。

插件名:query_txid_plugin

数据库:leveldb

所需最低配置:

网络 内存 磁盘
主网 32G 500G
测试网 16G 200G

# 2. 插件的编译与启动

默认发布的release程序,并未包含该插件。如需使用该插件,请按照如下步骤编译带插件的witness_node程序。

# 2.1 编译插件

# 1. 下载leveldb和snappy依赖和并安装

# 安装leveldb依赖
wget https://github.com/google/leveldb/archive/v1.20.tar.gz
tar xvf v1.20.tar.gz
rm -f v1.20.tar.gz
cd leveldb-1.20
make
sudo cp -r out-static/lib* out-shared/lib* "/usr/local/lib"
cd include
sudo cp -r leveldb /usr/local/include
sudo ldconfig
# 安装snappy依赖
git clone https://github.com/google/snappy.git
cd snappy
mkdir build
cd build && cmake ../ 
sudo make install

# 2. 开启编译选项,支持leveldb插件

按如下方式修改gxb-core/CMakeLists.txt文件,开启编译选项

set( LOAD_TXID_PLUGIN 1)

# 3. 编译带插件的witness_node程序

在Ubuntu环境下编译:Build Ubuntu (opens new window)

在MacOS环境下编译:Build OSX (opens new window)

# 2.2 启动插件

# 1. 启动带插件的witness_node程序

启动witness_node程序时,添加plugins参数,参数如下:

--plugins "witness query_txid data_transaction"

# 2. 验证插件是否正常工作

当前目录下,生成trx_entry.db文件。

# 3. 插件的使用说明

使用get_transaction_rows接口可以根据txid,获取transaction结构,示例如下:

curl --data '{
    "jsonrpc": "2.0",
        "method": "call",
        "params": [0, "get_transaction_rows", ["730ab1d94b77232c04f79a83480bf5b2721d0837"]],
        "id": 1
}' 127.0.0.1:28090 | json_pp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1094  100   934  100   160  92907  15915 --:--:-- --:--:-- --:--:--  101k
{
   "jsonrpc" : "2.0",
   "id" : 1,
   "result" : {
      "ref_block_num" : 133,
      "expiration" : "2017-12-14T03:45:00",
      "signatures" : [
         "2067dc299394b083c2138ba60df4839dbe0795efeecf29f8585955b975f3390c6d10bc55de4717c32770803fdc61364400e994a0194039f800058bccadec9e3686"
      ],
      "extensions" : [],
      "operation_results" : [
         [
            1,
            "1.2.20"
         ]
      ],
      "ref_block_prefix" : 636542480,
      "operations" : [
         [
            5,
            {
               "extensions" : {},
               "owner" : {
                  "weight_threshold" : 1,
                  "address_auths" : [],
                  "key_auths" : [
                     [
                        "GXC7vSbriJrEia1kK3A9sQ2LS8e9qmB7hojnkakJ39zomAba5jTek",
                        1
                     ]
                  ],
                  "account_auths" : []
               },
               "referrer" : "1.2.17",
               "name" : "gxb-forum",
               "referrer_percent" : 1000,
               "registrar" : "1.2.17",
               "active" : {
                  "weight_threshold" : 1,
                  "account_auths" : [],
                  "address_auths" : [],
                  "key_auths" : [
                     [
                        "GXC7vSbriJrEia1kK3A9sQ2LS8e9qmB7hojnkakJ39zomAba5jTek",
                        1
                     ]
                  ]
               },
               "fee" : {
                  "amount" : 114453,
                  "asset_id" : "1.3.0"
               },
               "options" : {
                  "num_committee" : 0,
                  "votes" : [],
                  "memo_key" : "GXC7vSbriJrEia1kK3A9sQ2LS8e9qmB7hojnkakJ39zomAba5jTek",
                  "voting_account" : "1.2.5",
                  "num_witness" : 0,
                  "extensions" : []
               }
            }
         ]
      ]
   }
}