Links

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,
}