Skip to main content

What is Time Travel?

Time Travel lets users schedule a set of transactions to be executed in the future, each with specific conditions. It's like setting a timer for a transaction to become active. This feature differs from regular blockchain transactions, which are processed immediately without ordering or conditions. With Time Travel, users can plan actions ahead of time, considering dependencies on other events.

One of the key innovations of "Time Travel" is its departure from atomic transactions. In traditional database systems and blockchain operations, an atomic transaction is an indivisible and irreducible series of operations such that occurs, or nothing occurs. "Time Travel" introduces a paradigm where transactions can be executed in a sequence, with later transactions depending on the outcomes of earlier ones.

Just-In-Time (JIT) liquidity can be facilitated using "Time Travel", allowing users to access funds or assets exactly when needed, reducing the need for holding large reserves.

Schedulers, or scheduled tasks, can be implemented on the blockchain, automating operations like periodic payments, contract renewals, or other time-dependent actions.

"Time Travel" enables Just-In-Time (JIT) liquidity, giving users access to funds precisely when required, minimizing the need for large reserves. It also allows for scheduling tasks on the blockchain, automating actions such as periodic payments or contract renewals. It facilitates coincidence-of-wants exchanges, where mutual needs are fulfilled simultaneously without money, enabling efficient barter-like transactions on a digital platform.

Asynchronous Execution Paradigm

A fascinating aspect of "Time Travel" is its ability to deal with values that are not yet computed at the time of transaction execution. This means that transactions can be designed to operate based on outcomes or states that are anticipated but not yet realized. It extends the blockchain's functionality to not just record and execute based on current states but also to intelligently interact with expected future states.

Components

CallBreaker: Manages the execution and introspection of deferred transactions and their states, ensuring calls comply with predefined conditions.

CallBreakerStorage: Provides the storage structure for the CallBreaker. It stores configurations and data related to the transactions.

SmarterContract: A simple template for contracts interfacing with CallBreaker. It allows developers to assert specific conditions on transactions such as transaction ordering.