OMO is a system that analzes interaction between objects in a sharded blockchains and performs smart cross-shard migrations to maximize the global TPS.
Within this project, we've built a data extraction tool that gets transaction from Ethereum together with all the accounts, who's state is being modified by this transaction. We then built a Python simulator to verify the performance implications of replaying Ethereum transactions on a sharded environment. We show that our policy of "smart account migration" can increase the global TPS of a sharded environment by more than 500%. Finally, we verify the behavior of our policy using a real-world deployment using chainspace - a sharded UTXO blockchain.
The project is written entirely in Ethereum. We spent a lot of time trying to extract accounts that were modified by each transaction. Surprisingly, we discovered transactions modifying up to 60 accounts at once - we haven't seen that being done before. Our simulator is modular allowing other people to write their own policies and quickly test their performance. When designing the policy, we also spent a lot of time reading about sharded Ethereum to make sure that only use information available on the beacon chain.