4th Street Bar Hive-Bar

Hive-Bar Powered by Hive beta-fdb5b5b

Community post

Fixing "Error: connect ETIMEDOUT ..." for SteemJS below 0.7.0 (NodeJS)

Right now the latest steem-js version on npm is 0.6.7 and default RPC server is still https://steemd.steemit.com. So it will not work, because it is an old uri.

The new RPC server URI is https://api.steemit.com and we need to change it manually.

We could do it programmatically in our script, but there is problem with that:

const { Steem } = require("steem").api;
const steem = new Steem({url: "https://api.steemit.com"});

steem.streamOperations(function _streamOperations(err, operation) {
    if (err) throw err;
    console.log('operation:', operation) // this will work fine
});


broadcast.voteAsync(POSTING_KEY, ACCOUNT, "accountname", "identifier-of-the-post", 10000)
   .then(res => console.log(res))
   .catch(err => console.error(err)); // this will error

broadcast module uses default steemApi configuration, so it will try to connect to https://steemd.steemit.com and ETIMEDOUT error will be thrown. So if we need a vote functionality we need to make https://steemd.steemit.com as default url manually.

There is two solutions for this.

  1. Install steem-js module directly from github https://github.com/steemit/steem-js
    or
  2. Edit file node_modules/steem/config.js. Put https://api.steemit.com in url field. You will get config like this:
{
  "transport": "ws",
  "websocket": "wss://steemd.steemit.com",
  "websocketdev": "wss://steemd.steemitdev.com",
  "uri": "https://steemd.steemit.com",
  "url": "https://api.steemit.com",
  "dev_uri": "https://steemd.steemitdev.com",
  "stage_uri": "https://steemd.steemitstage.com",
  "address_prefix": "STM",
  "chain_id": "0000000000000000000000000000000000000000000000000000000000000000"
}

You can change uri and transport field, if you wish, instead of url. But it is not necessary, because after updating to 0.7.0 this hack will not be needed.

79 upvotes $0.19

Replies (15)

Review before signing

Posting as . Signing with . Keychain permission: Posting. Hive Keychain will ask you to approve this action next.


  
Technical details

Operation fingerprint: