No description, website, or topics provided.
Switch branches/tags
Clone or download

README.md

Decentralized DReddit dApp built using Embark by Status

Developed for a Devcon 4 workshop, this dApp provides an example of how to build a dApp using Embark.

Instructions

To follow along, please use the instructions.

Notes for workshop instructor.

  1. This dApp has less functionality than DTwitter, but includes a step for integrating your dApp with the Status.im dApp browser. In addition, there are addition steps (with accompanying instructions) for deploying the DApp to testnet, as well as a section to discuss voting mechanism when building the contract, which can be done in your own time and used as learning exercises.
  2. Recommended time: 1 - 1.5hr.
  3. For the upload, it's recommended to have deployed the dApp before, and have a short link made using a service like bit.ly. You need also an account that has Ropsten ether to deploy the contracts.
  4. After uploading the dApp, access it via status. You can use Status Desktop, or your phone. If you use your phone, you can display its screen on your computer using an app like Airdroid (free, for Android) or Reflector (for both iOS and Android)

FAQ

  1. Can I use embark simulator? Yes, you can. You can even use ganache-cli directly if desired. We are not using for this dApp due to websockets limitations of ganache.
  2. Do we have some success stories of people using embark and delivering projects?
  3. Where can I learn more about the API of the EmbarkJS object?
  4. What are the "key" features of Embark?
    • Embark is focused on the trinity of web3 components that can be used to create truly decentralised applications
      • The original trinity of web3, from the ethereum platform perspective, includes consensus, blockchain, and smart contracts. As well as swarm for decentralized storage and whisper for decentralized communication.
    • Embark is a “true” dApp framework to assist the developer in building real dApps. Embark can also be used just for developing contracts as well.
    • Embark is meant to help the developer easily integrate with other decentralized technologies, like storage, communication, and (in 3.2) naming systems.
    • Embark is meant to be both advanced and easy to use
    • Embark has reasonable defaults and tries to make your life easier, but it can always be overridden for configurable for your specific needs
    • Embark has a very plugin-driven architecture, so developers can also extend it to their own needs
    • Integrated debugger - we are currently working on this, and the developer can always use remix as an alternative

Known issues with this dApp

Issues on localhost
  1. Create account - hangs with metamask
Issues on testnet (rinkeby)
  1. Sometimes errors with the “known transaction” when deploying a contract.
    • Cause: not yet known
    • Solution: only solution so far is to increase the gasPrice in contracts -> testnet -> deployment. Embark team currently investigating.
  2. Getting contract events (tweets in this case) doesn’t work
    • Cause: Metamask known issue “The current provider doesn’t support subscriptions: MetamaskInpageProvider”
    • Solution: open issue
  3. Websockets errors