I'm thinking about the way how to build truly decentralized web applications. Smart contracts looks like the good idea how to run server logic. To be able to push transactions (actions) from web application to smart contract we need to connect to the node by RPC.

And I see two ways how to do it:

Run node daemon locally and connect to

Use the distributed web gateway, when somebody ran node daemon and exposed it to the world. Something like Infura in Ethereum. Downside of this approach that if we would like to use it, then we lose decentralization because this gateway is single point of failure.

How to avoid those problems? It is possible to run "lightweight" node in browser to interact with EOS?


If you're using a public EOSIO blockchain, there are a number of public RPC API endpoints running. https://validate.eosnation.io/eos/reports/api_versions.html has a list of some that pass a certain set of tests (for EOS network).

You could write a script that tests availablity of public endpoints and then update your own DNS entry accordingly. So you can point to https://my-app.io which will connect the the available public endpoints.

Using public endpoints is not a good idea if you generate a lot of load... you might get blocked. In that case you need to run multiple endpoints yourself and distribute them around the world (wherever your users are) and use the same DNS technique.

No you cannot run a "lightweight" EOSIO node in a browser.

  • Thank you for the answer. Is it possible that public network may work as Man-In-The-Middle to steal data? Or if I ask users of my application to setup their public nodes, can I trust them?
    – gojihos207
    Mar 25 at 2:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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