Create an SVM Rollup

Highly Recommended - Opt for Quicklaunch

We strongly advise utilizing the Quicklaunch option for creating a new Rollup, as opposed to manually following the detailed steps. Quicklaunch streamlines the process, ensuring simplicity and efficiency. Save time and reduce complexities by opting for Quicklaunch to set up your new Rollup seamlessly.

1. Clone GitHub Repositories

Start by cloning the necessary repositories from GitHub. Use the following commands in your terminal:

git clone https://github.com/airchains-network/svm-station.git
git clone https://github.com/airchains-network/tracks.git

If you're utilizing EigenDA, there's no necessity to clone any repository. Otherwise, clone the respective repositories for the DA client you're using.

wget https://github.com/airchains-network/tracks/releases/download/v0.0.2/avail-light

2. Setting Up and Running the SVM Station

After cloning the repository, change your directory to the SVM Station project folder:

cd svm-station

Build the Project

Compile the project using Rust's cargo tool. This command builds the project with the default debug configuration:

cargo build

Start the Blockchain

Execute the script to start the blockchain network. Ensure that the script is executable before running it:

/bin/bash start-chain.sh

These steps will set up the necessary dependencies and initiate the SVM Station for further configurations and use.

3. Setting Up and Running DA

Generate DA KEY for Avail

Download the Binary to Generate Keys

wget https://github.com/airchains-network/tracks/releases/download/v0.0.2/avail-node

Give Permission to the Downloaded Binary

chmod +x ./avail-node

Generate DA Keys For Avail

SS58 Address is your DA Keys

Running avail da with Custom Identity Configuration

If you possess a specific seed phrase and wish to use it instead of the generated one, you can either modify the default identity configuration file or pass the seed phrase as a flag.

  • To modify the default identity configuration file, navigate to ~/.avail/identity/identity.toml and edit it using a text editor such as nano.

nano ~/.avail/identity/identity.toml
  • Alternatively, you can create a new identity configuration file and specify your seed phrase. For example:

touch ~/identity.toml
nano ~/identity.toml

Then, execute the availup.sh script with the --identity flag and specify the path to your custom identity configuration file:

Example Identity Configuration

Attention: Using the seed phrase provided below in production environments is strongly discouraged.

Here is an example of the content for the ~/identity.toml file:

avail_secret_seed_phrase = 'sugar genuine grief already basic lend labor audit bread trip space limb'

This seed phrase will be used for identity generation during the execution of the availup.sh script.

Feel free to customize the identity configuration as needed!

Running avail da

To execute the avail da, use the following command:

avail-light --network "turing" --app-id 36 --identity ~/identity.toml

For obtaining Turing Testnet tokens, please visit the Faucet-Avail

4. Setting Up and Running Tracks

Remove Old Data

Before initiating the setup process, ensure that any old data is removed if present. Use the following command:

sudo rm -rf ~/.tracks

Installing Dependencies

After cloning the repository, navigate into the project directory.

cd tracks

Then, tidy up the Go modules to ensure that dependencies are properly managed.

go mod tidy

Initiate Sequencer

To initiate the sequencer, execute the following command:

go run cmd/main.go init --daRpc "da-rpc" --daKey "daKey" --daType "<da-type>" --moniker "<moniker-name>" --stationRpc "http://127.0.0.1:8899" --stationAPI "http://127.0.0.1:8899" --stationType "svm"

Specify the DA type using the --daType flag with one of the following options:

  • "avail" for Avail DA

  • "celestia" for Celestia DA

  • "eigen" for Eigen DA

  • "mock" for Mock DA

Create Keys for Junction

Generate keys for the Junction component using the following command:

go run cmd/main.go keys junction --accountName <account-name> --accountPath $HOME/.tracks/junction-accounts/keys

Fund Keys for Junction Testnet

Navigate to the Switchyard faucet in the Airchains Discord group and follow the provided steps to obtain Switchyard tokens for funding the keys.

Initiate Prover

Initiate the Prover component using the following command:

go run cmd/main.go prover v1SVM

Create Station on Junction

Create a station on the Junction component with the specified parameters using the following command:

go run cmd/main.go create-station --accountName <account-name> --accountPath $HOME/.tracks/junction-accounts/keys --jsonRPC "<junction-rpc>" --info "SVM Track" --tracks ["track-pilot-1-address","track-pilot-2-address",...] --bootstrapNode "<persistence_peer>"

In the --bootstrapNode parameter, input your persistence peer. Follow these steps to create your bootstrapNode persistence_peer with the node ID:

  1. Locate the node ID in the ~/.track/config/seqencer.toml configuration file.

  2. Copy the node ID from the configuration file.

  3. Insert the copied node ID into the following string format:

"/ip4/<user-ip>/tcp/2300/p2p/<node_id>"

Replace <user-ip> with your actual IP address and <node_id> with the copied node ID.

This ensures that your track ID is correctly linked with the corresponding node ID for persistence_peer configuration.

Start Node

To start the node, execute the following command:

go run cmd/main.go start

This sequence sets up the necessary components for managing tracks effectively. Ensure that each step is executed correctly to ensure smooth operation.

Last updated