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

in #steemdev7 years ago

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.

Sort:  

😏 I don't get anything of this ... 🤷🏼‍♀️ Have to show the hubby - he is the certified computer scientist in our tiny family. But I wanted to show you my respect (I loved the article before) ... so ... an upvote and following and Tipuvote!

please upvote my post sir

Who? Me? I am no Sir. I am a she! 😜

Hey mam Follow me and upvote my posts thanks !

Loading...

Thanks for this post. always looking forward to your post.

thanx for the post, that was beneficial

A very informative post, thanks man

veri usefull information sir

Informative post. Thanks for sharing! This is a great help :)

Brother... I am very happy you just upvote my post and also boost my potential...
Love from my side...
My vote power is very low but upvote you that means you are good...

I loved the article. Thanks for sharing and help