0

I am trying to get some bitcoin network data and I am using bitcoind-rpc library. If i just run their example:

var run = function() {
  var bitcore = require('bitcore');
  var RpcClient = require('bitcoind-rpc');
 
  var config = {
    protocol: 'http',
    user: 'user',
    pass: 'pass',
    host: '127.0.0.1',
    port: '18332',
  };
 
  // config can also be an url, e.g.:
  // var config = 'http://user:pass@127.0.0.1:18332';
 
  var rpc = new RpcClient(config);
 
  var txids = [];
 
  function showNewTransactions() {
    rpc.getRawMemPool(function (err, ret) {
      if (err) {
        console.error(err);
        return setTimeout(showNewTransactions, 10000);
      }
 
      function batchCall() {
        ret.result.forEach(function (txid) {
          if (txids.indexOf(txid) === -1) {
            rpc.getRawTransaction(txid);
          }
        });
      }
 
      rpc.batch(batchCall, function(err, rawtxs) {
        if (err) {
          console.error(err);
          return setTimeout(showNewTransactions, 10000);
        }
 
        rawtxs.map(function (rawtx) {
          var tx = new bitcore.Transaction(rawtx.result);
          console.log('\n\n\n' + tx.id + ':', tx.toObject());
        });
 
        txids = ret.result;
        setTimeout(showNewTransactions, 2500);
      });
    });
  }
 
  showNewTransactions();
};

I need to provide the data of my local node.

But I have problems downloading bitcoin node mostly because I do not have enough space.

Is there another way I can access the node without downloading full node localy?

  • 2
    You can use pruned node if space is an issue. –  Sep 11 '21 at 20:52
  • 1
    The RPC interface is way of interacting with **your** Bitcoin node. If you don't run one, then no, you can't just use someone else's. But as @Prayank says, you can run a pruned node, which has lower disk requirements. There are other solutions **if** you're willing to trust someone else's node, but they involve other protocols than RPC. – Pieter Wuille Sep 12 '21 at 15:46

1 Answers1

0

Since you mention nodejs you might be interested in bcoin:

https://bcoin.io/

https://github.com/bcoin-org/bcoin/

Bcoin is modular and configurable in weird ways. See this other answer on how bcoin can be modified to download arbitrary blocks even in pruned mode:

How do I get old blocks while running a pruned node?

pinhead
  • 4,932
  • 2
  • 23
  • 38