- How can integration of IPFS with ethereum be done in DApps?
- Which parts of a DApp will be on IPFS?
- Do any examples exist?
- If a DApp's site is hosted on github, is it not centralized?
Basically, you store any file into IPFS and then you store the IPFS hash in the Ethereum contract. Any user with an IPFS node is going to be able to access the file using that hash.
You can store data, images, the front end, etc. whatever you want.
Here you have an example: https://github.com/AdrianClv/ethereum-ipfs
No. Even if your DAPP frontend (the HTML/JS code with web3) is on GitHub or in a private server, your contract code (the code written in Solidity) is going to be executed on Ethereum. The frontend is only the code that gives you access to that contract (it's a link between the HTML and the Ethereum node), but the contract itself has to be uploaded to Ethereum in order to be executed. In fact, you can access the contract without the frontend if you execute the code directly from the console.
Ethereum is too heavy/expensive to store large blobs like images, video, etc.. Hence some external storage is necessary to store such objects. This is where IPFS comes in. The Ethereum DAPP could hold smaller state variables.
You can host static pages, data required for your app etc.. on IPFS.
etherface.io is a DAPP built on Ethereum and IPFS
Frontend is not DAPP - it is just one way to access your DAPP. Any person could develop a frontend for your APP and frontend here means accessible method - either a console, or a web GUI or from MIST.