I have a small Dapp written in Meteor (client only) that reads some contract and account info from the blockchain. I can deploy my front-end code for free on meteor.com (or a variety of other places), but I still need a node to connect to.

Do I need to host my own node? If so, any recommendations? I'm using Digital Ocean $5 VPS now, and it's really, really slow.

If not, are there free/public options?


You may use Infura as a "read only / signed transactions only" node.

The use of the API is free: https://infura.io

Your may recommend your users to use Metamask Browser extension to be able to sign transactions in your App.

  • Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.
    – Afr
    Jan 30 '17 at 11:36
  • 1
    @digitaldonkey What makes it a read-only node? Methods like eth_sendRawTransaction enables us to write new data as well, right?
    – jeff
    Apr 9 '17 at 18:06
  • @jeff You are right. But you will need a transaction-signer (like Metamask.io) in order sign transactions on the frontend side in order to "write" into the blockchain. Infura has no eth_coinbase so you can't use it to "write" unsigned data. Apr 10 '17 at 12:39
  • 1
    @digitaldonkey Good point. Maybe we should call it a signed-only node? :)
    – jeff
    Apr 10 '17 at 14:30
  • Noob question from someone struggling to get all this, but if I am developing a native app, the private key can be part of the native app and the signature generated by the app right? I mean, beyond that I wouldn't need something like metamask in that case, correct?
    – Sentinel
    May 25 '17 at 10:22

If you are deploying an app at scale, you probably don't want a mere node. You want a full and performant web API. There are several available: I've personally used etherscan.io and been reasonably happy with it.

If it's just a testing project, spinning up your own node isn't too bad. But if you're using any of the actual node functionality, such as accounts, then you can't really use someone else's. And if you're not...web API all the way.

  • etherscan's "proxy" API is incompatible with JSON-RPC, though, so you can't point web3.js at it. Apr 2 '16 at 14:17
  • Right, that's my second bolded point. Apr 6 '16 at 1:22
  • This kind of thing is confusing me about Ethereum - I thought the whole point was decentralization but it seems if you want to develop a distributed app, you still need to go to Azure or something to host a node. I feel like I am missing something.
    – Sentinel
    May 25 '17 at 10:19
  • 1
    @Sentinel you don't need to go through Azure or AWS to host a node, you can always spin up your own node on your own metal, its just a pain in the ass. Jan 30 '18 at 0:33

AFAIK Mist is meant to provide you access to a node locally (the official Ethereum wallet is a full node), but I don't know if it is functional yet.

An alternative would be e.g. MetaMask (in alpha).

  • Yeah, I have no problem running a node locally, but I can't/won't leave my personal computer running 24/7 to power a Dapp. I signed up for updates to MetaMask.
    – eterps
    Jan 24 '16 at 5:11
  • Note MetaMask is a web3js wrapper connecting to Infura. Mar 22 '17 at 10:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.