28

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?

3 Answers 3

10

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.

7
  • 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.
    – q9f
    Jan 30, 2017 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, 2017 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, 2017 at 12:39
  • 1
    @digitaldonkey Good point. Maybe we should call it a signed-only node? :)
    – jeff
    Apr 10, 2017 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, 2017 at 10:22
9

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.

4
  • etherscan's "proxy" API is incompatible with JSON-RPC, though, so you can't point web3.js at it. Apr 2, 2016 at 14:17
  • Right, that's my second bolded point. Apr 6, 2016 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, 2017 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, 2018 at 0:33
3

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

2
  • 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, 2016 at 5:11
  • Note MetaMask is a web3js wrapper connecting to Infura. Mar 22, 2017 at 10:54

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