Sui Owned Object Pools library

We’ve released the Sui Owned Object Pools library to help builders implement concurrent transaction processing on Sui without running into issues around equivocating owned objects.

Motivation

Equivocation is a common pitfall for builders using owned objects. Implementing horizontal scaling or concurrency for a service that executes transactions on Sui in the natural way results in an architecture that issues multiple transactions in parallel using the same owned inputs. This can lead to object equivocation, a situation where the Sui blockchain sees two conflicting transactions for the same object, which can be confusing and result in errors. This often leads to builders avoiding owned objects entirely, which prevents transactions from using the consensus fast path.

SuiOOPs addresses this problem by providing a set of tools that enable builders to manage concurrent transactions and avoid object equivocation.

Features

  • Executor service for distributing transaction execution across pools - avoids equivocating objects by assigning owned objects to isolated pools
  • Automatic horizontal scaling of pools - new pools added dynamically as load increases
  • Support for custom pool split strategies - determine how pools get allocated objects
  • Allows definition of custom sponsorship methods through callbacks.

Useful Links

npm package: suioop - npm

3 Likes