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

in #steemdev6 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

I loved the article. Thanks for sharing and help

Thanks.
kami udah vote punya anda

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...

veri usefull information sir