Reddit dApp using Embark
Go to file
dependabot[bot] 23bc56e320 Bump lodash from 4.17.11 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 14:53:00 +02:00
app Updating code to use material-ui newer typography variants 2018-10-13 12:16:18 -04:00
config Use ws for contracts 2018-10-30 21:58:40 +01:00
contracts Updates Smart Contract For Better Flow 2018-08-25 10:29:07 +02:00
instructions Updating tests to 3.2.2 2018-10-09 19:00:32 -04:00
test Updating tests to 3.2.2 2018-10-09 19:00:32 -04:00
.babelrc Updating dot files and config 2018-10-09 19:01:56 -04:00
.eslintignore Initial commit 2018-08-20 14:42:27 -04:00
.eslintrc Initial commit 2018-08-20 14:42:27 -04:00
.gitignore Updating dot files and config 2018-10-09 19:01:56 -04:00
LICENSE Initial commit 2018-08-20 14:42:27 -04:00
README.md Initial commit 2018-08-20 14:42:27 -04:00
embark.json Updating dot files and config 2018-10-09 19:01:56 -04:00
package-lock.json Bump lodash from 4.17.11 to 4.17.19 2020-07-16 14:53:00 +02:00
package.json bump babel versions, add babel core 2018-10-28 15:30:10 +01:00

README.md

Decentralized Reddit dApp built using Embark by Status

Developed for a Mexico 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 deploying the DApp to testnet, as well as a section to discuss voting mechanism when building the contract.
  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) doesnt work
    • Cause: Metamask known issue “The current provider doesnt support subscriptions: MetamaskInpageProvider”
    • Solution: open issue
  3. Websockets errors