7

I am studying about DApps and Ethereum. I did get the Solidity part but I am confused about the front-end apps.

Is it possible that I use web framework like PHP Laravel/Rails for Frontend/Db operations and interact with backend Blockchain via web3.js or anything?

8

Yes.

There are two approaches to consider

You can interact with Web3 on the client side and JavaScript

  • The user uses Mist or Parity browser or MetaMask and are connected to their own Ethereum node

  • All interaction with the user wallet (private keys) happens on the client side, in JavaScript

  • This is safe because the user does not need to give the control of his or her private keys to the service provider

  • You can still render pages in whatever backend programming language you wish, but currently web browsers do not support other scripting languages besides JavaScript

Here is a tutorial to build a frontend.

Old fashioned way

  • You can interact with Ethereum node on the server-side as you would interact on the client side

  • Web3 has standardish implementation for all programming languages (except maybe not PHP). Web3.py allows interaction from Python, you can use Web3.js in Node.

  • These libraries speak to Ethereum node running locally on the server side over JSON-RPC

  • You might need to do accounting for your users, a non-trivial task that I would not recommend non-experienced programmer to try

Also see Executing a Smart Contract in a Mobile App

  • 1
    Hmm it mean traditional browsers like Chrome etc can't be used for GUI? – Volatil3 Mar 16 '17 at 10:54
  • @Volatil3 chrome only with metamask plugin – Nicolas Massart Mar 16 '17 at 12:07
  • @Volatil3 Alternatively you can ask users to enter their private key and you can sign the transactions from them, like in the tutorial link I gave – Mikko Ohtamaa Mar 16 '17 at 13:03
  • @Volatil3 There was a reddit discussion on this: reddit.com/r/ethereum/comments/4stat8/… You might also want to consider reading the ConsenSys tutorial to learn about serverless architecture and Dapp dev. consensys.github.io/developers/articles/101-noob-intro – Dominik Harz Mar 16 '17 at 13:30
  • @NicolasMassart ah so there is dependency anyway. Does that mean I can't have an independant browser based client talking with some ethereum library in Python or other and return responses? – Volatil3 Mar 16 '17 at 16:56
1

I suggest you to start with this kind of boilerplate. They let's you to start with latest technologies.

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.