The past two weeks have largely been spent on closing out a bunch of feature work as well as some clean up. For the feature work, we’ve finished up development on:
- UTXO management: UTXO stands for Unspent Transaction Output. This is the transaction model we employ in the MVP framework (Bitcoin also uses UTXOs, unlike Ethereum which uses an account/balance scheme). UTXO management in the context of OMG means users are able to combine their various UTXOs without paying any fees. This makes the user experience functionally similar to the account/balance model, significantly improving the usability of the child chain.
- Support for an arbitrary data field in the transactions: The arbitrary data field allows transactions to be used for additional purposes than just UTXO transfer. The purpose of this feature is to allow transactions to be applicable to a wider range of use cases.
During this validation phase of our internal alpha testnet, we’ve learned a lot about how the system runs over a longer period of time. We’ve run into some availability issues related to syncing with geth, the first Ethereum client we integrated with. We’ve spent a lot of effort refactoring the services to be more fault tolerant of geth crashes and have continued to improve syncing. Additionally, in the interest of consistent availability, we’ve added parity support for our services so that we can work towards redundancy in case one node fails.* In pursuit of our commitment to providing our integrators and partners a reliable service, we’ll be continuing this resiliency and availability work in the upcoming iterations.
*For those who are not familiar, geth and parity are the two leading Ethereum clients, which allow users to interact with the Ethereum chain. Different clients are often written in different languages and offer different features; building for multiple clients means extra work but provides greater resiliency in case one client has issues.