-
Notifications
You must be signed in to change notification settings - Fork 74
/
cdk_erigon.star
160 lines (148 loc) · 5.89 KB
/
cdk_erigon.star
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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_sequencer(plan, args):
cdk_erigon_config_template = read_file(src="./templates/cdk-erigon/config.yml")
contract_setup_addresses = service_package.get_contract_setup_addresses(plan, args)
cdk_erigon_sequencer_config_artifact = plan.render_templates(
name="cdk-erigon-sequencer-config-artifact",
config={
"config.yaml": struct(
template=cdk_erigon_config_template,
data={
"zkevm_data_stream_port": args["zkevm_data_streamer_port"],
"is_sequencer": True,
"consensus_contract_type": args["consensus_contract_type"],
}
| args
| contract_setup_addresses,
),
},
)
cdk_erigon_chain_spec_template = read_file(
src="./templates/cdk-erigon/chainspec.json"
)
cdk_erigon_chain_spec_artifact = plan.render_templates(
name="cdk-erigon-sequencer-chain-spec-artifact",
config={
"dynamic-kurtosis-chainspec.json": struct(
template=cdk_erigon_chain_spec_template,
data={
"chain_id": args["zkevm_rollup_chain_id"],
"enable_normalcy": args["enable_normalcy"],
},
),
},
)
cdk_erigon_chain_config_artifact = plan.get_files_artifact(
name="cdk-erigon-chain-config",
)
cdk_erigon_chain_allocs_artifact = plan.get_files_artifact(
name="cdk-erigon-chain-allocs",
)
cdk_erigon_chain_first_batch_artifact = plan.get_files_artifact(
name="cdk-erigon-chain-first-batch",
)
config_artifacts = struct(
config=cdk_erigon_sequencer_config_artifact,
chain_spec=cdk_erigon_chain_spec_artifact,
chain_config=cdk_erigon_chain_config_artifact,
chain_allocs=cdk_erigon_chain_allocs_artifact,
chain_first_batch=cdk_erigon_chain_first_batch_artifact,
)
cdk_erigon_package.start_cdk_erigon_sequencer(
plan, args, config_artifacts, "cdk_erigon_sequencer_start_port"
)
def run_rpc(plan, args):
# Start the zkevm stateless executor if strict mode is enabled.
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_stateless_executor_start_port",
)
zkevm_sequencer_service = plan.get_service(
name=args["sequencer_name"] + args["deployment_suffix"]
)
zkevm_sequence_url = "http://{}:{}".format(
zkevm_sequencer_service.ip_address, zkevm_sequencer_service.ports["rpc"].number
)
zkevm_datastreamer_url = "{}:{}".format(
zkevm_sequencer_service.ip_address,
zkevm_sequencer_service.ports["data-streamer"].number,
)
pool_manager_service = plan.get_service(
name="zkevm-pool-manager" + args["deployment_suffix"]
)
pool_manager_url = "http://{}:{}".format(
pool_manager_service.ip_address,
pool_manager_service.ports["http"].number,
)
cdk_erigon_config_template = read_file(src="./templates/cdk-erigon/config.yml")
contract_setup_addresses = service_package.get_contract_setup_addresses(plan, args)
cdk_erigon_rpc_config_artifact = plan.render_templates(
name="cdk-erigon-rpc-config-artifact",
config={
"config.yaml": struct(
template=cdk_erigon_config_template,
data={
"zkevm_sequencer_url": zkevm_sequence_url,
"zkevm_datastreamer_url": zkevm_datastreamer_url,
"is_sequencer": False,
"pool_manager_url": pool_manager_url,
"consensus_contract_type": args["consensus_contract_type"],
}
| args
| contract_setup_addresses,
),
},
)
cdk_erigon_chain_spec_template = read_file(
src="./templates/cdk-erigon/chainspec.json"
)
cdk_erigon_chain_spec_artifact = plan.render_templates(
name="cdk-erigon-rpc-chain-spec-artifact",
config={
"dynamic-kurtosis-chainspec.json": struct(
template=cdk_erigon_chain_spec_template,
data={
"chain_id": args["zkevm_rollup_chain_id"],
"enable_normalcy": args["enable_normalcy"],
},
),
},
)
cdk_erigon_chain_config_artifact = plan.get_files_artifact(
name="cdk-erigon-chain-config",
)
cdk_erigon_chain_allocs_artifact = plan.get_files_artifact(
name="cdk-erigon-chain-allocs",
)
cdk_erigon_chain_first_batch_artifact = plan.get_files_artifact(
name="cdk-erigon-chain-first-batch",
)
config_artifacts = struct(
config=cdk_erigon_rpc_config_artifact,
chain_spec=cdk_erigon_chain_spec_artifact,
chain_config=cdk_erigon_chain_config_artifact,
chain_allocs=cdk_erigon_chain_allocs_artifact,
chain_first_batch=cdk_erigon_chain_first_batch_artifact,
)
cdk_erigon_package.start_cdk_erigon_rpc(
plan, args, config_artifacts, "cdk_erigon_rpc_start_port"
)