-
Notifications
You must be signed in to change notification settings - Fork 0
Setting up the INTEROP phase1 ethereum2 test network
DISCLAIMER: This is written in 20.01.2020r. State may change drastically.
- Fabian Vogelsteller https://github.com/frozeman for supervising and leading the coop
- Atif Anowar https://github.com/atif-konasl for gathering knowledge about current state of Eth2.0 migration
- Mikhail Kalinin https://github.com/mkalinin for implementation and guidance
- Guillaume Ballet https://github.com/gballet for implementation and guidance
- Matt Marciniak https://github.com/mxmar for making this repo work as a charm
- Patrick Krakos A.K.A patred20 https://github.com/patred20 for making this repo work as a charm
- All the other guys involved in making ethereum 2.0 happen!
To read more about phase1:
- Execution Model
- Set Up execution locally
- Teku java execution simulation
- Phase1 specification
- Dive into eth20
- Overall concept of phase1
- Teku phase1 commit:
d7fec811ab1843fcb900d622389d64dcf414f3b3
from repossh://[email protected]/txrx-research/teku.git
- Catalyst (go-ethereum) phase1 commit:
67100e4ac7778c573e3ae57099426787e3e1bea5
from repo[email protected]:mkalinin/go-ethereum.git
Whole twit from @VitalikButerin
You need to have google cloud account and billing enabled to perform this operation. It is good to know that google offers some cash to burn at trial.
You need to have kubernetes and helm installed in your environment.
Please check README.md, may be updated in a future. For current state of dev I give you below content of Readme.md
Here are the steps that you need to take to bring it up:
- Create NFS volume (look below)
- Set up your
multinet-cluster/values.yaml
. For current deployment we run onlyteku
andcatalyst
as a eth1 <-> eth2 layer. - Set up your ethstats (not implemented within repo, we currently set it up on separate instance via
puppeth
) [optional for monitoring] - install helm chart
helm install eth20
. Seehelm --help
to see all possible options. - upgrade it via helm
helm upgrade -f multinet-cluster/values.yaml eth20 ./multinet-cluster/
- Expose your pods, dashboards and other stuff (look below)
It will really take a while for the infrastructure to spin up. Please be patient and just type kubectl get pods -w
to see it live.
In order to make ReadWriteMany
on common-data.yaml
and deposits-storage.yml
you need to create NFS within region.
To do this you must create 2 compute disks. One for common-data and one for deposits-storage
Lets assume that you are using europe-west4-a for your GKE.
Example using gcloud sdk:
gcloud compute disks create --size=200GB --zone=europe-west4-a nfs-data
gcloud compute disks create --size=200GB --zone=europe-west4-a nfs-deposit
Notice that nfs-disk
must match helm charts name, so in order to experiment with rename you must also rename it there.
After creating disk you must deploy nfs using kubectl.
Example from root of this repo:
./nfs/reapply.sh
Files should be mounted to /data/$DIR
where $DIR
is with consecutive:
data
for common-data.yml
depostits
for deposits-storage.yml
In order to check whats going on on disk itself do:
kubectl exec -it $NFS_SERVER_POD_NAME bash
To check $NFS_SERVER_POD_NAME
do kubectl get pods
To apply changes use:
helm upgrade -f $PWD/multinet-cluster/values.yaml eth20 $PWD/multinet-cluster
When you want to expose eth2stats you need to export external ips: https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/
Example of exposure:
kubectl expose deployment eth2stats-server --type=LoadBalancer --name=svrbalancer
kubectl expose deployment eth2stats-dashboard --type=LoadBalancer --name=dashbalancer
kubectl expose deployment launchpad-dashboard --type=LoadBalancer --name=launchpadbalancer
What is problematic is the config of ethstats. It does not show full data.
Example for teku:
kubectl cp teku-catalyst-4:/root/.local/share/teku/logs/teku.log ./teku-log-4 -c teku
Purpose of this wiki is to explain how to run eth2 phase1 network
Hello there!