buildOMG / comms

OMG Network FAQ
2 stars 1 forks source link

Plasma Update #5 - October 8, 2018 #31

Closed nebali closed 5 years ago

nebali commented 5 years ago

Plasma Update 05

Production

This sprint has been focused on getting the Watcher API ready for an internal deployment and end-to-end integration. This includes fixes for bugs encountered when reporting initial deposits in the watcher and when publishing multiple plasma blocks at the same root chain block height. We’ve improved the API for reporting account balances and submitting transactions through the watcher. We’ve also improved performance syncing with the child chain.

We’re deep in our audits of the Plasma MVP root chain contracts with Quantstamp and Synthetic Minds. Once we have the results, we’ll report back on any issues they’ve found and how we’re addressing them.

We made a fix to the root chain contracts to address an attack vector on how finalizeExits() performs on long exit queues when there’s insufficient gas to clear all the exits. We now have the ability to use an _exits_to_processparameter so that finalizeExits can continue to work in the event of very long exit queues.

Speaking of end-to-end integration: we’re putting the final touches on our first integration library before making that repo and npm module (Node Package Manager, a javascript packaging format) public as well. We’ve chosen to use javascript for the first library since it’s one of the most accessible and widely-used languages. This is considered an early alpha version; the initial feature set of the library will support deposits into and transactions on the child chain, primarily interacting with the watcher. This library provides the end to end infrastructure for integrating an end-user application, from application to library to watcher to child chain. This is great news for the eWallet team too - this release paves the way for the next steps on blockchain integration.

Edit: the omg-js repo is now public!

Research

Plasma Cash

We’ve been working with a few people on some pretty cool research related to Plasma Cash, building off Vitalik’s atomic swap and defragmentation work. Part of this research is a simplification of the atomic swap protocol. The other part of this work is a generalization of Vitalik’s idea of using very small denomination coins to simulate fungible assets in Plasma Cash. These designs are currently being cleaned/written up and should be published to ethresear.ch in the next week.

We’ve also been tackling the problem of large histories in Plasma Cash, which is currently the biggest barrier to using Plasma Cash for large-scale use cases. This is a pretty hard problem, and it seems like we probably can’t solve it in a clean way without something fancy (like maybe RSA accumulators). We’re looking into this more deeply right now and will continue to update as we get further.

RLP Encoding

With the help of the community (and GitCoin!), we managed to bring together a standardized and tested RLP encoding library for Solidity. This makes it possible to RLP encode things inside a smart contract running on Ethereum, which can be useful for certain Plasma implementations. We’re not using this in production (not efficient enough), but we’re making use of it for More Minimal Plasma, a simplified Plasma MVP smart contract implementation meant to demonstrate exactly how Plasma MVP works. If you’re a developer looking to learn more about Plasma, you should check out the RootChain smart contract.

Plasma Implementers Call #15 Notes


nebali commented 5 years ago

Final version