Development

GitHub metrics

Developer activity (from Coinlib.io)

Hackathons and workshops are events where OmiseGO is able to share their tools with the community. EDCON 2019 with its EDCON HACK was a prime stage to showcase OmiseGo product and have other developers build on their network. While at EDCON HACK they encountered a developer duo that was building on the OMG Network — Adrian Li and Kendrick Tan, the team behind Plasma Bootstrap.

What the OmiseGO team liked about Plasma Bootstrap is that it added value to the experience of those working on the OMG Network. It was a simple solution to the lack of real-time activity visibility while working on elixir-omg, their production repo of the OMG network. Adrian and Kendrick experienced difficulty debugging their work. According to them, “(they) felt that the experience required better metrics, data, and documentation, so we thought it would be a nice project to create something that would ease the pain for the community.” This inspired them to develop Plasma Bootstrap.

Plasma Bootstrap enables users to deploy a local plasma chain easier by providing a simple Graphical User Interface (GUI) to generate the terraform/bash scripts needed to deploy a plasma chain on either a cloud provider (e.g GCP, AWS, etc), or a local Linux machine. This is done instead of having to navigate around a terminal and editing the docker-compose file to start up the app. There is then a coupled analytics suite and alert system to help users diagnose issues, should they occur.

During the 48-hour hackathon, Adrian and Kendrick built on top of elixir-omg to provide analytics and real-time feedback from the OMG network to the user. They also constructed a web-app that allows users to generate several deployment scripts easily. According to them “(they) thought that having an intuitive, easy-to-use, one-click solution would provide an experience that is rarely seen in the current crypto space.”

Under the stress and pressure of a hackathon, the team behind Plasma Bootstrap found that understanding and debugging the existing Elixir + Python codebase to be one of the most challenging parts of the build. With the time constraints, Kendrick and Adrian were unable to add all the features they would have wanted. Given more time, the duo would have added in a component to easily browse and search the logs of the plasma server –instead of just metrics.

While the duo has certainly added value to the network, they have also come to appreciate the OMG Network and learned from the build. When asked the question: “What has building Plasma Bootstrap made you learn about working on the OMG Network?” They said:

“A lot of effort has been put to ensure that plasma works as it should, and we are really excited about the future of plasma. We hope that we can contribute to making plasma easy-to-use and more user-friendly for developers from all walks of life.”

More info on Plasma Bootstrap:

Language, tools and Framework used: React (for the UI), Docker, Terraform, Prometheus, Grafana, Flask (for prometheus exporter), Web3 (for ENS support).

Source codes: Plasma Bootstrap, Frontend and Terraform

Want to build on the OMG Network? Sign-up for the OmiseGO Developer Program (ODP)

The OmiseGO Developer Program (ODP) is an initiative that is part of the product development process. The objective of the ODP is to systematically and carefully facilitate usage and thorough testing of Proof-of-Concepts (PoCs) and early stage products in order to gain feedback for improvement. The program is aimed towards those who would like to build their own products, such as games, financial service applications, and education platforms on top of the OMG Network. Applicants of the ODP will fall into the developer category and are willing to work with unpolished and early stage codebase.

Early testers and integrators are given early access to the new products OmiseGO rolls out. Those in the program will also have opportunities to interact with each other and with the engineering team.

The ODP is an ongoing program and applications are accepted on a rolling basis. The goal is for ODP participants to participate as Alpha testers for roll-outs before they are released to the public in Beta. What this means is that there is no real definite timeline or start and end dates.

Technical Update

The past two weeks have been focused on three things:

Testing and fixing of bugs in the admin panel for the 1.2 release

Potterhat, a reliability service they’re building to connect to Ethereum

The Ethereum integration

Completed

Here are the main items the team has knocked out since the last update:

Improvements:

Update admin email #966

Frontend lint release version #971

Exchange pair default address #973

Add api_key.get endpoint #994

Rename admin panel subapp to frontend #997

Bug Fixes:

Frontend bug fixes #970

Quality Control Fixes for 1.2 #976

Fix unhandled error when match_all/match_any format is incorrect #978

Fix rate exchange bug #984

Fix exception raised when the given start_by field is not allowed #986

In review

These tasks have been completed, pending review by eWallet team admins:

Improvements:

Geth ethereum node communication #979

Blockchain Wallet #981

Retrieve blockchain balances #982

2FA Authentication #920

Support passing exchange pair rate as a string #1000

In progress

Potterhat PoC

Add auth token expiration #1001

Dialyzer fixes #868

- eWallet Suite More Resources:

OmiseGO eWallet GitHub repository

Initial public demonstration of the eWallet

​Chat to the eWallet team

Plasma

All eyes now point to the Network Upgrade. The team has been preparing to deploy a slew of new features to the public. They’re approaching the process as comprehensively as they can, by testing exits, preparing their client software, and updating the documentation. Once they’re ready to deploy the upgrade, all UTXO owners on Ari will have the tools necessary to easily exit their UTXOs back to Rinkeby and re-deposit them into the upgraded contract and child chain. With the complication of this upgrade in mind, they’ve also been pushing forward with research around a predicate-like contract architecture. They hope that the new architecture can reduce the number of times the team needs to perform this kind of “hard” upgrade.

In addition to the upgrade, the team continues to work on resiliency. They’ve recently added Parity support into their services so that they can test the relative availability versus geth. Going forward, they may be able to back their watcher and child chain services with multiple Ethereum nodes so that they can tolerate availability issues coming from the nodes. The team has also begun work to support RockDB which is more operationally-friendly. All this work helps their goal of providing production-quality services while they iterate on network features in PoA.

- For more on Plasma, see these community-produced resources: