How can I Configure a Dapp to run from any browser without installing Ethereum client such as, Geth? Is there any JS library to achieve that. I am working on a decentralised application on a Private Ethereum Network and I want my users to be able to access it without installing a client. Or suppose, a user has to download the client to access my page, how can I make him connect to my network?
There is a Chrome extension called MetaMask you can use. However, it's a bit harder if you want your users to connect to your private network - MetaMask offers the clients to connect to Mainnet, Ropsten, Kovan or Rinkeby network. It can also connect to custom RPC, but I don't recommend it because you shouldn't allow certain RPC APIs to be accessible publicly - this can become security issue, but for the most users it's perfectly fine. As it looks there are three ways you can go about it:
- Tell your users to download some other client (eg. Parity) and then connect to private network through MetaMask. This would mean that Parity would serve just to inject the web3 global object in the browser and be connected to their local node.
- Use MetaMask to connect to your network through RPC.
- Use another network. If it's for testing purposes you can use Kovan or Rinkeby. This also comes with the tradeoff - Kovan uses Proof of Authority scheme which means that your users must connect their Github accounts or cellphone numbers in order to get the Kovan Ethers. You can ask personally for more Kovan Ethers and then distribute it to your users, but you would need to be very trustworthy for the Kovan team to give you more Ethers.
These are the current ways you can achieve what you want; however, since the things move so fast in this space, there is a possibility something will change and make it easier.