diff --git a/kubernetes/devnet-1/beacon-metrics-gazer/.helmignore b/kubernetes/devnet-1/beacon-metrics-gazer/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/beacon-metrics-gazer/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/beacon-metrics-gazer/Chart.lock b/kubernetes/devnet-1/beacon-metrics-gazer/Chart.lock new file mode 100644 index 0000000..83fe96a --- /dev/null +++ b/kubernetes/devnet-1/beacon-metrics-gazer/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: beacon-metrics-gazer + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.3 +digest: sha256:25670c466402ba0216633aa1bea24a43329fac709a6c633bba91c5663620c2cc +generated: "2024-06-25T14:38:42.585078+02:00" diff --git a/kubernetes/devnet-1/beacon-metrics-gazer/Chart.yaml b/kubernetes/devnet-1/beacon-metrics-gazer/Chart.yaml new file mode 100644 index 0000000..fb157ee --- /dev/null +++ b/kubernetes/devnet-1/beacon-metrics-gazer/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: beacon-metrics-gazer +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: beacon-metrics-gazer + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.3 diff --git a/kubernetes/devnet-1/beacon-metrics-gazer/charts/beacon-metrics-gazer-0.1.3.tgz b/kubernetes/devnet-1/beacon-metrics-gazer/charts/beacon-metrics-gazer-0.1.3.tgz new file mode 100644 index 0000000..8a5ac29 Binary files /dev/null and b/kubernetes/devnet-1/beacon-metrics-gazer/charts/beacon-metrics-gazer-0.1.3.tgz differ diff --git a/kubernetes/devnet-1/beacon-metrics-gazer/values.yaml b/kubernetes/devnet-1/beacon-metrics-gazer/values.yaml new file mode 100644 index 0000000..a663aa7 --- /dev/null +++ b/kubernetes/devnet-1/beacon-metrics-gazer/values.yaml @@ -0,0 +1,57 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/beacon-metrics-gazer.yaml.j2 + +beacon-metrics-gazer: + image: + repository: dapplion/beacon-metrics-gazer + tag: latest + pullPolicy: Always + fullnameOverride: beacon-metrics-gazer + resources: + requests: + cpu: 68m + memory: 128Mi + limits: + cpu: 128m + memory: 256Mi + + serviceMonitor: + enabled: true + labels: + vmagent: common + network: "peerdas-devnet-1" + + customCommand: + - /beacon-metrics-gazer + - http://teku-geth-001:5052 + - --ranges-file + - /custom-config/ranges.yaml + - --port + - "8080" + - --address + - "0.0.0.0" + + extraVolumes: + - name: custom-config + emptyDir: {} + extraVolumeMounts: + - name: custom-config + mountPath: "/custom-config" + + initContainers: + - name: init-config + image: alpine:latest + imagePullPolicy: IfNotPresent + securityContext: + runAsNonRoot: false + runAsUser: 0 + command: + - sh + - -ace + - > + apk update && apk add curl yq; + curl -s https://config.peerdas-devnet-1.ethpandaops.io/api/v1/nodes/validator-ranges | yq '.ranges' -P > /custom-config/ranges.yaml; + echo "====== init done ======"; + cat /custom-config/ranges.yaml; + volumeMounts: + - name: custom-config + mountPath: "/custom-config" diff --git a/kubernetes/devnet-1/blockscout/.helmignore b/kubernetes/devnet-1/blockscout/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/blockscout/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/blockscout/Chart.lock b/kubernetes/devnet-1/blockscout/Chart.lock new file mode 100644 index 0000000..e1c84cd --- /dev/null +++ b/kubernetes/devnet-1/blockscout/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: blockscout + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.2.1 +digest: sha256:85a3bfc3aa5db7beb16b64e3600cb99029de7f87137203324f26740b7c18468e +generated: "2024-06-25T14:39:21.121321+02:00" diff --git a/kubernetes/devnet-1/blockscout/Chart.yaml b/kubernetes/devnet-1/blockscout/Chart.yaml new file mode 100644 index 0000000..9a54bbd --- /dev/null +++ b/kubernetes/devnet-1/blockscout/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: blockscout +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: blockscout + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.2.1 diff --git a/kubernetes/devnet-1/blockscout/charts/blockscout-0.2.1.tgz b/kubernetes/devnet-1/blockscout/charts/blockscout-0.2.1.tgz new file mode 100644 index 0000000..c6d005d Binary files /dev/null and b/kubernetes/devnet-1/blockscout/charts/blockscout-0.2.1.tgz differ diff --git a/kubernetes/devnet-1/blockscout/values.yaml b/kubernetes/devnet-1/blockscout/values.yaml new file mode 100644 index 0000000..43cd003 --- /dev/null +++ b/kubernetes/devnet-1/blockscout/values.yaml @@ -0,0 +1,82 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/blockscout.yaml.j2 + +blockscout: + fullnameOverride: blockscout + + image: + repository: blockscout/blockscout + tag: master + pullPolicy: IfNotPresent + podAnnotations: + "promtail.io/ignore_pod": "true" + resources: + requests: + cpu: 2000m + memory: 2Gi + limits: + cpu: 2000m + memory: 6Gi + + ingress: + enabled: true + className: ingress-nginx-public + hosts: + - host: explorer.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + + config: + COIN: ETH + DATABASE_URL: postgres://postgres:postgres@blockscout-postgresql:5432/blockscout?ssl=false + DISABLE_EXCHANGE_RATES: "true" + DISABLE_KNOWN_TOKENS: "true" + SHOW_PRICE_CHART: "false" + ENABLE_1559_SUPPORT: "true" + DISABLE_READ_API: "false" + DISABLE_WRITE_API: "true" + ENABLE_TXS_STATS: "true" + ECTO_USE_SSL: "false" + SHOW_TXS_CHART: "true" + ETHEREUM_JSONRPC_VARIANT: "geth" + ETHEREUM_JSONRPC_HTTP_URL: http://geth-teku-001:8545 + ETHEREUM_JSONRPC_WS_URL: ws://geth-teku-001:8546 + ETHEREUM_JSONRPC_TRACE_URL: http://geth-teku-001:8545 + INDEXER_COIN_BALANCES_BATCH_SIZE: "5" + NETWORK: Ethereum + SUBNETWORK: peerdas-devnet-1 + BLOCK_TRANSFORMER: base + POOL_SIZE: "15" + CHAIN_SPEC_PATH: /config-update/chainspec.json + extraVolumes: + - name: config-update + emptyDir: {} + + extraVolumeMounts: + - name: config-update + mountPath: "/config-update" + + initContainers: + - name: init-config + image: alpine:latest + imagePullPolicy: IfNotPresent + securityContext: + runAsNonRoot: false + runAsUser: 0 + command: + - sh + - -ace + - > + CHAINSPEC=https://config.peerdas-devnet-1.ethpandaops.io/el/chainspec.json; + mkdir -p /config-update; + wget -O /config-update/chainspec.json $CHAINSPEC; + echo "got genesis"; + volumeMounts: + - name: config-update + mountPath: /config-update + + serviceMonitor: + enabled: true + + postgresql: + fullnameOverride: blockscout-postgresql diff --git a/kubernetes/devnet-1/checkpointz/.helmignore b/kubernetes/devnet-1/checkpointz/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/checkpointz/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/checkpointz/Chart.lock b/kubernetes/devnet-1/checkpointz/Chart.lock new file mode 100644 index 0000000..99bf998 --- /dev/null +++ b/kubernetes/devnet-1/checkpointz/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: checkpointz + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.3 +digest: sha256:9eceb3eb5bb940e21ad6256c1258227069c421ccb29cae6c09005783826cece4 +generated: "2024-06-25T14:39:36.275589+02:00" diff --git a/kubernetes/devnet-1/checkpointz/Chart.yaml b/kubernetes/devnet-1/checkpointz/Chart.yaml new file mode 100644 index 0000000..c32fc11 --- /dev/null +++ b/kubernetes/devnet-1/checkpointz/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: checkpointz +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: checkpointz + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.3 diff --git a/kubernetes/devnet-1/checkpointz/charts/checkpointz-0.1.3.tgz b/kubernetes/devnet-1/checkpointz/charts/checkpointz-0.1.3.tgz new file mode 100644 index 0000000..9c112a2 Binary files /dev/null and b/kubernetes/devnet-1/checkpointz/charts/checkpointz-0.1.3.tgz differ diff --git a/kubernetes/devnet-1/checkpointz/values.yaml b/kubernetes/devnet-1/checkpointz/values.yaml new file mode 100644 index 0000000..bf3623d --- /dev/null +++ b/kubernetes/devnet-1/checkpointz/values.yaml @@ -0,0 +1,80 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/checkpointz.yaml.j2 + +checkpointz: + fullnameOverride: checkpointz + replicas: 1 + + image: + repository: ethpandaops/checkpointz + tag: latest + pullPolicy: Always + resources: + requests: + cpu: 64m + memory: 256Mi + ingress: + enabled: true + className: ingress-nginx-public + annotations: + cert-manager.io/cluster-issuer: letsencrypt-production + hosts: + - host: checkpoint-sync.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + + tls: + - hosts: + - checkpoint-sync.peerdas-devnet-1.ethpandaops.io + secretName: peerdas-devnet-1-checkpoint-sync-tls + + config: + global: + listenAddr: ":5555" + logging: "info" # panic,fatal,warm,info,debug,trace + metricsAddr: ":9090" + + checkpointz: + mode: full + caches: + blocks: + max_items: 100 + states: + max_items: 5 + historical_epoch_count: 20 + + beacon: + upstreams: + - name: rpc-teku-geth-001 + address: http://teku-geth-001:5052 + dataProvider: true + - name: bootnode-1 + address: https://@bn.bootnode-1.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: lighthouse-geth-1 + address: https://@bn.lighthouse-geth-1.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: lighthouse-geth-2 + address: https://@bn.lighthouse-geth-2.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: lighthouse-geth-3 + address: https://@bn.lighthouse-geth-3.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: prysm-geth-1 + address: https://@bn.prysm-geth-1.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: prysm-geth-2 + address: https://@bn.prysm-geth-2.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: prysm-geth-3 + address: https://@bn.prysm-geth-3.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: teku-geth-1 + address: https://@bn.teku-geth-1.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: teku-geth-2 + address: https://@bn.teku-geth-2.peerdas-devnet-1.ethpandaops.io + dataProvider: true + - name: teku-geth-3 + address: https://@bn.teku-geth-3.peerdas-devnet-1.ethpandaops.io + dataProvider: true diff --git a/kubernetes/devnet-1/config/templates/ingress.config.yaml b/kubernetes/devnet-1/config/templates/ingress.config.yaml new file mode 100644 index 0000000..f1ffebf --- /dev/null +++ b/kubernetes/devnet-1/config/templates/ingress.config.yaml @@ -0,0 +1,43 @@ +{{- if .Values.config.enabled }} +{{- $uniqueUpstreams := dict }} +{{- range .Values.config.files }} +{{- $uniqueUpstreams = set $uniqueUpstreams .upstream "" }} +{{- end }} + +{{- range keys $uniqueUpstreams }} +--- +kind: Service +apiVersion: v1 +metadata: + name: external-{{ . | replace "." "-" | lower | trunc 63 }} +spec: + type: ExternalName + externalName: {{ . }} +{{- end }} + +{{- range .Values.config.files }} +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-config-{{ .path | replace "/" "-" | replace "." "-" | replace "_" "-" | lower }} + annotations: + kubernetes.io/ingress.class: ingress-nginx-public + nginx.ingress.kubernetes.io/ssl-redirect: "true" + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" + nginx.ingress.kubernetes.io/upstream-vhost: "{{ .upstream }}" + nginx.ingress.kubernetes.io/rewrite-target: "{{ .target }}" +spec: + rules: + - host: "config.{{ $.Values.domain }}" + http: + paths: + - path: {{ .path }} + pathType: Exact + backend: + service: + name: external-{{ .upstream | replace "." "-" | lower | trunc 63 }} + port: + number: 443 +{{- end }} +{{- end }} diff --git a/kubernetes/devnet-1/config/values.yaml b/kubernetes/devnet-1/config/values.yaml new file mode 100644 index 0000000..ba64be3 --- /dev/null +++ b/kubernetes/devnet-1/config/values.yaml @@ -0,0 +1,83 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/config.yaml.j2 + +network: devnet-1 +chainId: 7068553372 + +domain: peerdas-devnet-1.ethpandaops.io + +config: + enabled: true + files: + # Support all files as they appear in the github repo + - path: /metadata/besu.json + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/besu.json + - path: /metadata/bootstrap_nodes.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/bootstrap_nodes.txt + - path: /metadata/chainspec.json + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/chainspec.json + - path: /metadata/config.yaml + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/config.yaml + - path: /metadata/deposit_contract.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/deposit_contract.txt + - path: /metadata/deposit_contract_block.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/deposit_contract_block.txt + - path: /metadata/deposit_contract_block_hash.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/deposit_contract_block_hash.txt + - path: /metadata/genesis.json + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/genesis.json + - path: /metadata/genesis.ssz + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/genesis.ssz + - path: /parsed/parsedConsensusGenesis.json + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/parsed/parsedConsensusGenesis.json + + # Execution Layer specific redirects + - path: /el/enodes.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/enodes.txt + - path: /el/besu.json + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/besu.json + - path: /el/chainspec.json + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/chainspec.json + - path: /el/genesis.json + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/genesis.json + + # Consensus Layer specific redirects + - path: /cl/bootstrap_nodes.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/bootstrap_nodes.txt + - path: /cl/config.yaml + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/config.yaml + - path: /cl/genesis.ssz + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/genesis.ssz + - path: /cl/deposit_contract.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/deposit_contract.txt + - path: /cl/deposit_contract_block.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/deposit_contract_block.txt + - path: /cl/deposit_contract_block_hash.txt + upstream: raw.githubusercontent.com + target: /ethpandaops/peerdas-devnets/master/network-configs/devnet-1/metadata/deposit_contract_block_hash.txt + + # Ansible generated ethereum nodes inventory + - path: /api/v1/nodes/inventory + upstream: bootnode-1.peerdas-devnet-1.ethpandaops.io + target: /meta/api/v1/inventory.json + - path: /api/v1/nodes/validator-ranges + upstream: bootnode-1.peerdas-devnet-1.ethpandaops.io + target: /meta/api/v1/validator-ranges.json diff --git a/kubernetes/devnet-1/dora/.helmignore b/kubernetes/devnet-1/dora/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/dora/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/dora/Chart.lock b/kubernetes/devnet-1/dora/Chart.lock new file mode 100644 index 0000000..8987561 --- /dev/null +++ b/kubernetes/devnet-1/dora/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: dora + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.0.5 +digest: sha256:2f2ca664ede6ae575f7eafc397d87ec94693728b295f22464005a5f274748d97 +generated: "2024-06-25T14:40:51.599572+02:00" diff --git a/kubernetes/devnet-1/dora/Chart.yaml b/kubernetes/devnet-1/dora/Chart.yaml new file mode 100644 index 0000000..319b67a --- /dev/null +++ b/kubernetes/devnet-1/dora/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: dora +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: dora + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.0.5 diff --git a/kubernetes/devnet-1/dora/charts/dora-0.0.5.tgz b/kubernetes/devnet-1/dora/charts/dora-0.0.5.tgz new file mode 100644 index 0000000..7608cfe Binary files /dev/null and b/kubernetes/devnet-1/dora/charts/dora-0.0.5.tgz differ diff --git a/kubernetes/devnet-1/dora/values.yaml b/kubernetes/devnet-1/dora/values.yaml new file mode 100644 index 0000000..51e779f --- /dev/null +++ b/kubernetes/devnet-1/dora/values.yaml @@ -0,0 +1,121 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/dora.yaml.j2 + +dora: + fullnameOverride: dora + image: + repository: ethpandaops/dora + tag: peer-das-latest + pullPolicy: Always + resources: + requests: + cpu: 500m + memory: 1Gi + limits: + cpu: 1000m + memory: 2Gi + ingress: + enabled: true + className: ingress-nginx-public + hosts: + - host: dora.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + + name: peerdas-devnet-1 + configPath: "https://config.peerdas-devnet-1.ethpandaops.io/cl/config.yaml" + validatorNamesInventory: "https://config.peerdas-devnet-1.ethpandaops.io/api/v1/nodes/validator-ranges" + proxyCount: 2 + extraEnv: + - name: FRONTEND_PPROF + value: "true" + + postgresql: + name: "dora-postgresql" + fullnameOverride: "dora-postgresql" + + endpoints: + # Rpc + - url: http://teku-geth-001:5052 + name: rpc-teku-geth-001 + archive: true + priority: 1 + - url: https://@bn.bootnode-1.peerdas-devnet-1.ethpandaops.io + name: bootnode-1 + priority: -1 + - url: https://@bn.lighthouse-geth-1.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-1 + priority: -1 + archive: true + - url: https://@bn.lighthouse-geth-2.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-2 + priority: -1 + archive: true + - url: https://@bn.lighthouse-geth-3.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-3 + priority: -1 + archive: true + - url: https://@bn.prysm-geth-1.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-1 + priority: -1 + - url: https://@bn.prysm-geth-2.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-2 + priority: -1 + - url: https://@bn.prysm-geth-3.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-3 + priority: -1 + - url: https://@bn.teku-geth-1.peerdas-devnet-1.ethpandaops.io + name: teku-geth-1 + priority: -1 + - url: https://@bn.teku-geth-2.peerdas-devnet-1.ethpandaops.io + name: teku-geth-2 + priority: -1 + - url: https://@bn.teku-geth-3.peerdas-devnet-1.ethpandaops.io + name: teku-geth-3 + priority: -1 + executionEndpoints: + # Rpc + - url: http://geth-teku-001:8545 + name: rpc-teku-geth-001 + archive: true + priority: 1 + - url: https://@rpc.bootnode-1.peerdas-devnet-1.ethpandaops.io + name: bootnode-1 + priority: -1 + archive: false + - url: https://@rpc.lighthouse-geth-1.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-1 + priority: -1 + archive: false + - url: https://@rpc.lighthouse-geth-2.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-2 + priority: -1 + archive: false + - url: https://@rpc.lighthouse-geth-3.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-3 + priority: -1 + archive: false + - url: https://@rpc.prysm-geth-1.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-1 + priority: -1 + archive: false + - url: https://@rpc.prysm-geth-2.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-2 + priority: -1 + archive: false + - url: https://@rpc.prysm-geth-3.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-3 + priority: -1 + archive: false + - url: https://@rpc.teku-geth-1.peerdas-devnet-1.ethpandaops.io + name: teku-geth-1 + priority: -1 + archive: false + - url: https://@rpc.teku-geth-2.peerdas-devnet-1.ethpandaops.io + name: teku-geth-2 + priority: -1 + archive: false + - url: https://@rpc.teku-geth-3.peerdas-devnet-1.ethpandaops.io + name: teku-geth-3 + priority: -1 + archive: false diff --git a/kubernetes/devnet-1/dugtrio/.helmignore b/kubernetes/devnet-1/dugtrio/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/dugtrio/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/dugtrio/Chart.lock b/kubernetes/devnet-1/dugtrio/Chart.lock new file mode 100644 index 0000000..49352e0 --- /dev/null +++ b/kubernetes/devnet-1/dugtrio/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: dugtrio + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.0.3 +digest: sha256:8ac5bfbb6a47ca2e6130e0e5dbfe4f9ede8a1dd07ab655027654d728b7bf4f8e +generated: "2024-06-25T14:39:50.969423+02:00" diff --git a/kubernetes/devnet-1/dugtrio/Chart.yaml b/kubernetes/devnet-1/dugtrio/Chart.yaml new file mode 100644 index 0000000..9f27bfa --- /dev/null +++ b/kubernetes/devnet-1/dugtrio/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: dugtrio +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: dugtrio + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.0.3 diff --git a/kubernetes/devnet-1/dugtrio/charts/dugtrio-0.0.3.tgz b/kubernetes/devnet-1/dugtrio/charts/dugtrio-0.0.3.tgz new file mode 100644 index 0000000..6bada42 Binary files /dev/null and b/kubernetes/devnet-1/dugtrio/charts/dugtrio-0.0.3.tgz differ diff --git a/kubernetes/devnet-1/dugtrio/values.yaml b/kubernetes/devnet-1/dugtrio/values.yaml new file mode 100644 index 0000000..7182e1a --- /dev/null +++ b/kubernetes/devnet-1/dugtrio/values.yaml @@ -0,0 +1,53 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/dugtrio.yaml.j2 + +dugtrio: + fullnameOverride: dugtrio + image: + repository: ethpandaops/dugtrio + tag: latest + pullPolicy: Always + resources: + requests: + cpu: 100m + memory: 200Mi + limits: + cpu: 500m + memory: 1Gi + ingress: + enabled: true + className: ingress-nginx-public + hosts: + - host: beacon.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + + dugtrioFrontendTitle: "Dugtrio: peerdas-devnet-1" + dugtrioProxyCount: 2 + dugtrioProxyBlockedPaths: + - "^/teku/v[0-9]+/admin/.*" + + endpoints: + # Rpc + - url: http://teku-geth-001:5052 + name: rpc-teku-geth-001 + - url: https://@bn.bootnode-1.peerdas-devnet-1.ethpandaops.io + name: bootnode-1 + - url: https://@bn.lighthouse-geth-1.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-1 + - url: https://@bn.lighthouse-geth-2.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-2 + - url: https://@bn.lighthouse-geth-3.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-3 + - url: https://@bn.prysm-geth-1.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-1 + - url: https://@bn.prysm-geth-2.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-2 + - url: https://@bn.prysm-geth-3.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-3 + - url: https://@bn.teku-geth-1.peerdas-devnet-1.ethpandaops.io + name: teku-geth-1 + - url: https://@bn.teku-geth-2.peerdas-devnet-1.ethpandaops.io + name: teku-geth-2 + - url: https://@bn.teku-geth-3.peerdas-devnet-1.ethpandaops.io + name: teku-geth-3 diff --git a/kubernetes/devnet-1/ethstats/.helmignore b/kubernetes/devnet-1/ethstats/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/ethstats/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/ethstats/Chart.lock b/kubernetes/devnet-1/ethstats/Chart.lock new file mode 100644 index 0000000..1e5a386 --- /dev/null +++ b/kubernetes/devnet-1/ethstats/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: ethstats + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.4 +digest: sha256:06e814194091d86da856ff74b04c0a95111db59b8f42fbcf1b637f089df94e7f +generated: "2024-06-25T14:40:06.419498+02:00" diff --git a/kubernetes/devnet-1/ethstats/Chart.yaml b/kubernetes/devnet-1/ethstats/Chart.yaml new file mode 100644 index 0000000..779017b --- /dev/null +++ b/kubernetes/devnet-1/ethstats/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: ethstats +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: ethstats + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.4 diff --git a/kubernetes/devnet-1/ethstats/charts/ethstats-0.1.4.tgz b/kubernetes/devnet-1/ethstats/charts/ethstats-0.1.4.tgz new file mode 100644 index 0000000..4f34d7c Binary files /dev/null and b/kubernetes/devnet-1/ethstats/charts/ethstats-0.1.4.tgz differ diff --git a/kubernetes/devnet-1/ethstats/values.yaml b/kubernetes/devnet-1/ethstats/values.yaml new file mode 100644 index 0000000..9535de4 --- /dev/null +++ b/kubernetes/devnet-1/ethstats/values.yaml @@ -0,0 +1,30 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/ethstats.yaml.j2 + +ethstats: + fullnameOverride: ethstats + + image: + repository: skylenet/ethstats-server + tag: poa-no-geoip + pullPolicy: IfNotPresent + ingress: + enabled: true + + className: ingress-nginx-public + + hosts: + - host: ethstats.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + + secretEnv: + WS_SECRET: "" + + resources: + requests: + memory: 256Mi + cpu: 100m + limits: + memory: 512Mi + cpu: 200m diff --git a/kubernetes/devnet-1/faucet/.helmignore b/kubernetes/devnet-1/faucet/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/faucet/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/faucet/Chart.lock b/kubernetes/devnet-1/faucet/Chart.lock new file mode 100644 index 0000000..2db4052 --- /dev/null +++ b/kubernetes/devnet-1/faucet/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: powfaucet + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.0.4 +digest: sha256:f75bbcfb558f64196ea3441a6fe832f04111be02e97a8ebf25ed72acf79e5fec +generated: "2024-06-25T14:40:21.244008+02:00" diff --git a/kubernetes/devnet-1/faucet/Chart.yaml b/kubernetes/devnet-1/faucet/Chart.yaml new file mode 100644 index 0000000..cc63fd5 --- /dev/null +++ b/kubernetes/devnet-1/faucet/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: faucet +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: powfaucet + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.0.4 diff --git a/kubernetes/devnet-1/faucet/charts/powfaucet-0.0.4.tgz b/kubernetes/devnet-1/faucet/charts/powfaucet-0.0.4.tgz new file mode 100644 index 0000000..a7432c6 Binary files /dev/null and b/kubernetes/devnet-1/faucet/charts/powfaucet-0.0.4.tgz differ diff --git a/kubernetes/devnet-1/faucet/values.yaml b/kubernetes/devnet-1/faucet/values.yaml new file mode 100644 index 0000000..0571767 --- /dev/null +++ b/kubernetes/devnet-1/faucet/values.yaml @@ -0,0 +1,43 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/powfaucet.yaml.j2 + +powfaucet: + fullnameOverride: powfaucet + + image: + repository: pk910/powfaucet + tag: v2-stable + pullPolicy: IfNotPresent + + resources: + requests: + cpu: 200m + memory: 500Mi + limits: + cpu: 400m + memory: 1Gi + + ingress: + enabled: true + + className: ingress-nginx-public + + hosts: + - host: faucet.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + httpProxyCount: 2 + + faucetTitle: "peerdas-devnet-1 PoW Faucet" + faucetPrivkey: "" + faucetRpcUrl: "http://geth-teku-001:8545" + faucetExplorerLink: "https://explorer.peerdas-devnet-1.ethpandaops.io/tx/{txid}" + faucetTxGasLimit: 100000 + + faucetCaptchaEnabled: true + faucetCaptchaSitekey: "" + faucetCaptchaSecret: "" + + faucetRecurringLimitsAmountWei: 500000000000000000000 # 500 ETH + faucetPowEnabled: true + faucetPowRewardPerHash: 1000000000000000000 # 1 ETH diff --git a/kubernetes/devnet-1/forkmon/.helmignore b/kubernetes/devnet-1/forkmon/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/forkmon/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/forkmon/Chart.lock b/kubernetes/devnet-1/forkmon/Chart.lock new file mode 100644 index 0000000..31f8d6e --- /dev/null +++ b/kubernetes/devnet-1/forkmon/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: forkmon + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.4 +digest: sha256:1329932bcb3000051312b91c65ad3dd0f7342fa8498e39924bf787c3cf8a3c2a +generated: "2024-06-25T14:40:35.97737+02:00" diff --git a/kubernetes/devnet-1/forkmon/Chart.yaml b/kubernetes/devnet-1/forkmon/Chart.yaml new file mode 100644 index 0000000..556e154 --- /dev/null +++ b/kubernetes/devnet-1/forkmon/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: forkmon +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: forkmon + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.4 diff --git a/kubernetes/devnet-1/forkmon/charts/forkmon-0.1.4.tgz b/kubernetes/devnet-1/forkmon/charts/forkmon-0.1.4.tgz new file mode 100644 index 0000000..962a822 Binary files /dev/null and b/kubernetes/devnet-1/forkmon/charts/forkmon-0.1.4.tgz differ diff --git a/kubernetes/devnet-1/forkmon/values.yaml b/kubernetes/devnet-1/forkmon/values.yaml new file mode 100644 index 0000000..bbbb3f5 --- /dev/null +++ b/kubernetes/devnet-1/forkmon/values.yaml @@ -0,0 +1,56 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/forkmon.yaml.j2 + +forkmon: + fullnameOverride: forkmon + image: + repository: skylenet/nodemonitor + tag: darkmode + pullPolicy: IfNotPresent + ingress: + enabled: true + className: ingress-nginx-public + hosts: + - host: forkmon.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + network: peerdas-devnet-1 + endpoints: + # Rpc + - addr: http://geth-teku-001:8545 + name: rpc-teku-geth-001 + - addr: https://@rpc.bootnode-1.peerdas-devnet-1.ethpandaops.io + name: bootnode-1 + - addr: https://@rpc.lighthouse-geth-1.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-1 + - addr: https://@rpc.lighthouse-geth-2.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-2 + - addr: https://@rpc.lighthouse-geth-3.peerdas-devnet-1.ethpandaops.io + name: lighthouse-geth-3 + - addr: https://@rpc.prysm-geth-1.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-1 + - addr: https://@rpc.prysm-geth-2.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-2 + - addr: https://@rpc.prysm-geth-3.peerdas-devnet-1.ethpandaops.io + name: prysm-geth-3 + - addr: https://@rpc.teku-geth-1.peerdas-devnet-1.ethpandaops.io + name: teku-geth-1 + - addr: https://@rpc.teku-geth-2.peerdas-devnet-1.ethpandaops.io + name: teku-geth-2 + - addr: https://@rpc.teku-geth-3.peerdas-devnet-1.ethpandaops.io + name: teku-geth-3 + + config: | + # How often to reload data from the nodes + reload_interval = "10s" + # If specified, a http server will serve static content here + server_address = "0.0.0.0:{{ .Values.httpPort}}" + # Shown in the document title, if specified + chain_name="{{ .Values.network }}" + # Local or non third party connection require rpc kind + {{- range .Values.endpoints }} + [[clients]] + url = {{ .addr | quote }} + name = {{ .name | quote }} + kind = "rpc" + {{- end }} diff --git a/kubernetes/devnet-1/forky/.helmignore b/kubernetes/devnet-1/forky/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/forky/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/forky/Chart.lock b/kubernetes/devnet-1/forky/Chart.lock new file mode 100644 index 0000000..3c9713d --- /dev/null +++ b/kubernetes/devnet-1/forky/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: forky + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.1 +digest: sha256:75f12a1b8e28d10c1cbb7b58095d323bbc8dc03474d2ecd715425f41c29ccf49 +generated: "2024-06-25T14:41:06.519099+02:00" diff --git a/kubernetes/devnet-1/forky/Chart.yaml b/kubernetes/devnet-1/forky/Chart.yaml new file mode 100644 index 0000000..7f33df8 --- /dev/null +++ b/kubernetes/devnet-1/forky/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: forky +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: forky + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.1 diff --git a/kubernetes/devnet-1/forky/charts/forky-0.1.1.tgz b/kubernetes/devnet-1/forky/charts/forky-0.1.1.tgz new file mode 100644 index 0000000..b58dd04 Binary files /dev/null and b/kubernetes/devnet-1/forky/charts/forky-0.1.1.tgz differ diff --git a/kubernetes/devnet-1/forky/values.yaml b/kubernetes/devnet-1/forky/values.yaml new file mode 100644 index 0000000..5710699 --- /dev/null +++ b/kubernetes/devnet-1/forky/values.yaml @@ -0,0 +1,63 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/forky.yaml.j2 + +forky: + fullnameOverride: forky + replicas: 1 + image: + repository: ethpandaops/forky + tag: latest + pullPolicy: Always + resources: + requests: + cpu: 256m + memory: 512Mi + ingress: + enabled: true + className: ingress-nginx-public + hosts: + - host: forky.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + config: + listen_addr: ":5555" + pprof_addr: ":6060" + log_level: "debug" + metrics: + addr: ":9090" + enabled: true + forky: + retention_period: "1m" + store: + type: memory + indexer: + dsn: "file::memory:?cache=shared" + driver_name: sqlite + ethereum: + network: + name: "peerdas-devnet-1" + spec: + seconds_per_slot: 12 + slots_per_epoch: 32 + genesis_time: 1719322036 + sources: + - name: bootnode-1 + type: "beacon_node" + config: + address: https://@bn.bootnode-1.peerdas-devnet-1.ethpandaops.io + polling_interval: "12s" + - name: lighthouse-geth-1 + type: "beacon_node" + config: + address: https://@bn.lighthouse-geth-1.peerdas-devnet-1.ethpandaops.io + polling_interval: "12s" + - name: prysm-geth-1 + type: "beacon_node" + config: + address: https://@bn.prysm-geth-1.peerdas-devnet-1.ethpandaops.io + polling_interval: "12s" + - name: teku-geth-1 + type: "beacon_node" + config: + address: https://@bn.teku-geth-1.peerdas-devnet-1.ethpandaops.io + polling_interval: "12s" diff --git a/kubernetes/devnet-1/homepage/.helmignore b/kubernetes/devnet-1/homepage/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/homepage/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/homepage/Chart.lock b/kubernetes/devnet-1/homepage/Chart.lock new file mode 100644 index 0000000..fa91c66 --- /dev/null +++ b/kubernetes/devnet-1/homepage/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: testnet-homepage + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.2.2 +digest: sha256:dbd8fd0c4812d6eaee2c3c7cbac8a9ada0800b1e63db46d724aabeaeb8a588a7 +generated: "2024-06-25T14:41:21.428507+02:00" diff --git a/kubernetes/devnet-1/homepage/Chart.yaml b/kubernetes/devnet-1/homepage/Chart.yaml new file mode 100644 index 0000000..308297e --- /dev/null +++ b/kubernetes/devnet-1/homepage/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: homepage +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: testnet-homepage + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.2.2 diff --git a/kubernetes/devnet-1/homepage/charts/testnet-homepage-0.2.2.tgz b/kubernetes/devnet-1/homepage/charts/testnet-homepage-0.2.2.tgz new file mode 100644 index 0000000..c2bc8db Binary files /dev/null and b/kubernetes/devnet-1/homepage/charts/testnet-homepage-0.2.2.tgz differ diff --git a/kubernetes/devnet-1/homepage/values.yaml b/kubernetes/devnet-1/homepage/values.yaml new file mode 100644 index 0000000..4f19644 --- /dev/null +++ b/kubernetes/devnet-1/homepage/values.yaml @@ -0,0 +1,151 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/testnet-homepage.yaml.j2 + +testnet-homepage: + fullnameOverride: homepage + + replicas: 1 + + image: + repository: ethpandaops/ethereum-testnet-homepage + tag: latest + pullPolicy: Always + resources: + requests: + cpu: 33m + memory: 64Mi + ingress: + enabled: true + + className: ingress-nginx-public + + hosts: + - host: peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + + customMarkdown: |- + ## Network Spec + https://notes.ethereum.org/@ethpandaops/peerdas-devnet-1 + + ## Ansible setup + https://github.com/ethpandaops/peerdas-devnets + + ## Client versions + https://github.com/ethpandaops/peerdas-devnets/blob/master/ansible/inventories/devnet-1/group_vars/all/images.yaml + + ## Validator ranges + - https://config.peerdas-devnet-1.ethpandaops.io/api/v1/nodes/validator-ranges + + Some examples: + ```sh + ## Pretty print in YAML format + curl -s https://config.peerdas-devnet-1.ethpandaops.io/api/v1/nodes/validator-ranges \ + | yq '.ranges' -P + ``` + + ## Ethereum node inventory + - https://config.peerdas-devnet-1.ethpandaops.io/api/v1/nodes/inventory + + Some examples on how to filter specific data from the node inventory: + ```sh + # Getting execution layer client enodes + curl -s https://config.peerdas-devnet-1.ethpandaops.io/api/v1/nodes/inventory \ + | jq -r '.ethereum_pairs[] | .execution.enode' + # Getting conseus layer client ENRs + curl -s https://config.peerdas-devnet-1.ethpandaops.io/api/v1/nodes/inventory \ + | jq -r '.ethereum_pairs[] | .consensus.enr' + ``` + + ## Genesis configuration + ### Execution layer clients + - https://config.peerdas-devnet-1.ethpandaops.io/el/genesis.json + - https://config.peerdas-devnet-1.ethpandaops.io/el/besu.json + - https://config.peerdas-devnet-1.ethpandaops.io/el/chainspec.json + + ### Consensus layer clients + - https://config.peerdas-devnet-1.ethpandaops.io/cl/config.yaml + - https://config.peerdas-devnet-1.ethpandaops.io/cl/genesis.ssz + - https://config.peerdas-devnet-1.ethpandaops.io/cl/deposit_contract.txt + - https://config.peerdas-devnet-1.ethpandaops.io/cl/deposit_contract_block.txt + - https://config.peerdas-devnet-1.ethpandaops.io/cl/deposit_contract_block_hash.txt + + + customArgs: + - -b + - https://peerdas-devnet-1.ethpandaops.io + + config: + baseURL: https://peerdas-devnet-1.ethpandaops.io + languageCode: en-us + title: peerdas-devnet-1 + theme: PaperMod + markup: + highlight: + codeFences: true + guessSyntax: true + lineNos: false + style: monokai + params: + disableThemeToggle: true + defaultTheme: dark + ethereum: + faucetUrl: https://faucet.peerdas-devnet-1.ethpandaops.io + rpcUrl: https://rpc.peerdas-devnet-1.ethpandaops.io + beaconRpcUrl: https://beacon.peerdas-devnet-1.ethpandaops.io + explorerUrl: https://explorer.peerdas-devnet-1.ethpandaops.io + forkmonUrl: https://forkmon.peerdas-devnet-1.ethpandaops.io + beaconexplorerUrl: "https://peerdas-devnet-1.beaconcha.in" + doraUrl: https://dora.peerdas-devnet-1.ethpandaops.io + checkpointSyncUrl: "https://checkpoint-sync.peerdas-devnet-1.ethpandaops.io" + blobscanUrl: https://blobscan.com + blobscanethpandaUrl: https://blobscan.peerdas-devnet-1.ethpandaops.io + ethstatsUrl: https://ethstats.peerdas-devnet-1.ethpandaops.io + chainName: "peerdas-devnet-1" + chainId: "7068553372" + github: https://github.com/ethpandaops/peerdas-devnets/tree/master/network-configs/devnet-1 + metamask: + enabled: true + logo: + enabled: false + url: https://i.imgur.com/M0gEdpw.png + assets: + favicon: https://i.imgur.com/M0gEdpw.png + favicon16x16: https://i.imgur.com/M0gEdpw.png + favicon32x32: https://i.imgur.com/M0gEdpw.png + apple_touch_icon: https://i.imgur.com/M0gEdpw.png + safari_pinned_tab: https://i.imgur.com/M0gEdpw.png + + links: + - name: "Devnet Spec" + dataLookup: github + - name: "JSON RPC" + dataLookup: rpcUrl + - name: "Beacon RPC" + dataLookup: beaconRpcUrl + - name: "Explorer" + dataLookup: explorerUrl + - name: "Dora the Explorer" + dataLookup: doraUrl + - name: "Beaconchain explorer" + dataLookup: "beaconexplorerUrl" + # - name: "Blobscan" + # dataLookup: blobscanUrl + # - name: "Blobscan ethpanda edition" + # dataLookup: blobscanethpandaUrl + - name: "Checkpoint Sync" + dataLookup: checkpointSyncUrl + - name: "Faucet" + dataLookup: faucetUrl + - name: "Forkmon" + dataLookup: forkmonUrl + - name: "Ethstats" + dataLookup: ethstatsUrl + menu: + main: + - identifier: ethereum-website + name: ethereum.org + url: https://ethereum.org + weight: 30 + disableKinds: ["taxonomy", "taxonomyTerm"] + copyright: "Long live the surge" diff --git a/kubernetes/devnet-1/rpc/.helmignore b/kubernetes/devnet-1/rpc/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/rpc/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/rpc/Chart.lock b/kubernetes/devnet-1/rpc/Chart.lock new file mode 100644 index 0000000..ade8b97 --- /dev/null +++ b/kubernetes/devnet-1/rpc/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: rpc-proxy + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.2 +digest: sha256:1645b46b3785449cfbe30e595367bd6b3a57d1e8a41575319c47437c0362a41b +generated: "2024-06-25T14:41:36.323181+02:00" diff --git a/kubernetes/devnet-1/rpc/Chart.yaml b/kubernetes/devnet-1/rpc/Chart.yaml new file mode 100644 index 0000000..3d50821 --- /dev/null +++ b/kubernetes/devnet-1/rpc/Chart.yaml @@ -0,0 +1,11 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: rpc +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: rpc-proxy + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.1.2 diff --git a/kubernetes/devnet-1/rpc/charts/rpc-proxy-0.1.2.tgz b/kubernetes/devnet-1/rpc/charts/rpc-proxy-0.1.2.tgz new file mode 100644 index 0000000..72defce Binary files /dev/null and b/kubernetes/devnet-1/rpc/charts/rpc-proxy-0.1.2.tgz differ diff --git a/kubernetes/devnet-1/rpc/values.yaml b/kubernetes/devnet-1/rpc/values.yaml new file mode 100644 index 0000000..d2a44db --- /dev/null +++ b/kubernetes/devnet-1/rpc/values.yaml @@ -0,0 +1,70 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/rpc-proxy.yaml.j2 + +rpc-proxy: + fullnameOverride: rpc-proxy + + replicas: 2 + + resources: + requests: + cpu: 32m + memory: 64Mi + ingress: + enabled: true + + annotations: + nginx.ingress.kubernetes.io/enable-cors: "true" + + className: ingress-nginx-public + + hosts: + - host: rpc.peerdas-devnet-1.ethpandaops.io + paths: + - path: / + pathType: Prefix + + args: + - --url=http://geth-teku-001:8545 + - --wsurl=ws://geth-teku-001:8546 + - --rpm=10000 + + config: | + Allow = [ + "eth_blockNumber", + "eth_call", + "eth_chainId", + "eth_estimateGas", + "eth_feeHistory", + "eth_gasPrice", + "eth_getBalance", + "eth_getBlockByHash", + "eth_getBlockByNumber", + "eth_getBlockReceipts", + "eth_getBlockTransactionCountByHash", + "eth_getBlockTransactionCountByNumber", + "eth_getCode", + "eth_getFilterChanges", + "eth_getLogs", + "eth_getStorageAt", + "eth_getTransactionByBlockHashAndIndex", + "eth_getTransactionByBlockNumberAndIndex", + "eth_getTransactionByHash", + "eth_getTransactionCount", + "eth_getTransactionReceipt", + "eth_newBlockFilter", + "eth_newPendingTransactionFilter", + "eth_maxPriorityFeePerGas", + "eth_sendRawTransaction", + "eth_subscribe", + "eth_syncing", + "eth_uninstallFilter", + "eth_unsubscribe", + "net_listening", + "net_version", + "rpc_modules", + "web3_clientVersion", + "debug_getRawReceipts", + "debug_traceBlock", + "trace_transaction", + "trace_block", + ] diff --git a/kubernetes/devnet-1/teku-geth-001/.helmignore b/kubernetes/devnet-1/teku-geth-001/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/kubernetes/devnet-1/teku-geth-001/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/kubernetes/devnet-1/teku-geth-001/Chart.lock b/kubernetes/devnet-1/teku-geth-001/Chart.lock new file mode 100644 index 0000000..2e7d5d6 --- /dev/null +++ b/kubernetes/devnet-1/teku-geth-001/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: ethereum-node + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.0.7 +digest: sha256:24c8f01fc5c5d99adf5200d1d8d13d48753817bf0f7ecf24955246a067fc4f6d +generated: "2024-06-25T14:41:50.728098+02:00" diff --git a/kubernetes/devnet-1/teku-geth-001/Chart.yaml b/kubernetes/devnet-1/teku-geth-001/Chart.yaml new file mode 100644 index 0000000..be887ca --- /dev/null +++ b/kubernetes/devnet-1/teku-geth-001/Chart.yaml @@ -0,0 +1,12 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2 + +apiVersion: v2 +name: teku-geth-001 +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - alias: teku-geth-001 + name: ethereum-node + repository: https://ethpandaops.github.io/ethereum-helm-charts + version: 0.0.7 diff --git a/kubernetes/devnet-1/teku-geth-001/charts/ethereum-node-0.0.7.tgz b/kubernetes/devnet-1/teku-geth-001/charts/ethereum-node-0.0.7.tgz new file mode 100644 index 0000000..e268676 Binary files /dev/null and b/kubernetes/devnet-1/teku-geth-001/charts/ethereum-node-0.0.7.tgz differ diff --git a/kubernetes/devnet-1/teku-geth-001/values.yaml b/kubernetes/devnet-1/teku-geth-001/values.yaml new file mode 100644 index 0000000..73f663b --- /dev/null +++ b/kubernetes/devnet-1/teku-geth-001/values.yaml @@ -0,0 +1,257 @@ +# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/ethereum-node.yaml.j2 + +teku-geth-001: + global: + main: + network: peerdas-devnet-1 + engineEndpoint: http://geth-teku-001:8551 + rpcEndpoint: http://geth-teku-001:8545 + beaconEndpoint: http://teku-geth-001:5052 + checkpointSync: + enabled: false + addresses: + peerdas-devnet-1: https://@bn.bootnode-1.srv.peerdas-devnet-1.ethpandaops.io + clientArgs: + networks: + peerdas-devnet-1: + execution: + besu: + - --genesis-file=/data/network-config/besu.json + - --bootnodes=enode://fc17bb1cb6a0dcfe71c883467fb3899c0073e45acf4b78e4e30efde610859effa0db22c58369ee3bd60b5f41827c2c5a4e52ef61016e3168b94fc2d83911b984@167.99.5.231:30303?discport=30303 + - --rpc-http-api=ADMIN,DEBUG,ETH,MINER,NET,TRACE,TXPOOL,WEB3 + - --sync-mode=FULL + - --data-storage-format=BONSAI + - --bonsai-limit-trie-logs-enabled=false + - --ethstats=k8s-teku-geth-001:@ethstats.peerdas-devnet-1.ethpandaops.io:443 + nethermind: + - --Init.ChainSpecPath=/data/network-config/chainspec.json + - --JsonRpc.EnabledModules=Eth,Subscribe,Trace,TxPool,Web3,Personal,Proof,Net,Parity,Health,Rpc,Debug,Admin + - --Discovery.Bootnodes=enode://fc17bb1cb6a0dcfe71c883467fb3899c0073e45acf4b78e4e30efde610859effa0db22c58369ee3bd60b5f41827c2c5a4e52ef61016e3168b94fc2d83911b984@167.99.5.231:30303?discport=30303 + - --Init.IsMining=false + - --Pruning.Mode=None + - --config=none.cfg + - --EthStats.Enabled=true + - --EthStats.Name=k8s-teku-geth-001 + - --EthStats.Secret= + - --EthStats.Server=wss://ethstats.peerdas-devnet-1.ethpandaops.io/api/ + - --log=INFO + - --Seq.MinLevel=Info + - --Seq.ServerUrl=https://seq.nethermind.io + - --Seq.ApiKey=yuOqjKOHhZCw2D2U7pmL + geth: + - --http.api=eth,net,web3,debug,admin + - --http.vhosts=* + - --state.scheme=path + - --networkid=7068553372 + - --syncmode=full + - --bootnodes=enode://fc17bb1cb6a0dcfe71c883467fb3899c0073e45acf4b78e4e30efde610859effa0db22c58369ee3bd60b5f41827c2c5a4e52ef61016e3168b94fc2d83911b984@167.99.5.231:30303?discport=30303 + - --ethstats=k8s-teku-geth-001:@ethstats.peerdas-devnet-1.ethpandaops.io + - --rpc.allow-unprotected-txs + erigon: + - --chain=dev + - --http.api=eth,erigon,engine,web3,net,debug,trace,txpool + - --http.vhosts=* + - --ws + - --prune=htc + - --networkid=7068553372 + - --db.size.limit=500GB + - --bootnodes=enode://fc17bb1cb6a0dcfe71c883467fb3899c0073e45acf4b78e4e30efde610859effa0db22c58369ee3bd60b5f41827c2c5a4e52ef61016e3168b94fc2d83911b984@167.99.5.231:30303?discport=30303 + - --ethstats=k8s-teku-geth-001:@ethstats.peerdas-devnet-1.ethpandaops.io + ethereumjs: + - --gethGenesis=/data/network-config/genesis.json + - --bootnodes=enode://fc17bb1cb6a0dcfe71c883467fb3899c0073e45acf4b78e4e30efde610859effa0db22c58369ee3bd60b5f41827c2c5a4e52ef61016e3168b94fc2d83911b984@167.99.5.231:30303?discport=30303 + - --maxPeers=75 + - --isSingleNode=true + consensus: + lodestar: + - --paramsFile=/data/network-config/config.yaml + - --genesisStateFile=/data/network-config/genesis.ssz + - --bootnodes=enr:-Iq4QPNG0oNNdtOhqDym34NlchSkGM8xXmO1paXzah6BNiVmSkB_J9xAqlOHIc8mFjBraesh_mROWkyzpTw-yt_pBh6GAZBPYtJngmlkgnY0gmlwhKdjBeeJc2VjcDI1NmsxoQJJ3h8aUO3GJHv-bdvHtsQZ2OEisutelYfGjXO4lSg8BYN1ZHCCIzI,enr:-OK4QLamGv4mo4nYP2OVeGsNJfJOXhBIFpPy3PtbXUPnVcrOb-cGWAq4lMizbjupCsEhArAhQlJw1KEAlFEpSWVhrfMBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhKdjBeeEcXVpY4IjKYlzZWNwMjU2azGhAiWxmSTl3QUeyNDVe6yR5mScHzlaBxQRL4h-iZEyzaQRiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo + - --rest.namespace="*" + - --network.connectToDiscv5Bootnodes + - --nat=true + teku: + - --network=/data/network-config/config.yaml + - --genesis-state=/data/network-config/genesis.ssz + - --p2p-discovery-bootnodes=enr:-Iq4QPNG0oNNdtOhqDym34NlchSkGM8xXmO1paXzah6BNiVmSkB_J9xAqlOHIc8mFjBraesh_mROWkyzpTw-yt_pBh6GAZBPYtJngmlkgnY0gmlwhKdjBeeJc2VjcDI1NmsxoQJJ3h8aUO3GJHv-bdvHtsQZ2OEisutelYfGjXO4lSg8BYN1ZHCCIzI,enr:-OK4QLamGv4mo4nYP2OVeGsNJfJOXhBIFpPy3PtbXUPnVcrOb-cGWAq4lMizbjupCsEhArAhQlJw1KEAlFEpSWVhrfMBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhKdjBeeEcXVpY4IjKYlzZWNwMjU2azGhAiWxmSTl3QUeyNDVe6yR5mScHzlaBxQRL4h-iZEyzaQRiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo + - --p2p-peer-upper-bound=100 + - --data-storage-non-canonical-blocks-enabled=true + - --data-storage-mode=PRUNE + - --logging=info + - --Xlog-include-p2p-warnings-enabled + - --metrics-block-timing-tracking-enabled + - --ignore-weak-subjectivity-period-enabled + - --p2p-subscribe-all-custody-subnets-enabled + prysm: + - --grpc-gateway-corsdomain=* + - --chain-config-file=/data/network-config/config.yaml + - --genesis-state=/data/network-config/genesis.ssz + - --contract-deployment-block=0 + - --min-sync-peers=1 + - --pprof + - --enable-debug-rpc-endpoints + - --verbosity=debug + - --subscribe-all-subnets + - --bootstrap-node=enr:-Iq4QPNG0oNNdtOhqDym34NlchSkGM8xXmO1paXzah6BNiVmSkB_J9xAqlOHIc8mFjBraesh_mROWkyzpTw-yt_pBh6GAZBPYtJngmlkgnY0gmlwhKdjBeeJc2VjcDI1NmsxoQJJ3h8aUO3GJHv-bdvHtsQZ2OEisutelYfGjXO4lSg8BYN1ZHCCIzI + - --bootstrap-node=enr:-OK4QLamGv4mo4nYP2OVeGsNJfJOXhBIFpPy3PtbXUPnVcrOb-cGWAq4lMizbjupCsEhArAhQlJw1KEAlFEpSWVhrfMBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhKdjBeeEcXVpY4IjKYlzZWNwMjU2azGhAiWxmSTl3QUeyNDVe6yR5mScHzlaBxQRL4h-iZEyzaQRiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo + lighthouse: + - --testnet-dir=/data/network-config + - --boot-nodes=enr:-Iq4QPNG0oNNdtOhqDym34NlchSkGM8xXmO1paXzah6BNiVmSkB_J9xAqlOHIc8mFjBraesh_mROWkyzpTw-yt_pBh6GAZBPYtJngmlkgnY0gmlwhKdjBeeJc2VjcDI1NmsxoQJJ3h8aUO3GJHv-bdvHtsQZ2OEisutelYfGjXO4lSg8BYN1ZHCCIzI,enr:-OK4QLamGv4mo4nYP2OVeGsNJfJOXhBIFpPy3PtbXUPnVcrOb-cGWAq4lMizbjupCsEhArAhQlJw1KEAlFEpSWVhrfMBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhKdjBeeEcXVpY4IjKYlzZWNwMjU2azGhAiWxmSTl3QUeyNDVe6yR5mScHzlaBxQRL4h-iZEyzaQRiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo + - --allow-insecure-genesis-sync + - --subscribe-all-data-column-subnets + nimbus: + - --network=/data/network-config + - --validator-monitor-auto=false + - --doppelganger-detection=off + - --log-level=INFO + - --light-client-data-serve=false + - --bootstrap-node=enr:-Iq4QPNG0oNNdtOhqDym34NlchSkGM8xXmO1paXzah6BNiVmSkB_J9xAqlOHIc8mFjBraesh_mROWkyzpTw-yt_pBh6GAZBPYtJngmlkgnY0gmlwhKdjBeeJc2VjcDI1NmsxoQJJ3h8aUO3GJHv-bdvHtsQZ2OEisutelYfGjXO4lSg8BYN1ZHCCIzI + - --bootstrap-node=enr:-OK4QLamGv4mo4nYP2OVeGsNJfJOXhBIFpPy3PtbXUPnVcrOb-cGWAq4lMizbjupCsEhArAhQlJw1KEAlFEpSWVhrfMBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhKdjBeeEcXVpY4IjKYlzZWNwMjU2azGhAiWxmSTl3QUeyNDVe6yR5mScHzlaBxQRL4h-iZEyzaQRiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo + + + geth: + enabled: true + fullnameOverride: geth-teku-001 + image: + repository: ethereum/client-go + tag: stable + pullPolicy: Always + p2pNodePort: + enabled: false + persistence: + enabled: true + size: 100Gi + podLabels: + network: peerdas-devnet-1 + testnet: peerdas-devnet-1 + ethereum_network: peerdas-devnet-1 + ethereum_role: execution + consensus_client: teku + execution_client: geth + ethereum_instance: geth-teku-001 + resources: + requests: + cpu: 2000m + memory: 5Gi + limits: + cpu: 3000m + memory: 7Gi + initContainers: + - name: init-config + image: alpine:latest + imagePullPolicy: IfNotPresent + securityContext: + runAsNonRoot: false + runAsUser: 0 + command: + - sh + - -ace + - > + CHAINSPEC_URI=https://config.peerdas-devnet-1.ethpandaops.io/el/chainspec.json; + GENESIS_URI=https://config.peerdas-devnet-1.ethpandaops.io/el/genesis.json; + BESU_GENESIS_URI=https://config.peerdas-devnet-1.ethpandaops.io/el/besu.json; + ENODES_URI=https://config.peerdas-devnet-1.ethpandaops.io/el/enodes.txt; + mkdir -p /data/network-config/metadata; + if ! [ -f /data/network_config_init_done ]; + then + apk update && apk add curl jq; + wget -O /data/network-config/metadata/chainspec.json $CHAINSPEC_URI; + wget -O /data/network-config/metadata/genesis.json $GENESIS_URI; + wget -O /data/network-config/metadata/besu.json $BESU_GENESIS_URI; + wget -O /data/network-config/metadata/enodes.txt $ENODES_URI; + cat /data/network-config/genesis.json | jq -r '.config.chainId' > /data/network-config/chainid.txt; + touch /data/network_config_init_done; + echo "network config init done"; + else + echo "network config already present"; + fi; + echo "bootnode init done: $(cat /data/network-config/metadata/enodes.txt)"; + volumeMounts: + - name: storage + mountPath: "/data" + - name: init-genesis + image: ethereum/client-go:stable + imagePullPolicy: Always + securityContext: + runAsNonRoot: false + runAsUser: 0 + command: + - sh + - -ace + - > + if ! [ -f /data/genesis_init_done ]; + then + geth init --state.scheme=path --datadir /data /data/network-config/metadata/genesis.json; + touch /data/genesis_init_done; + echo "genesis init done"; + else + echo "genesis is already initialized"; + fi; + volumeMounts: + - name: storage + mountPath: "/data" + + teku: + enabled: true + fullnameOverride: teku-geth-001 + image: + repository: ethpandaops/teku + tag: nashatyrev-das-3768eca + pullPolicy: Always + mode: "beacon" + p2pNodePort: + enabled: false + podLabels: + network: peerdas-devnet-1 + testnet: peerdas-devnet-1 + ethereum_network: peerdas-devnet-1 + ethereum_role: consensus + consensus_client: teku + execution_client: geth + ethereum_instance: teku-geth-001 + resources: + requests: + cpu: 2000m + memory: 5Gi + limits: + cpu: 3000m + memory: 7Gi + persistence: + enabled: true + size: 200Gi + initContainers: + - name: init-genesis + image: alpine:latest + imagePullPolicy: IfNotPresent + securityContext: + runAsNonRoot: false + runAsUser: 0 + command: + - sh + - -ace + - > + apk add jq curl sed; + DEPOSIT_CONTRACT_URI=https://config.peerdas-devnet-1.ethpandaops.io/cl/deposit_contract.txt; + DEPOSIT_CONTRACT_BLOCK_URI=https://config.peerdas-devnet-1.ethpandaops.io/cl/deposit_contract_block.txt; + DEPOSIT_CONTRACT_BLOCK_HASH_URI=https://config.peerdas-devnet-1.ethpandaops.io/cl/deposit_contract_block_hash.txt; + GENESIS_CONFIG_URI=https://config.peerdas-devnet-1.ethpandaops.io/cl/config.yaml; + GENESIS_SSZ_URI=https://config.peerdas-devnet-1.ethpandaops.io/cl/genesis.ssz; + mkdir -p /data/network-config/metadata; + curl -s https://config.peerdas-devnet-1.ethpandaops.io/api/v1/nodes/inventory | jq -r '.ethereum_pairs[] | .consensus.enr' > /data/network-config/metadata/bootstrap_nodes.txt; + if ! [ -f /data/network-config/metadata/genesis.ssz ]; + then + wget -O /data/network-config/metadata/deposit_contract.txt $DEPOSIT_CONTRACT_URI; + wget -O /data/network-config/metadata/deposit_contract_block.txt $DEPOSIT_CONTRACT_BLOCK_URI; + wget -O /data/network-config/metadata/deposit_contract_block_hash.txt $DEPOSIT_CONTRACT_BLOCK_HASH_URI; + wget -O /data/network-config/metadata/config.yaml $GENESIS_CONFIG_URI; + wget -O /data/network-config/metadata/genesis.ssz $GENESIS_SSZ_URI; + echo "genesis init done"; + else + echo "genesis exists. skipping..."; + fi; + (tr '\n' ',' < /data/network-config/metadata/bootstrap_nodes.txt | sed 's/[^,]*/"&"/g') > /data/network-config/metadata/bootstrap_nodes2.txt; + mv /data/network-config/metadata/bootstrap_nodes2.txt /data/network-config/metadata/bootstrap_nodes.txt; + echo "bootnode init done: $(cat /data/network-config/metadata/bootstrap_nodes.txt)"; + volumeMounts: + - name: storage + mountPath: "/data" diff --git a/network-configs/devnet-1/metadata/bootstrap_nodes.txt b/network-configs/devnet-1/metadata/bootstrap_nodes.txt index 69bd6d7..06218bf 100644 --- a/network-configs/devnet-1/metadata/bootstrap_nodes.txt +++ b/network-configs/devnet-1/metadata/bootstrap_nodes.txt @@ -1 +1,11 @@ -enr:-Iq4QJk4WqRkjsX5c2CXtOra6HnxN-BMXnWhmhEQO9Bn9iABTJGdjUOurM7Btj1ouKaFkvTRoju5vz2GPmVON2dffQKGAX53x8JigmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk +enr:-Iq4QPNG0oNNdtOhqDym34NlchSkGM8xXmO1paXzah6BNiVmSkB_J9xAqlOHIc8mFjBraesh_mROWkyzpTw-yt_pBh6GAZBPYtJngmlkgnY0gmlwhKdjBeeJc2VjcDI1NmsxoQJJ3h8aUO3GJHv-bdvHtsQZ2OEisutelYfGjXO4lSg8BYN1ZHCCIzI +enr:-OK4QLamGv4mo4nYP2OVeGsNJfJOXhBIFpPy3PtbXUPnVcrOb-cGWAq4lMizbjupCsEhArAhQlJw1KEAlFEpSWVhrfMBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhKdjBeeEcXVpY4IjKYlzZWNwMjU2azGhAiWxmSTl3QUeyNDVe6yR5mScHzlaBxQRL4h-iZEyzaQRiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo +enr:-OK4QHMM9ttZ3PkDRyR9XlJcH6WBOq4abNzUkuubrsWj05TWdkAvPa7i5DGtsXCBCy0O1MZhC1aVBuwKm1bjXhJzwWoBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhGj4MbKEcXVpY4IjKYlzZWNwMjU2azGhApH-C5Llp20Mk9kkEV8-rvywZZk1JgslDa8IEQ7Ky-NFiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo +enr:-OK4QIFOUku0r2JuErC5oK32Rx71Foa8v4refxUL_Cho-EmPP7UYhJSBno8MMq1E5d26a5IoCfnFdjhbgU1sbN6IJzcBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhJgq-8OEcXVpY4IjKYlzZWNwMjU2azGhA_aRgGOSIJpdM_TBHdk2pAtZnuX42V7-_WBU-xNBYBOeiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo +enr:-OK4QM3PMAsmPMuxO0q2nLUIDjNbIRdVbOB1vEpXOaifarZUb5rOpfThpKdnihTm_9PMGpNM6l_jLkr_DSGA-LplhEABh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIBAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhJ9BMjeEcXVpY4IjKYlzZWNwMjU2azGhAyibUJj3CX_GKNzb3gRmduV8GFrADCuQenMw9Xhkxq5viHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo +enr:-Me4QOmhuMwnEGrXg50bUBkRtYbQwRl6OONWq3JZ2TaeQYzFMl_G1fmy7nbYY9iDn7DuudPbidRVT7GvQPdlPelQTs-GAZBPZgbIh2F0dG5ldHOIAABgAAAAAACDY3NjQIRldGgykKy_yS5ggyaHAHQ7pAsAAACCaWSCdjSCaXCEQ82ZHYlzZWNwMjU2azGhAxjqz2L9mjp1EJCmuQAPIUYUBG_OeG2qNS-V25oIO4l8iHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo +enr:-Me4QLnOA339pW3HB3GdyjvAZzSPzP1Q_Oz1Hg9JHy9xmyEfNhdisLNJ_1bn-nnw1YEp8JMbxdz1GcBDpo-82IPYHD6GAZBPZhahh2F0dG5ldHOIAAAAAAAAAGCDY3NjQIRldGgykKy_yS5ggyaHAHQ7pAsAAACCaWSCdjSCaXCEpRYyEIlzZWNwMjU2azGhAoSBKrFkrSufnCF47M3hHZMsT3diQdQcI_aeeGoarPz6iHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo +enr:-Me4QIW_aQrVaO_uHWtgIiu2dmgywQp-FRLoTmz4ebHUQ0N6NjmVYIQSM3osGDg25z3_6S2SHdGJBc7_1p5cEfbS0OmGAZBPZgpOh2F0dG5ldHOIAAAADAAAAACDY3NjBIRldGgykKy_yS5ggyaHAHQ7pAsAAACCaWSCdjSCaXCEpegpk4lzZWNwMjU2azGhA5sA6yEuw5XdeQfxISxUMec24SILmA-5C-pz7df_l-uRiHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo +enr:-Le4QFtAHxXJk-RybriEey5F9qffm10Ql-tm89sk6HyjWGK9cu7wS988XEn1P2gGKn1HTlHZEFRDRGWoqPp8DiU56WwFh2F0dG5ldHOIAAAAAAAAAMCDY3NjQIRldGgykKy_yS5QgyaH__________-CaWSCdjSCaXCEovOkHYlzZWNwMjU2azGhAjrOMbWxtXC6embPGY1SLym0G14p6W9dLW4m3c5grYV5g3RjcIIjKIN1ZHCCIyg +enr:-Le4QPXw1OyoOKbISqfFLZ1TaxHeTChWc-ix_5tvQqkVL7KnbZNpNuIY0FlAVukjilyb-PaIuEXzqvXA5A3Yr_6v7PoFh2F0dG5ldHOIAAAAAAAAAAyDY3NjQIRldGgykKy_yS5QgyaH__________-CaWSCdjSCaXCEzr2e6olzZWNwMjU2azGhA4MrhY42DW1onvx8LcWzfM_BY4PBgjPCwqV-qV1gvpuQg3RjcIIjKIN1ZHCCIyg +enr:-Le4QItD8pG6FKdBnD17FnfImyZLGqaOU0PCM0HJDOgdppUmeGM4ycQiJxLG68bI6rWLZZdd8MUfba6Df0JOkqejTIgFh2F0dG5ldHOIAAAAAAAGAACDY3NjBIRldGgykKy_yS5QgyaH__________-CaWSCdjSCaXCEn0E2DIlzZWNwMjU2azGhA93laJJrXEEpFofxUC7wv8wK-ezhTSSWYksN8SBwQSNxg3RjcIIjKIN1ZHCCIyg diff --git a/network-configs/devnet-1/metadata/bootstrap_nodes.yaml b/network-configs/devnet-1/metadata/bootstrap_nodes.yaml new file mode 100644 index 0000000..f5594a4 --- /dev/null +++ b/network-configs/devnet-1/metadata/bootstrap_nodes.yaml @@ -0,0 +1,11 @@ +- enr:-Iq4QPNG0oNNdtOhqDym34NlchSkGM8xXmO1paXzah6BNiVmSkB_J9xAqlOHIc8mFjBraesh_mROWkyzpTw-yt_pBh6GAZBPYtJngmlkgnY0gmlwhKdjBeeJc2VjcDI1NmsxoQJJ3h8aUO3GJHv-bdvHtsQZ2OEisutelYfGjXO4lSg8BYN1ZHCCIzI +- enr:-OK4QLamGv4mo4nYP2OVeGsNJfJOXhBIFpPy3PtbXUPnVcrOb-cGWAq4lMizbjupCsEhArAhQlJw1KEAlFEpSWVhrfMBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhKdjBeeEcXVpY4IjKYlzZWNwMjU2azGhAiWxmSTl3QUeyNDVe6yR5mScHzlaBxQRL4h-iZEyzaQRiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo +- enr:-OK4QHMM9ttZ3PkDRyR9XlJcH6WBOq4abNzUkuubrsWj05TWdkAvPa7i5DGtsXCBCy0O1MZhC1aVBuwKm1bjXhJzwWoBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhGj4MbKEcXVpY4IjKYlzZWNwMjU2azGhApH-C5Llp20Mk9kkEV8-rvywZZk1JgslDa8IEQ7Ky-NFiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo +- enr:-OK4QIFOUku0r2JuErC5oK32Rx71Foa8v4refxUL_Cho-EmPP7UYhJSBno8MMq1E5d26a5IoCfnFdjhbgU1sbN6IJzcBh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIQAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhJgq-8OEcXVpY4IjKYlzZWNwMjU2azGhA_aRgGOSIJpdM_TBHdk2pAtZnuX42V7-_WBU-xNBYBOeiHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo +- enr:-OK4QM3PMAsmPMuxO0q2nLUIDjNbIRdVbOB1vEpXOaifarZUb5rOpfThpKdnihTm_9PMGpNM6l_jLkr_DSGA-LplhEABh2F0dG5ldHOIAAAAAAAAAACUY3VzdG9keV9zdWJuZXRfY291bnSIBAAAAAAAAACEZXRoMpCsv8kuYIMmhwB0O6QLAAAAgmlkgnY0gmlwhJ9BMjeEcXVpY4IjKYlzZWNwMjU2azGhAyibUJj3CX_GKNzb3gRmduV8GFrADCuQenMw9Xhkxq5viHN5bmNuZXRzAIN0Y3CCIyiDdWRwgiMo +- enr:-Me4QOmhuMwnEGrXg50bUBkRtYbQwRl6OONWq3JZ2TaeQYzFMl_G1fmy7nbYY9iDn7DuudPbidRVT7GvQPdlPelQTs-GAZBPZgbIh2F0dG5ldHOIAABgAAAAAACDY3NjQIRldGgykKy_yS5ggyaHAHQ7pAsAAACCaWSCdjSCaXCEQ82ZHYlzZWNwMjU2azGhAxjqz2L9mjp1EJCmuQAPIUYUBG_OeG2qNS-V25oIO4l8iHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo +- enr:-Me4QLnOA339pW3HB3GdyjvAZzSPzP1Q_Oz1Hg9JHy9xmyEfNhdisLNJ_1bn-nnw1YEp8JMbxdz1GcBDpo-82IPYHD6GAZBPZhahh2F0dG5ldHOIAAAAAAAAAGCDY3NjQIRldGgykKy_yS5ggyaHAHQ7pAsAAACCaWSCdjSCaXCEpRYyEIlzZWNwMjU2azGhAoSBKrFkrSufnCF47M3hHZMsT3diQdQcI_aeeGoarPz6iHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo +- enr:-Me4QIW_aQrVaO_uHWtgIiu2dmgywQp-FRLoTmz4ebHUQ0N6NjmVYIQSM3osGDg25z3_6S2SHdGJBc7_1p5cEfbS0OmGAZBPZgpOh2F0dG5ldHOIAAAADAAAAACDY3NjBIRldGgykKy_yS5ggyaHAHQ7pAsAAACCaWSCdjSCaXCEpegpk4lzZWNwMjU2azGhA5sA6yEuw5XdeQfxISxUMec24SILmA-5C-pz7df_l-uRiHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo +- enr:-Le4QFtAHxXJk-RybriEey5F9qffm10Ql-tm89sk6HyjWGK9cu7wS988XEn1P2gGKn1HTlHZEFRDRGWoqPp8DiU56WwFh2F0dG5ldHOIAAAAAAAAAMCDY3NjQIRldGgykKy_yS5QgyaH__________-CaWSCdjSCaXCEovOkHYlzZWNwMjU2azGhAjrOMbWxtXC6embPGY1SLym0G14p6W9dLW4m3c5grYV5g3RjcIIjKIN1ZHCCIyg +- enr:-Le4QPXw1OyoOKbISqfFLZ1TaxHeTChWc-ix_5tvQqkVL7KnbZNpNuIY0FlAVukjilyb-PaIuEXzqvXA5A3Yr_6v7PoFh2F0dG5ldHOIAAAAAAAAAAyDY3NjQIRldGgykKy_yS5QgyaH__________-CaWSCdjSCaXCEzr2e6olzZWNwMjU2azGhA4MrhY42DW1onvx8LcWzfM_BY4PBgjPCwqV-qV1gvpuQg3RjcIIjKIN1ZHCCIyg +- enr:-Le4QItD8pG6FKdBnD17FnfImyZLGqaOU0PCM0HJDOgdppUmeGM4ycQiJxLG68bI6rWLZZdd8MUfba6Df0JOkqejTIgFh2F0dG5ldHOIAAAAAAAGAACDY3NjBIRldGgykKy_yS5QgyaH__________-CaWSCdjSCaXCEn0E2DIlzZWNwMjU2azGhA93laJJrXEEpFofxUC7wv8wK-ezhTSSWYksN8SBwQSNxg3RjcIIjKIN1ZHCCIyg diff --git a/network-configs/devnet-1/metadata/enodes.txt b/network-configs/devnet-1/metadata/enodes.txt new file mode 100644 index 0000000..cc76eb8 --- /dev/null +++ b/network-configs/devnet-1/metadata/enodes.txt @@ -0,0 +1,9 @@ +enode://cd24d7c37fdf93cee0967762b8259e53980bff2fe7cc759ce72cc787b689107518780c7a6fd687bb4f826f6d458ab8488e0d9f1d9e2c7b2ab533ff3dcf96c703@104.248.49.178:30303?discport=30303 +enode://cc5a0ad9245b1c01b67cfe51c780e211efa9e8cf75c0525797718f7eb5e170cffd0fc26da5bca152b0776624a001645a777393082715e64c055434e2567b67f2@152.42.251.195:30303?discport=30303 +enode://7662f98faa875734240da52651bc57b46f6ac7428aa07be0170cde3a620f74bb67263afdc575146ffe4db24ffa8f9285c78e8f0dab53c7526faf4a413bb060c2@159.65.50.55:30303?discport=30303 +enode://c4e35e4bd4844b3749778decf57fa0bcc93969fc1be910a5d9b7fe39d25bdbff3be14d20c26b8f060e07fc2a997d55f7e23bf2eee70b9bec07376f6d39f1d88b@67.205.153.29:30303?discport=30303 +enode://239fa5fa460f0e84f0c28c6dcebe436f2d0e8429830a96224bb91d57456ee0a546c506de06a0ce694b2be46052166d47ede7f806f1abb5fe02093889cb62d021@165.22.50.16:30303?discport=30303 +enode://9267e7ba368bc91e1966838a07a93573617a5a7919ef0f3d9c03c83110f0317490045202255d9adc04e6737ba8dc7c46ff6db677e4be03fad3f44ad5591d12a7@165.232.41.147:30303?discport=30303 +enode://81f86d38c04bc1d147c955eb7370622599ef9ce4db87a5510d8f188131122b7b50e0d3badc617608ad43cb0b2527d4c3342b9b4b1995b6b6ecd70ffac43f4300@162.243.164.29:30303?discport=30303 +enode://1f447a3e58d4977d00666d7698620869fbb184b9232ce76b6f7b19af90f79ea11787190060b57bbc69d413748582dc5292cc2208a0c5718c4a72d0efb57be407@206.189.158.234:30303?discport=30303 +enode://70255d9e3d7b0a2776133efb124c286cfc500236622f7899453fd2d5e9f354062efa0353b7e6c038e27807896aadcafcc23f6a24773cbae818cc0d0a70bf715f@159.65.54.12:30303?discport=30303