Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions internal/adapters/boba_eth.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,9 @@ func (a *bobaEthAdapter) DefaultResources() ResourceDefaults {

func (a *bobaEthAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "bobanetwork/op-geth",
TagPattern: `^v\d+\.\d+\.\d+\.\d+$`,
Registry: "us-docker.pkg.dev",
Repository: "oplabs-tools-artifacts/images/op-geth",
TagPattern: `^v\d+\.\d+`,
}
}

Expand Down
6 changes: 3 additions & 3 deletions internal/adapters/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ func (a *coreAdapter) DefaultResources() ResourceDefaults {

func (a *coreAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "coredao/core-chain",
TagPattern: `^v\d+\.\d+\.\d+$`,
Registry: "ghcr.io",
Repository: "coredao-org/core-chain",
TagPattern: `^\d+\.\d+\.\d+$`,
}
}

Expand Down
6 changes: 3 additions & 3 deletions internal/adapters/dymension.go
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,8 @@ func (a *dymensionAdapter) DefaultResources() ResourceDefaults {

func (a *dymensionAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "dymensionxyz/dymd",
TagPattern: `^v\d+\.\d+\.\d+$`,
Registry: "ghcr.io",
Repository: "dymensionxyz/dymension",
TagPattern: `^\d+\.\d+\.\d+$`,
}
}
6 changes: 3 additions & 3 deletions internal/adapters/hashkey.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ func (a *hashkeyAdapter) DefaultResources() ResourceDefaults {

func (a *hashkeyAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "hashkeychain/hashkey-geth",
TagPattern: `^v\d+\.\d+\.\d+$`,
Registry: "us-docker.pkg.dev",
Repository: "oplabs-tools-artifacts/images/op-geth",
TagPattern: `^v\d+\.\d+`,
}
}

Expand Down
4 changes: 2 additions & 2 deletions internal/adapters/kava.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ func (a *kavaAdapter) DefaultResources() ResourceDefaults {
func (a *kavaAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "kava-labs/kava",
TagPattern: `^v\d+\.\d+\.\d+$`,
Repository: "kava/kava",
TagPattern: `^v\d+\.\d+\.\d+-goleveldb$`,
}
}
6 changes: 3 additions & 3 deletions internal/adapters/manta_pacific.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,9 @@ func (a *mantaPacificAdapter) DefaultResources() ResourceDefaults {

func (a *mantaPacificAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "mantanetwork/op-geth",
TagPattern: `^v\d+\.\d+\.\d+\.\d+$`,
Registry: "public.ecr.aws",
Repository: "i6b2w2n6/op-geth",
TagPattern: `^\d+\.\d+\.\d+$`,
}
}

Expand Down
2 changes: 1 addition & 1 deletion internal/adapters/metis.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ func (a *metisAdapter) DefaultResources() ResourceDefaults {
func (a *metisAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "metisprotocol/l2geth",
Repository: "metisdao/l2geth",
TagPattern: `^v\d+\.\d+\.\d+$`,
}
}
Expand Down
6 changes: 3 additions & 3 deletions internal/adapters/plasma.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ func (a *plasmaAdapter) DefaultResources() ResourceDefaults {

func (a *plasmaAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "plasma-next/node",
TagPattern: `^v\d+\.\d+\.\d+$`,
Registry: "ghcr.io",
Repository: "plasmalaboratories/plasma-consensus-public",
TagPattern: `^\d+\.\d+\.\d+$`,
}
}

