The Jakarta protocol proposal introduces Transaction Optimistic Rollups (or TORUs) as the first (and experimental) implementation of optimistic rollups on Tezos.
TORUs are a scaling solution to improve TPS on Tezos.
At Layer 1 protocol level, a TORU has its own address, that compactly represents off-chain transaction execution and state updates. Assets can be deposited to the rollup – and withdrawn – by accounts, smart contracts and other rollups.
To run a TORU, a Layer 2 operator processes the transactions and update the state to reflect the changes. This operator only posts a receipt back to the main chain, summarizing the new state of the rollup as a cryptographic hash.
We can think at this behavior as a Layer 1 rollups factory that allows Layer 2 operators develop and run their off-chain nodes. This also gives them freedom to implement their own policies regarding fees and incentives. This offers diverse alternatives: being completely altruistic, whitelisting operations for specific projects, creating an off-chain subscription service or implementing their own L2 gas model based on e.g., cTez tickets.
As TORU is just a new proposal, there is no standard and supported implementation for a rollup node, which makes complicated to experiment with TORUs on Tezos.
Marigold, Nomadic Labs, TriliTech, Oxhead Alpha, Tarides, DaiLambda, Functori & Tweag have developed an experimental rollup node. This post aims to explain how to set it up to make experimentation easy... and maybe give you amazing project ideas with rollups and Tezos.
You must know how to setup an environment from scratch
First, run the below commands:
Set Jakartanet Tezos endpoint as default. You can use Marigold testnet node with this command:
Execute this command to originate a transaction rollup:
The last command will output a result similar to this (you will need the yellow information):
Now that we have a operator (mykey), rollup-id (originated tx rollup), and rollup-genesis (operation found in block). We can configure the rollup node with the previous information:
Run the rollup node with this command:
Done, now you have a rollup node running on Jakartanet testnet!
⚠️ This rollup node is still experimental and must not be used as is on mainnet. We encourage you to build, test and audit your own node before releasing a rollup.