3c502f48f7 | ||
---|---|---|
app | ||
config | ||
contracts | ||
instructions | ||
test | ||
.babelrc | ||
.gitignore | ||
README.MD | ||
chains.json | ||
embark.json | ||
package-lock.json | ||
package.json |
README.MD
Decentralized Twitter dApp built using Embark by Status
Developed for a DappCon workshop, this dApp provides an example of how to build a dApp using Embark.
Instructions
To follow along, please use the instructions.
FAQ
-
Can I use
embark simulator
? Yes, you can. You can even useganache-cli
directly if desired. We are not using for this dApp due to websockets limitations of ganache. -
Do we have some success stories of people using embark and delivering projects?
- The Status OKR voting app: https://github.com/status-im/contracts/tree/000-snt-voting-dapp
- Vortex demo using embark: https://github.com/Horyus/vortex-demo-embark/blob/master/package.json#L23-L35
- ERC-721 (collectibles) tutorial and demo app: https://github.com/status-im/embark-tutorial-erc721. Tutorial docs here: https://github.com/status-im/embark-tutorial-erc721/tree/tutorial-series/tutorial
-
Where can I learn more about the API of the EmbarkJS object?
- We are currently working on updating the docs, and additionally we are currently making EmbarkJS a library on its own right: https://github.com/embark-framework/EmbarkJS
-
What are the "key" differences between Embark and Truffle? Advantages
- 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 build real dApp, while truffle, for the most part, focuses mostly on the smart contract side. 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
Disadvantages
- Integrated debugger - we are currently working on this, and the developer can always use remix as an alternative
- Embark is focused on the trinity of web3 components that can be used to create truly decentralised applications
Known issues with this dApp
Issues on localhost
- Create account - hangs with metamask
- Cause - most likely non-increasing nonce issue with metamask: https://github.com/MetaMask/metamask-extension/issues/1999)
- Solution - open issue
Issues on testnet (rinkeby)
- 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.
- 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
- Websockets errors
- Cause: known issue with metamask: https://github.com/MetaMask/metamask-extension/issues/1645)
- Solution: open issue