Prepare the aggregator service

Hardware (Pre-alpha testnet)

For every rollup

  • CPU per machine: 4-core CPU

  • RAM per machine: 16GB RAM

Inventory

Download aggregator-config.tar

wget https://pre-alpha-miner-download.opside.network/aggregator_conf.tar
tar -xzvf aggregator_conf.tar

The .tar file includes:

  • node.config.toml -- A TOML config file of the node image

  • executor.config.json -- A JSON config file of the prover image (for executor)

  • docker-compose.yml -- A docker-compose YAML file

  • Database init SQL files -- Two .sql files

Download genesis.json

Select a rollup and download it's genesis.json here: Reference of selecting rollups

Your keystore

The keystore file of your aggregator account (responsible for sending proofs and collecting rewards)

  • Download open source tool :

wget https://github.com/opside-protocol/opside-tool/releases/download/keystore/keystore-linux-x86_64

Please put the above files under one directory

Download zkevm-node image

wget https://pre-alpha-miner-download.opside.network/zkevm-node.tar

Load the image

sudo docker load < zkevm-node.tar

Modify the config file

node.config.toml

In the graph "Stake IDE" , you have selected a rollup to stake, now you need to modify the node.config.toml with the information from the rollup.

You need to modify the [Etherman] , [Synchronizer] , [Aggregator] , [EthExManager].

You can find the informations of [Etherman] and [Synchronizer] here: Reference of selecting rollups

[Etherman]
PoEAddr = "0x610178dA211FEF7D417bC0e6FeD39F05609AD788"  # polygonZkEVM contract addr
GlobalExitRootManagerAddr = "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6" # globalExitRootManager contract addr
GetForksStartBlkNum = 1 # deploy block num

[Synchronizer]
TrustedSequencerURL = ""
GenBlockNumber = 74 # deploy block num

# ================================================= #
[Aggregator]
SenderAddress = "0x70997970c51812dc3a010c7d01b50e0d17dc79c8" 
                # The address of your aggregator account.
                # Make sure that no other aggregator is running with this address.

[EthTxManager]
PrivateKeys = [
   {Path = "/pk/aggregator.keystore", Password = "abcde"}
]            # DO NOT CHANGE PATH, password is your keystore file password

executor.config.json

{
    
    "runExecutorServer": true, // set true to run an executor
    "runExecutorClient": false,
    
    "runAggregatorServer": false,
    "runAggregatorClient": false,  // we do not need a prover nor a mock prover here so false
    "runAggregatorClientMock": false, 
}