Skip to content

Commit

Permalink
Merge pull request #211 from 0xPolygon/jhilliard/beta-15
Browse files Browse the repository at this point in the history
Update to beta15 and add stateless executor
  • Loading branch information
praetoriansentry authored Aug 8, 2024
2 parents 06a0c98 + d35e8b9 commit e24511d
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 10 deletions.
20 changes: 20 additions & 0 deletions cdk_erigon.star
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
service_package = import_module("./lib/service.star")
cdk_erigon_package = import_module("./lib/cdk_erigon.star")
zkevm_prover_package = import_module("./lib/zkevm_prover.star")


def run_rpc(plan, args):
if args["erigon_strict_mode"]:
stateless_configs = {}
stateless_configs["stateless_executor"] = True
stateless_executor_config_template = read_file(
src="./templates/trusted-node/prover-config.json"
)
stateless_executor_config_artifact = plan.render_templates(
name="stateless-executor-config-artifact",
config={
"stateless-executor-config.json": struct(
template=stateless_executor_config_template,
data=args | stateless_configs,
)
},
)
zkevm_prover_package.start_stateless_executor(
plan, args, stateless_executor_config_artifact
)

zkevm_sequencer_service = plan.get_service(
name=args["sequencer_name"] + args["deployment_suffix"]
)
Expand Down
5 changes: 3 additions & 2 deletions input_parser.star
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ DEFAULT_ARGS = {
"deployment_suffix": "-001",
"sequencer_type": "erigon",
"data_availability_mode": "cdk-validium",
"zkevm_prover_image": "hermeznetwork/zkevm-prover:v6.0.3-RC18",
"zkevm_prover_image": "hermeznetwork/zkevm-prover:v6.0.3-RC20",
"zkevm_node_image": "hermeznetwork/zkevm-node:v0.7.0",
"cdk_validium_node_image": "0xpolygon/cdk-validium-node:0.7.0-cdk",
"cdk_node_image": "ghcr.io/0xpolygon/cdk:0.0.9",
Expand All @@ -14,7 +14,7 @@ DEFAULT_ARGS = {
"zkevm_bridge_ui_image": "leovct/zkevm-bridge-ui:multi-network",
"zkevm_bridge_proxy_image": "haproxy:2.9.9-bookworm",
"zkevm_sequence_sender_image": "hermeznetwork/zkevm-sequence-sender:v0.2.0-RC4",
"cdk_erigon_node_image": "hermeznetwork/cdk-erigon:2.0.0-beta13",
"cdk_erigon_node_image": "hermeznetwork/cdk-erigon:2.0.0-beta15",
"toolbox_image": "leovct/toolbox:0.0.1",
"zkevm_pool_manager_image": "hermeznetwork/zkevm-pool-manager:v0.1.0-RC1",
"zkevm_hash_db_port": 50061,
Expand Down Expand Up @@ -61,6 +61,7 @@ DEFAULT_ARGS = {
"l1_seconds_per_slot": 1,
"zkevm_rollup_chain_id": 10101,
"zkevm_rollup_fork_id": 9,
"erigon_strict_mode": True,
"polygon_zkevm_explorer": "https://explorer.private/",
"l1_explorer_url": "https://sepolia.etherscan.io/",
"zkevm_use_gas_token_contract": False,
Expand Down
8 changes: 5 additions & 3 deletions kurtosis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ description: |-
deployment_suffix: "-001"
sequencer_type: erigon
# The type of data availability to use.
# Options:
# - 'rollup': Transaction data is stored on-chain on L1.
Expand All @@ -38,7 +38,7 @@ description: |-
data_availability_mode: cdk-validium
# Docker images and repositories used to spin up services.
zkevm_prover_image: hermeznetwork/zkevm-prover:v6.0.3-RC18
zkevm_prover_image: hermeznetwork/zkevm-prover:v6.0.3-RC20
# zkevm_prover_image: hermeznetwork/zkevm-prover:v4.0.19
zkevm_node_image: hermeznetwork/zkevm-node:v0.7.0
Expand All @@ -58,7 +58,7 @@ description: |-
zkevm_bridge_proxy_image: haproxy:2.9.9-bookworm
zkevm_sequence_sender_image: hermeznetwork/zkevm-sequence-sender:v0.2.0-RC4
cdk_erigon_node_image: hermeznetwork/cdk-erigon:2.0.0-beta13
cdk_erigon_node_image: hermeznetwork/cdk-erigon:2.0.0-beta15
toolbox_image: leovct/toolbox:0.0.1
zkevm_pool_manager_image: hermeznetwork/zkevm-pool-manager:v0.1.0-RC1
Expand Down Expand Up @@ -135,6 +135,8 @@ description: |-
# The fork id of the new rollup. It indicates the prover (zkROM/executor) version.
zkevm_rollup_fork_id: 9
erigon_strict_mode: true
polygon_zkevm_explorer: https://explorer.private/
l1_explorer_url: https://sepolia.etherscan.io/
Expand Down
5 changes: 5 additions & 0 deletions lib/zkevm_prover.star
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
PROVER_TYPE = struct(
prover="prover",
executor="executor",
stateless_executor="stateless-executor",
)


Expand All @@ -12,6 +13,10 @@ def start_executor(plan, args, config_artifact):
return _start_service(plan, PROVER_TYPE.executor, args, config_artifact)


def start_stateless_executor(plan, args, config_artifact):
return _start_service(plan, PROVER_TYPE.stateless_executor, args, config_artifact)


def _start_service(plan, type, args, config_artifact):
cpu_arch_result = plan.run_sh(
description="Determining CPU system architecture",
Expand Down
11 changes: 7 additions & 4 deletions params.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,15 @@ args:
data_availability_mode: cdk-validium

# Docker images and repositories used to spin up services.
zkevm_prover_image: hermeznetwork/zkevm-prover:v6.0.3-RC18
# zkevm_prover_image: hermeznetwork/zkevm-prover:v8.0.0-RC5-fork.12
zkevm_prover_image: hermeznetwork/zkevm-prover:v6.0.3-RC20
# zkevm_prover_image: hermeznetwork/zkevm-prover:v4.0.19

zkevm_node_image: hermeznetwork/zkevm-node:v0.7.0
cdk_validium_node_image: 0xpolygon/cdk-validium-node:0.7.0-cdk
cdk_node_image: ghcr.io/0xpolygon/cdk:0.0.9

zkevm_da_image: 0xpolygon/cdk-data-availability:0.0.7
# zkevm_da_image: 0xpolygon/cdk-data-availability:0.0.6

zkevm_contracts_image: leovct/zkevm-contracts # the tag is automatically replaced by the value of /zkevm_rollup_fork_id/

Expand All @@ -69,8 +69,8 @@ args:
panoptichain_image: minhdvu/panoptichain:0.1.47
zkevm_bridge_ui_image: leovct/zkevm-bridge-ui:multi-network
zkevm_bridge_proxy_image: haproxy:2.9.9-bookworm
zkevm_sequence_sender_image: "hermeznetwork/zkevm-sequence-sender:v0.2.0-RC4"
cdk_erigon_node_image: hermeznetwork/cdk-erigon:2.0.0-beta13
zkevm_sequence_sender_image: hermeznetwork/zkevm-sequence-sender:v0.2.0-RC4
cdk_erigon_node_image: hermeznetwork/cdk-erigon:2.0.0-beta15
toolbox_image: leovct/toolbox:0.0.1
zkevm_pool_manager_image: hermeznetwork/zkevm-pool-manager:v0.1.0-RC1

Expand Down Expand Up @@ -147,6 +147,9 @@ args:
# The fork id of the new rollup. It indicates the prover (zkROM/executor) version.
zkevm_rollup_fork_id: 9

# If erigon is being used as the sequencer, this flag will enable a stateless executor to verify the execution of the batches.
erigon_strict_mode: true

# The address of the rollup manager contract on L1.
# If specified, the rollup data will be retrieved from this contract instead of using the contracts service.
# zkevm_rollup_manager_address: ""
Expand Down
11 changes: 10 additions & 1 deletion templates/cdk-erigon/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,14 @@ zkevm.address-sequencer: "{{.zkevm_l2_sequencer_address}}"
zkevm.address-zkevm: "{{.zkevm_rollup_address}}"
zkevm.datastream-version: 2


# struct {{if .erigon_strict_mode}}
zkevm.executor-strict: true
zkevm.executor-urls: zkevm-stateless-executor{{.deployment_suffix}}:{{.zkevm_executor_port}}
# not stricg {{else}}
zkevm.executor-strict: false
# zkevm.executor-urls: zkevm-prover{{.deployment_suffix}}:{{.zkevm_executor_port}}
# end {{end}}


zkevm.sequencer-batch-seal-time: 12s # 12s
zkevm.sequencer-block-seal-time: 6s # 6s
Expand All @@ -48,6 +54,9 @@ zkevm.l2-chain-id: {{.zkevm_rollup_chain_id}}
zkevm.rpc-ratelimit: 250
zkevm.disable-virtual-counters: false

nodiscover: true
maxpeers: 0

# sequencer {{if .is_sequencer}}
txpool.disable: false
zkevm.data-stream-host: "0.0.0.0"
Expand Down
10 changes: 10 additions & 0 deletions templates/trusted-node/prover-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,12 @@
* everything to be as realistic as possible, but don't want to
* run the full prover.
*/ -}}
{{if .stateless_executor}}
"runAggregatorClientMock": false,
{{else}}
"runAggregatorClientMock": true,
{{end}}


{{- /*
* aggregatorClientMockTimeout is the amount of time in
Expand Down Expand Up @@ -165,7 +170,12 @@
* "local" if no external database is used (data will be stored in
* cache)
*/ -}}
{{if .stateless_executor}}
"databaseURL": "local",
"dbReadOnly": true,
{{else}}
"databaseURL": "postgresql://{{.prover_db.user}}:{{.prover_db.password}}@{{.prover_db.hostname}}:{{.prover_db.port}}/{{.prover_db.name}}",
{{end}}

{{- /*
* dbNodesTableName is the schema and name of the nodes table in
Expand Down

0 comments on commit e24511d

Please sign in to comment.