How is OmiseGOing?
Allow me to reintroduce myself. My name is Kasima, Director of Engineering at OmiseGO. I’ve been looking after research and engineering of plasma and the OMG Network for the past year. I’ve been shipping software for over two decades now and I’ve been excited to bring as much of that experience I can to OmiseGO. I fell down the blockchain rabbit hole while I was lead engineer for GitHub’s billing and payments team (coincidentally called Gitcoin, internally). It was then, when I started getting interested in a more accessible financial system since I saw firsthand how it impacted developers around the world. At OmiseGO, I’ve been focused on shipping More Viable Plasma (Plasma MVP), Plasma Dog, the Ari public alpha and currently preparing for our network upgrade — Samrong.
Since launching our public alpha, I started reflecting on where we are. I realized that I’m holding a lot of information in my head about where we’ve been and where we’re going, what is exciting about our work and what keeps me up at night. I’ve found that sharing these thoughts have helped various people. I hope that it might help even more to write them all down to share at large.
So, without further ado, welcome to my first OmiseGO blog post “How’s OmiseGOing?”
Started from the white paper, now we’re here
At the beginning of April, I hit my one-year anniversary at OmiseGO. Looking back over the past year here, I’m in awe of how far we’ve come as a product, as an engineering team, and as an organization. To set the stage, in April 2018, we had just shelved our efforts on the Honte milestone (plasma + Tendermint) in favor of focusing all our attention on plasma. We had just completed a proof of concept implementation of Vitalik’s Minimum Viable Plasma – starting the plasma naming wars to see how confusing the community could make it. We also dabbled in firm dining utensils.
From there, the major milestones that got us to where we are today are the invention of More Viable Plasma, release of Plasma Dog, and the launch of Ari.
More Viable Plasma
The first iteration of plasma, now commonly known as Plasma MVP, was a bit “underspecified.” It was mostly a sketch of an idea and we ran with it. For an improved user experience, we wanted to remove confirmation signatures from the protocol. Over the summer of 2018, the OmiseGO team along with members of the soon-to-be Plasma Group, created the MoreVP in-flight exit. This became the most complete plasma specification to date and cleared the way for us to create a production implementation of plasma.
Once we abandoned Honte, we broke ground on a new elixir project that would become what we all now know as elixir-omg. As we were in the middle of active development of elixir-omg, I wanted our services running as soon as possible. Code that isn’t deployed is just a complicated and expensive poem — software needs to run. Even then, running software without users is conceptual art, at best. We partnered with Hoard to develop Plasma Dog, to be built on top of a minimum viable implementation of Minimum Viable Plasma in elixir-omg. (Yes, you can read that as we were building an MVP of Plasma MVP.)
As DEVCON 4 approached that fall, through the heroics of everyone on the team — we stood up OmiseGO’s first production blockchain services, ever. As with all technical launches, we continued to work up to the last minute. I’ll always remember sitting in a hotel room in Prague together with a few members of the OmiseGO and Hoard teams on the day before we announced Plasma Dog, while we deployed a brand new version of the child chain services. Our team had just fixed a few bugs that may have been stopping the child chain after running for some time. We had multiple contingency plans because we weren’t entirely sure of the fix and we weren’t entirely sure the child chain would actually stay up. Thus, the Vysherad network was born.
Thanks to all the team’s hard work, the services did stay up. Plasma Dog was an important milestone for us to hit as a company. We were able to declare a goal, coordinate across teams to reach that goal, work closely with an external partner, and have running production blockchain services that handled public load for an actual use case.
Launch of Ari
Over the course of December and January, the Warsaw team and members of the Bangkok team worked hard to get us to a minimum viable implementation of MoreVP (yes, that’s an MVP of MoreVP). Along with the Product team’s help, we launched the OmiseGO Developer Program (ODP) and the Ari private alpha.
After a few weeks of testing, bug fixing, and wrestling geth to the death, we finally opened up our first production services to the public at EDCON 2019 — the Ari Public Alpha. This launch had moments that kept us at the edge of our seats; down to the wire in order to hit our launch, we had members of the eWallet team help with the elixir-omg, submitting pull requests (PRs) to elixir-omg all the way through the launch. All in all, the launch went as public launches are supposed to go — uneventful.
A year ago, we had an underspecified plasma, a proof of concept implementation, and no running services. Today, we have what I still believe is the most production-ready plasma specification to date, production services open to the public, and a healthy engineering roadmap of where we want to go from here. There is still an overwhelming amount of work ahead of us but it’s important for us to reflect on how much work we’ve done so far — it’s something we can be proud of.
Now my whole team here
Since we launched Ari, we’ve had over 1.5MM transactions on the network. While most of these transactions come from our partners (such as Plasma Dog), there are also transactions from the ODP and from the public. This proportion of transaction sources may seem underwhelming at times, but this is actually how products are built. Features are developed over time, through very tight feedback and iteration with early users. This is the process we’re currently in with our partners.
I am confident enough to say that we are the most production-quality, true plasma implementation currently running. Plasma Dog has been running on Ari, continuously (almost!), for the past four months. Partners have been able to run load tests on our production services. Moreover, when we compare our transaction activity and availability with other plasma testnets, it’s clear that we’re doing well.
As of this post, we’ve been running Ari for over 112 days. Over those months, we’ve done plenty of development on work that has not been deployed to production. ERC-20 support for MoreVP, basic UTXO management, transaction metadata field, EIP-712 signing support, resiliency refactorings, and bug fixes are among the many features that required contract changes, which prevents an easy upgrade. This is a part of life with immutable contracts.
To release these new features, we need to perform a “hard” network upgrade, which is essentially launching an entirely new OMG Network. This will include deploying new contracts and setting up a new production cluster. The new network will be named Samrong. Ari will be retired. It is on to the next station.
To ensure users see this as an actual upgrade and not just an annoyance, we will assist them in transferring their value from Ari to the new network. This sets us apart from other testnets, which seem to care less about the state in their testnets. We will be updating our client software, working with Hoard to update Plasma Dog, and updating our documentation and guides to educate our users about the process. Our team has been testing exits in our private alpha and it’s been going well. We expect to announce and perform this upgrade in the next couple weeks.
It might seem like we’re being excessively careful about this upgrade process because “it’s only a testnet and who cares lol!” However, going through this as if it was “real money” is an invaluable learning opportunity for us. We’re already working through the details of how this upgrade will affect our users’ running applications. How we approach this process professionally is a critical part of our product differentiation. We are developing that knowledge and expertise now. This kind of “hard” upgrade will always be the upgrade of last resort in this smart contract world. I don’t want mainnet to be the first time we need to do it well. I’d like us to be experts by then.
Since I’ve been at OmiseGO, it’s been a challenge to balance long-term theoretical research topics with short-term implementation-related research needs. However, with the formation of Plasma Group (PG), we have more structure in our research mission. PG has the freedom to work on long-term plasma research without the demands of shipping an actual product.
The Bonchon Engineering Cycle marks the reboot of OmiseGO’s internal research effort since the inception of Plasma Group. Now, with a focused mission, we can research topics that are directly related to what we’re building — whether that’s adapting community research or embarking on new research of our own.
Now I’m on the road
I can honestly say that I haven’t been this excited about the work from the product, research, and engineering teams in all my time here. I’m looking forward to sharing more as we continue to ship.