Expand Down
124 changes: 74 additions & 50 deletions internal/adapters/polygon_zkevm.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,16 @@ import (
// Constants
// --------------------------------------------------------------------------

// defaultPolygonZkEVML1URL is the in-cluster Ethereum L1 endpoint cdk-erigon
// reads the rollup state from. Override via spec.extraEnv (L1_RPC_URL).
const defaultPolygonZkEVML1URL = "http://ethereum:8545"

// --------------------------------------------------------------------------
// Type
// --------------------------------------------------------------------------

// polygonZkEVMAdapter runs a Polygon zkEVM mainnet node on cdk-erigon, the
// Erigon-based client that replaced the now-archived zkevm-node.
type polygonZkEVMAdapter struct {
protocolAdapter
}
Expand All @@ -58,71 +62,91 @@ func (a *polygonZkEVMAdapter) DefaultImage(client string) string {
}

func (a *polygonZkEVMAdapter) ConfigTemplate(_ chainsv1alpha2.ChainInstanceSpec) (string, string, error) {
return "config.toml", polygonZkEVMConfig, nil
return "hermezconfig.yaml", polygonZkEVMConfig, nil
}

func (a *polygonZkEVMAdapter) HealthCheck(ctx context.Context, rpcURL string) (SyncStatus, error) {
return evmHealthCheck(ctx, rpcURL)
// ContainerArgs points cdk-erigon at the mounted config file and injects the L1
// RPC URL from the environment so it can be overridden without rewriting the
// config. Flags override config-file values in Erigon.
func (a *polygonZkEVMAdapter) ContainerArgs(_ chainsv1alpha2.ChainInstanceSpec) []string {
return []string{
"--config=/config/hermezconfig.yaml",
"--zkevm.l1-rpc-url=$(L1_RPC_URL)",
}
}

// --------------------------------------------------------------------------
// Config
// --------------------------------------------------------------------------
// ContainerEnv supplies the default L1 (Ethereum) RPC endpoint used to sync the
// zkEVM rollup state. Override by setting L1_RPC_URL in spec.extraEnv.
func (a *polygonZkEVMAdapter) ContainerEnv(_ chainsv1alpha2.ChainInstanceSpec) []corev1.EnvVar {
return []corev1.EnvVar{
{Name: "L1_RPC_URL", Value: defaultPolygonZkEVML1URL},
}
}

const polygonZkEVMConfig = `# Polygon zkEVM (CDK Validium) node configuration
[Node]
DataDir = "/data"

[Node.StateDB]
Host = "localhost"
Port = 5432

[Node.Executor]
URI = "localhost:50071"

[RPC]
Host = "0.0.0.0"
Port = 8545
WebSockets = true
WebSocketsPort = 8546
ReadTimeout = "60s"
WriteTimeout = "60s"
MaxRequestsPerIPAndSecond = 500

[Metrics]
Host = "0.0.0.0"
Port = 9091
Enabled = true

[Synchronizer]
SyncInterval = "1s"
SyncChunkSize = 100
`
func (a *polygonZkEVMAdapter) HealthCheck(ctx context.Context, rpcURL string) (SyncStatus, error) {
return evmHealthCheck(ctx, rpcURL)
}

func (a *polygonZkEVMAdapter) ContainerPorts(_ chainsv1alpha2.ChainInstanceSpec) []corev1.ContainerPort {
ports := evmPorts(30303)
return append(ports, corev1.ContainerPort{Name: "metrics", ContainerPort: 9091, Protocol: corev1.ProtocolTCP})
return append(ports, corev1.ContainerPort{Name: "metrics", ContainerPort: 6061, Protocol: corev1.ProtocolTCP})
}

// ContainerEnv injects the L1_RPC_URL environment variable required by the zkEVM node.
func (a *polygonZkEVMAdapter) ContainerEnv(_ chainsv1alpha2.ChainInstanceSpec) []corev1.EnvVar {
return []corev1.EnvVar{
{Name: "L1_RPC_URL", Value: defaultPolygonZkEVML1URL},
func (a *polygonZkEVMAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "ghcr.io",
Repository: "0xpolygon/cdk-erigon",
TagPattern: `^v\d+\.\d+\.\d+$`,
}
}

func (a *polygonZkEVMAdapter) DefaultResources() ResourceDefaults {
return ResourceDefaults{
CPURequest: resource.MustParse("4"),
MemoryRequest: resource.MustParse("8Gi"),
Storage: resource.MustParse("500Gi"),
CPURequest: resource.MustParse("8"),
MemoryRequest: resource.MustParse("16Gi"),
Storage: resource.MustParse("2Ti"),
}
}

func (a *polygonZkEVMAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "0xpolygonhermez/zkevm-node",
TagPattern: `^v\d+\.\d+\.\d+$`,
}
}
// --------------------------------------------------------------------------
// Config
// --------------------------------------------------------------------------

// polygonZkEVMConfig is the cdk-erigon hermez-mainnet RPC node config. The L1
// contract addresses, sequencer RPC and datastreamer endpoint are the canonical
// Polygon zkEVM mainnet values; zkevm.l1-rpc-url is injected via ContainerArgs.
const polygonZkEVMConfig = `# Polygon zkEVM mainnet node (cdk-erigon, hermez-mainnet)
datadir: /data
chain: hermez-mainnet

http: true
http.addr: 0.0.0.0
http.port: 8545
http.api: [eth, debug, net, trace, web3, erigon, zkevm]
http.vhosts: any
http.corsdomain: any
ws: true

private.api.addr: localhost:9091
metrics: true
metrics.addr: 0.0.0.0
metrics.port: 6061

externalcl: true

zkevm.l2-chain-id: 1101
zkevm.l2-sequencer-rpc-url: https://zkevm-rpc.com
zkevm.l2-datastreamer-url: stream.zkevm-rpc.com:6900
zkevm.l1-chain-id: 1
zkevm.l1-rollup-id: 1
zkevm.address-sequencer: "0x148Ee7dAF16574cD020aFa34CC658f8F3fbd2800"
zkevm.address-zkevm: "0x519E42c24163192Dca44CD3fBDCEBF6be9130987"
zkevm.address-rollup: "0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2"
zkevm.address-ger-manager: "0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb"
zkevm.l1-block-range: 20000
zkevm.l1-query-delay: 6000
zkevm.l1-first-block: 16896700
zkevm.default-gas-price: 1000000000
zkevm.max-gas-price: 0
zkevm.gas-price-factor: 0.0375
`
4 changes: 2 additions & 2 deletions internal/adapters/sei.go
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ func (a *seiAdapter) DefaultResources() ResourceDefaults {

func (a *seiAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "seiprotocol/seid",
Registry: "ghcr.io",
Repository: "sei-protocol/sei",
TagPattern: `^v\d+\.\d+\.\d+$`,
}
}
2 changes: 1 addition & 1 deletion internal/adapters/solana.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func (a *solanaAdapter) DefaultResources() ResourceDefaults {
func (a *solanaAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "solanalabs/agave",
Repository: "anzaxyz/agave",
TagPattern: `^v\d+\.\d+\.\d+$`,
}
}
Expand Down
4 changes: 2 additions & 2 deletions internal/adapters/taiko.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ func (a *taikoAdapter) DefaultResources() ResourceDefaults {

func (a *taikoAdapter) VersionPolicy() ChainVersionPolicy {
return ChainVersionPolicy{
Registry: "docker.io",
Repository: "taikoxyz/taiko-geth",
Registry: "us-docker.pkg.dev",
Repository: "evmchain/images/taiko-geth",
TagPattern: `^v\d+\.\d+\.\d+$`,
}
}
Expand Down
24 changes: 12 additions & 12 deletions internal/adapters/versions_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading