In the Ethereum documentation I read that infura is classified as Ethereum API as a service, while BlockCypher as Ethereum Web APIs, but what is the difference between a node as a service and a web API?
Hi @mario, and welcome to the Infura community!
That link definitely isn’t the clearest! Let’s see if I can help put it into more easily understandable terms.
Both Infura and BlockCypher are libraries that allow a developer to abstract away a lot of the complexity of dealing directly with Ethereum nodes; they’re basically here to make your life easier as a developer so you can get the information you want from the Ethereum nodes without having to do a lot of intricately detailed work. In short, under the hood, they’re doing very similar things. Which one you use will depend on the information you’re wanting to get and how quickly you want to get it.
However, Infura (which is also an Ethereum node provider) has the added functionality of us maintaining and managing Ethereum nodes for you instead of you having to do it yourself. This decreases your storage costs, as well as time spent on scaling projects. You can read more about how that works on our FAQ page.
Let us know if you have any further questions!
Thanks for your reply, you were very clear. So the main difference between Infura and BlockCypher is that Infura remotely runs the nodes for me (geth / parity / …) and provides access to the API so you don’t have to host your own node and download all the data from the blockchain, while Blockcypher makes APIs available to connect directly to the blockchain without the need for a node (geth / parity …). Is it correct?
What is the advantage of using a node?
I apologize for the many questions but I am very confused and discouraged because before your answer I have not found anything exhaustive
Thanks for your patience on this follow-up!
So, both Infura and BlockCypher help you run the nodes and give you access to the API. However, the main difference between Infura and BlockCypher under the hood is that BlockCypher’s API is mostly RESTful, whereas ours is JSON-RPC. The main difference between those two is that with JSON-RPC you can have APIs out-of-the-box, which allows for more performance improvement. In addition, REST verbs are quite limited in their scope - JSON-RPC allows you to get a more clear result.
If you want to learn more about the differences between a RESTful API and JSON-RPC, check this link out - I found it to be very clear in explaining the differences!