Embark - Plasma Plugin
We got to know Eric during the Surge BKK Hackathon, there we began to discuss the idea of them taking part of the ODP and possibly creating an Embark Plasma integration. Eric is a core contributor for Status.im, working on the Embark team. Under Embark, he is responsible for contributing to all aspects of the Embark Framework, including core improvements, new features, maintenance, and community support. This month we talk to him about the Embark DApp framework and the new Embark-Plasma plugin which makes it easier to integrate DApps into the OmiseGO Network.
Q: What exactly is the Embark DApp framework and how did it start?
A: The Embark Framework is a fast, simple, and powerful framework designed to help developers build, test, and deploy fully decentralized applications. Embark was the first Ethereum framework. It started before Ethereum’s Olympic release – Iuri Matias, Embark’s creator, wanted to create a DApp but found there was no tooling available, so Embark was born.
Q: What are the technical issues that Embark is solving for developers that are building DApps?
A: Embark combines many different decentralized technologies and makes them available to the DApp via the EmbarkJS API, allowing developers to focus on building their DApps. A tool like Embark brings together many separate tooling chains that would have normally have to be initialized and run separately by the developer. Using Embark, the developer simply needs to configure the needed tool/services, and away she goes!
Q: What would you say sets the Embark Framework apart from others out there?
A: Other frameworks out there mainly focus on smart contract compilation and deployment. Embark sets itself apart by putting the entire Web3 stack in the hands of the developer. This means support for decentralized storage (IPFS/Swarm), decentralized communications (Whisper), decentralized name systems (ENS), and finally, decentralized smart contract development, deployment, testing, and debugging. Embark also offers Cockpit, a web-based interface that offers a block explorer, contract deployer, IDE with integrated debugger, DApp preview, contract interaction, and much, much more.
Q: Can you give us examples of DApp projects using Embark right now?
A: Dap.ps - A discovery DApp created by Status.im aimed at curating a large list of the best DApps available to use right now. This DApp was created to help users find DApps for services they may have never known they existed. This type of discovery service also helps to bring value to a DApp browser to users that may not understand what they can do inside the web3 ecosystem. Test coverage and the ease of uploading to IPFS were some of the driving factors that lead Status to use Embark with this build.
Giveth – A DApp that powers giving on the decentralized web3. It is a fully transparent way to set up decentralized cryptocurrency-driven fundraising campaigns on the web. Giveth switched over to use Embark due to a similarity in projects already being successfully built on top of Embark. Specifically, Status is building a way to fund projects in a fully decentralized manner, and Giveth has similar goals, so Embark was a better tooling choice for them.
Kudos by Status** - A DApp created by Status using Embark to facilitate a way to recognize and reward members of Status based on kudos votes. This DApp facilitates voting using the Status Network Token (SNT) and results in a distribution of SNT to the kudos recipients. This DApp uses Embark due to the ease of writing unit tests, the ability to monitor and deploy contracts as they are changed, and the ease of which Embark can upload DApps to IPFS.
Names on the Status messaging app** - A DApp that allows users to register a custom ENS name for use in the Status.im messenger app. Once using the Status app for messaging, for just 10 SNT users can create their own customized username and have it registered on the statusnet.eth root domain. Status sought to solve the difficult-to-remember usernames that presented itself with a dark messaging app by allowing participants to create their own names and have them registered in a fully decentralized manner. Status chose Embark for this build as it integrates with ENS and allows DApps to easily register, resolve, and lookup ENS names.
Q: How do you see the Embark OmiseGO Network plugin help DApp developers?
A: The Embark-Plasma plugin makes it super simple for DApp developers who want to integrate with Plasma chains in their DApps. Simply install the plugin in an Embark project and add the Plasma configuration, then developers instantly have the ability to deposit to the child chain, transfer on the child chain, and exit from the child chain (among many other features) via the EmbarkJS.PlasmaAPI that is made available in the DApp. The plugin also adds convenience functions to the Embark console, allowing developers to interact with their Plasma chain through console commands.
Q: What are the next steps you have for the project- what other features and functionality do you plan to include to make dApp development with Plasma easier?
A: Currently, the Embark-Plasma plugin has a few limitations and we are working to solve them. The feature we are hoping to come out with next is the ability to run a development Plasma chain using Embark, providing developers with the ability to create local DApps that use local Plasma chains. Currently, the plugin only supports using the Samrong network and Rinkeby.
The Embark team is working to allow accounts configured in Embark to be able to transact in the DApp, removing the need for Metamask transactions. This will be a huge convenience feature for development.
Q: How has your experience working on the OmiseGO Network been so far? What have you learned since being on the ODP?
A: It has been a great experience so far. The OmiseGO team has been very responsive and super helpful with any issues or questions I've had. I have learned a lot about how OmiseGO MoreVP Plasma chains work, and how to interact with them.
Learn more about the Embark Plasma Plugin through Eric’s recent Townhall Embark update.
*** Links can be accessed through a web3 browser
This post was originally published in the June 2019 OmiseGO Newsletter. To receive exclusive content and updates immediately upon publishing, sign up for our newsletter here.