在节点js中使用JSON RPC库查询以太坊完整节点

时间:2018-08-21 09:49:20

标签: node.js json-rpc google-kubernetes-engine geth

我正尝试通过以下方式使用此库制作JSON RPC API https://www.npmjs.com/package/node-json-rpc

var rpc = require('node-json-rpc');
var options = {
      port: 443,
      host: "mynode",
      path: '/rpc',
      strict: true
    };
    this.client = new rpc.Client(options);

rpc api在以下网址上公开 https://mynode/rpc

我正在尝试使用以下代码执行txpool_content https://github.com/ethereum/go-ethereum/wiki/Management-APIs#txpool_content api:

var self = this;
    return new Promise((resolve, reject) => {
        console.log("insie transaction pool");
        self.client.call(
          {"jsonrpc": "2.0", "method": "txpool_content", "params": [], "id": 1},
          function (err, res) {
            if( err ) {
                resolve(null);
            }
            else {
                resolve(res.result);
            }
          }
        );
    });

但是,有时我会收到此错误

 Error: read ECONNRESET
    at TCP.onread (net.js:660:25) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' }

,有时res对象是undefined

我正在使用GCE入口控制器(mynode),然后将其转发到运行geth节点的服务器。

我应该如何调试此问题?

PS:如果我运行此命令

geth attach https://mynode/rpc
> txpool.content

运行正常。

编辑

在本地运行并在端口http上的8545上运行时,它工作正常。

0 个答案:

没有答案