Retire Spadina and prepare for the Zinken network

This commit is contained in:
Zahary Karadjov 2020-10-06 18:45:29 +03:00 committed by zah
parent 6b9090398e
commit b46c8410a6
8 changed files with 61 additions and 56 deletions

View File

@ -312,27 +312,34 @@ clean-medalla:
$(call CLEAN_NETWORK,medalla)
###
### spadina
### zinken
###
spadina: | beacon_node signing_process
$(call CONNECT_TO_NETWORK,spadina)
zinken: | beacon_node signing_process
$(call CONNECT_TO_NETWORK,zinken)
spadina-vc: | beacon_node signing_process validator_client
$(call CONNECT_TO_NETWORK_WITH_VALIDATOR_CLIENT,spadina)
zinken-vc: | beacon_node signing_process validator_client
$(call CONNECT_TO_NETWORK_WITH_VALIDATOR_CLIENT,zinken)
ifneq ($(LOG_LEVEL), TRACE)
spadina-dev:
zinken-dev:
+ "$(MAKE)" LOG_LEVEL=TRACE $@
else
spadina-dev: | beacon_node signing_process
$(call CONNECT_TO_NETWORK_IN_DEV_MODE,spadina)
zinken-dev: | beacon_node signing_process
$(call CONNECT_TO_NETWORK_IN_DEV_MODE,zinken)
endif
spadina-deposit-data: | beacon_node signing_process deposit_contract
$(call MAKE_DEPOSIT_DATA,spadina)
zinken-deposit-data: | beacon_node signing_process deposit_contract
$(call MAKE_DEPOSIT_DATA,zinken)
spadina-deposit: | beacon_node signing_process deposit_contract
$(call MAKE_DEPOSIT,spadina)
zinken-deposit: | beacon_node signing_process deposit_contract
$(call MAKE_DEPOSIT,zinken)
clean-zinken:
$(call CLEAN_NETWORK,zinken)
###
### spadina
###
clean-spadina:
$(call CLEAN_NETWORK,spadina)

View File

@ -162,7 +162,7 @@ template eth2testnet(path: string): Eth2NetworkMetadata =
const
medallaMetadata* = eth2testnet "shared/medalla"
spadinaMetadata* = eth2testnet "shared/spadina"
zinkenMetadata* = eth2testnet "shared/zinken"
testnet0Metadata* = eth2testnet "nimbus/testnet0"
testnet1Metadata* = eth2testnet "nimbus/testnet1"
attacknetMc0Metadata* = eth2testnet "shared/attacknet-beta1-mc-0"
@ -176,8 +176,8 @@ proc getMetadataForNetwork*(networkName: string): Eth2NetworkMetadata =
mainnetMetadata
of "medalla":
medallaMetadata
of "spadina":
spadinaMetadata
of "zinken":
zinkenMetadata
of "attacknet-beta1-mc-0":
attacknetMc0Metadata
of "testnet0":

View File

@ -1,7 +1,7 @@
# Summary
- [Introduction](./intro.md)
- [Installation](./install.md)
- [Become a Spadina validator](./spadina.md)
- [Become a Zinken validator](./zinken.md)
- [Become a Medalla validator](./medalla.md)
- [Troubleshooting Medalla](./medalla-troubleshooting.md)
- [Running the beacon node](./beacon_node.md)

View File

@ -8,7 +8,7 @@ While we do support Infura to process incoming validator deposits, we recommend
## How it works
When you join an eth2 testnet by running `make spadina` or `make medalla`, the beacon node actually launches with an Infura endpoint supplied by us.
When you join an eth2 testnet by running `make zinken` or `make medalla`, the beacon node actually launches with an Infura endpoint supplied by us.
This endpoint is passed through the `web3-url` option (which takes as input the url of the web3 server from which you'd like to observe the eth1 chain).
@ -19,10 +19,10 @@ If you look at the initial logs you should see something similar to the followin
DBG 2020-09-29 12:15:41.969+02:00 Launching beacon node
topics="beacnde" tid=8941404 file=beacon_node.nim:1190 version="0.5.0 (78ceeed8)" bls_backend=BLST
cmdParams="@[
\"--network=spadina\",
\"--network=zinken\",
\"--log-level=DEBUG\",
\"--log-file=build/data/shared_spadina_0/nbc_bn_20200929121541.log\",
\"--data-dir=build/data/shared_spadina_0\",
\"--log-file=build/data/shared_zinken_0/nbc_bn_20200929121541.log\",
\"--data-dir=build/data/shared_zinken_0\",
\"--web3-url=wss://goerli.infura.io/ws/v3/809a18497dd74102b5f37d25aae3c85a\",
\"--tcp-port=9000\",
\"--udp-port=9000\",
@ -62,7 +62,7 @@ To get around this problem, we recommend launching the beacon node with your own
> **Note:** In a previous version of the software it wasn't possible to manually override the web3 endpoint when running `make spadina` or `make medalla`. For the instructions below to work, make sure you've updated to the latest version of the software (run `git pull && make update` from the `master` branch of the `nim-beacon-chain` repository).
> **Note:** In a previous version of the software it wasn't possible to manually override the web3 endpoint when running `make zinken` or `make medalla`. For the instructions below to work, make sure you've updated to the latest version of the software (run `git pull && make update` from the `master` branch of the `nim-beacon-chain` repository).
### 1. Visit Infura.io
@ -127,7 +127,7 @@ Run the beacon node on your favourite testnet, pasting in your websocket endpoin
make NODE_PARAMS="--web3-url=wss://goerli.infura.io/ws/v3/83b9d67f81ca401b8f9651441b43f29e"
<TESTNET_NAME>
```
> Remember to replace <TESTNET_NAME> with either `medalla` or `spadina`.
> Remember to replace <TESTNET_NAME> with either `medalla` or `zinken`.
### 9. Check stats

View File

@ -22,7 +22,7 @@ In this book, we will cover:
1. An [introduction](./intro.md#introduction) to the beacon chain, eth2, and Nimbus to equip you with some basic knowledge
2. [Installation steps](./install.md) outlining the prerequisites to get started
3. How to [become a Spadina validator](./spadina.md)
3. How to [become a Zinken validator](./zinken.md)
4. How to [become a Medalla validator](./medalla.md)
5. [Troubleshooting Medalla](./medalla-troubleshooting.md)
6. How to [run the beacon node](./beacon_node.md) software to sync the beacon chain

View File

@ -109,9 +109,9 @@ Importantly, make sure you pass in a websocket (`wss`) endpoint, not `https`. If
If you're running different testnets on the same computer, you'll need to specify a different `NODE_ID` to avoid port conflicts (the default is `NODE_ID=0`).
For example, to run `medalla` and `spadina` at the same time:
For example, to run `medalla` and `zinken` at the same time:
```
make medalla NODE_ID=0 # the default
make spadina NODE_ID=1
make zinken NODE_ID=1
```

View File

@ -1,9 +1,9 @@
# Become a Spadina validator
# Become a Zinken validator
This page will take you through how to import your key(s) and get your validator(s) ready for [Spadina genesis](https://blog.ethereum.org/2020/09/22/eth2-quick-update-no-17/).
This page will take you through how to import your key(s) and get your validator(s) ready for [Zinken genesis](https://blog.ethereum.org/2020/09/22/eth2-quick-update-no-17/).
For those of you who are unfamiliar, [Spadina](https://github.com/goerli/medalla/blob/master/spadina/README.md) is a short-lived eth2 testnet that will begin on tuesday and last for three days or so. Its main objective is to allow us to test the deposit/[genesis](https://hackmd.io/@benjaminion/genesis) flow one more time before mainnet launch.
For those of you who are unfamiliar, [Zinken](https://github.com/goerli/medalla/blob/master/zinken/README.md) is a short-lived eth2 testnet that will begin on tuesday and last for three days or so. Its main objective is to allow us to test the deposit/[genesis](https://hackmd.io/@benjaminion/genesis) flow one more time before mainnet launch.
Although it will mainly be client teams taking part, it's also a chance for you to practice sending a deposit and launching a node under mainnet launch conditions (in order to avoid clogging up the validator queue, we recommend practicing with one, or at most a handful of validators).
@ -17,7 +17,7 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
The easiest way to get your deposit in is to follow the Launchpad instructions here:
[https://spadina.launchpad.ethereum.org/](https://spadina.launchpad.ethereum.org/)
[https://zinken.launchpad.ethereum.org/](https://zinken.launchpad.ethereum.org/)
You should notice that there have been considerable improvements to the launchpad process since Medalla.
@ -37,7 +37,7 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
## 2. Import your key(s)
To import your `spadina` key(s) into Nimbus:
To import your `zinken` key(s) into Nimbus:
> **Note:** You can skip steps 1 and 2 if you've already cloned `nim-beacon-chain` and built the beacon node for `medalla`: just make sure you run `git pull && make update` from the `master` branch before continuing with step 3.
@ -59,10 +59,10 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
#### 3. Import keystore(s)
```
build/beacon_node deposits import --data-dir=build/data/shared_spadina_0 <YOUR VALIDATOR KEYS DIRECTORY>
build/beacon_node deposits import --data-dir=build/data/shared_zinken_0 <YOUR VALIDATOR KEYS DIRECTORY>
```
Replacing `<YOUR VALIDATOR KEYS DIRECTORY>` with the full pathname of the `validator_keys` directory that was created when you generated your keys using the [Spadina Launchpad](https://spadina.launchpad.ethereum.org/) [command line app](https://github.com/ethereum/eth2.0-deposit-cli/releases/).
Replacing `<YOUR VALIDATOR KEYS DIRECTORY>` with the full pathname of the `validator_keys` directory that was created when you generated your keys using the [Zinken Launchpad](https://zinken.launchpad.ethereum.org/) [command line app](https://github.com/ethereum/eth2.0-deposit-cli/releases/).
> **Tip:** run `pwd` in your `validator_keys` directory to print the full pathname to the console.
@ -70,25 +70,25 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
Don't worry, this is entirely normal. Your validator client needs both your signing keystore(s) and the password encrypting it to import your [key](https://blog.ethereum.org/2020/05/21/keys/) (since it needs to decrypt the keystore in order to be able to use it to sign on your behalf).
## 3. Connect to Spadina
## 3. Connect to Zinken
To build Nimbus and its dependencies, and connect to Spadina, run:
To build Nimbus and its dependencies, and connect to Zinken, run:
```
make spadina
make zinken
```
You should see that your beacon node has launched, and that you are processing eth1 blocks (using [infura](https://infura.io/)) and obtaining information about other depositers (`deposit log events`) in the run-up to genesis:
```
DBG 2020-09-27 17:33:28.500+02:00 Launching beacon node topics="beacnde" tid=8490483 file=beacon_node.nim:1190 version="0.5.0 (6cf7e837)" bls_backend=BLST cmdParams="@[\"--network=spadina\", \"--log-level=DEBUG\", \"--log-file=build/data/shared_spadina_0/nbc_bn_20200927173328.log\", \"--data-dir=build/data/shared_spadina_0\", \"--web3-url=wss://goerli.infura.io/ws/v3/809a18497dd74102b5f37d25aae3c85a\", \"--tcp-port=9000\", \"--udp-port=9000\", \"--metrics\", \"--metrics-port=8008\", \"--rpc\", \"--rpc-port=9190\"]" config="(logLevel: \"DEBUG\", logFile: Some(build/data/shared_spadina_0/nbc_bn_20200927173328.log), eth2Network: Some(\"spadina\"), dataDir: build/data/shared_spadina_0, validatorsDirFlag: None[InputDir], secretsDirFlag: None[InputDir], walletsDirFlag: None[InputDir], web3Url: \"wss://goerli.infura.io/ws/v3/809a18497dd74102b5f37d25aae3c85a\", depositContractAddress: Some(0x48b597f4b53c21b48ad95c7256b49d1779bd5890), depositContractDeployedAt: Some(\"3384340\"), nonInteractive: false, cmd: noCommand, bootstrapNodes: @[\"# teku (@rolfyone)\", \"enr:-KG4QA-EcFfXQsL2dcneG8vp8HTWLrpwHQ5HhfyIytfpeKOISzROy2kYSsf_v-BZKnIx5XHDjqJ-ttz0hoz6qJA7tasEhGV0aDKQxKgkDQAAAAL__________4JpZIJ2NIJpcIQDFt-UiXNlY3AyNTZrMaECkR4C5DVO_9rB48eHTY4kdyOHsguTEDlvb7Ce0_mvghSDdGNwgiMog3VkcIIjKA\", \"\"], bootstrapNodesFile: , libp2pAddress: 0.0.0.0, tcpPort: 9000, udpPort: 9000, maxPeers: 79, nat: \"any\", validators: ..., stateSnapshot: None[InputFile], stateSnapshotContents: ..., runtimePreset: (GENESIS_FORK_VERSION: 00000002, GENESIS_DELAY: 172800, MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 1024, MIN_GENESIS_TIME: 1601380800, ETH1_FOLLOW_DISTANCE: 1024), nodeName: \"\", graffiti: None[GraffitiBytes], verifyFinalization: false, stopAtEpoch: 0, metricsEnabled: true, metricsAddress: 127.0.0.1, metricsPort: 8008, statusBarEnabled: true, statusBarContents: \"peers: $connected_peers;finalized: $finalized_root:$finalized_epoch;head: $head_root:$head_epoch:$head_epoch_slot;time: $epoch:$epoch_slot ($slot);sync: $sync_status|\", rpcEnabled: true, rpcPort: 9190, rpcAddress: 127.0.0.1, inProcessValidators: true, discv5Enabled: true, dumpEnabled: false)"
DBG 2020-09-27 17:33:28.500+02:00 Launching beacon node topics="beacnde" tid=8490483 file=beacon_node.nim:1190 version="0.5.0 (6cf7e837)" bls_backend=BLST cmdParams="@[\"--network=zinken\", \"--log-level=DEBUG\", \"--log-file=build/data/shared_zinken_0/nbc_bn_20200927173328.log\", \"--data-dir=build/data/shared_zinken_0\", \"--web3-url=wss://goerli.infura.io/ws/v3/809a18497dd74102b5f37d25aae3c85a\", \"--tcp-port=9000\", \"--udp-port=9000\", \"--metrics\", \"--metrics-port=8008\", \"--rpc\", \"--rpc-port=9190\"]" config="(logLevel: \"DEBUG\", logFile: Some(build/data/shared_zinken_0/nbc_bn_20200927173328.log), eth2Network: Some(\"zinken\"), dataDir: build/data/shared_zinken_0, validatorsDirFlag: None[InputDir], secretsDirFlag: None[InputDir], walletsDirFlag: None[InputDir], web3Url: \"wss://goerli.infura.io/ws/v3/809a18497dd74102b5f37d25aae3c85a\", depositContractAddress: Some(0x48b597f4b53c21b48ad95c7256b49d1779bd5890), depositContractDeployedAt: Some(\"3384340\"), nonInteractive: false, cmd: noCommand, bootstrapNodes: @[\"# teku (@rolfyone)\", \"enr:-KG4QA-EcFfXQsL2dcneG8vp8HTWLrpwHQ5HhfyIytfpeKOISzROy2kYSsf_v-BZKnIx5XHDjqJ-ttz0hoz6qJA7tasEhGV0aDKQxKgkDQAAAAL__________4JpZIJ2NIJpcIQDFt-UiXNlY3AyNTZrMaECkR4C5DVO_9rB48eHTY4kdyOHsguTEDlvb7Ce0_mvghSDdGNwgiMog3VkcIIjKA\", \"\"], bootstrapNodesFile: , libp2pAddress: 0.0.0.0, tcpPort: 9000, udpPort: 9000, maxPeers: 79, nat: \"any\", validators: ..., stateSnapshot: None[InputFile], stateSnapshotContents: ..., runtimePreset: (GENESIS_FORK_VERSION: 00000002, GENESIS_DELAY: 172800, MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 1024, MIN_GENESIS_TIME: 1601380800, ETH1_FOLLOW_DISTANCE: 1024), nodeName: \"\", graffiti: None[GraffitiBytes], verifyFinalization: false, stopAtEpoch: 0, metricsEnabled: true, metricsAddress: 127.0.0.1, metricsPort: 8008, statusBarEnabled: true, statusBarContents: \"peers: $connected_peers;finalized: $finalized_root:$finalized_epoch;head: $head_root:$head_epoch:$head_epoch_slot;time: $epoch:$epoch_slot ($slot);sync: $sync_status|\", rpcEnabled: true, rpcPort: 9190, rpcAddress: 127.0.0.1, inProcessValidators: true, discv5Enabled: true, dumpEnabled: false)"
INF 2020-09-27 17:33:31.018+02:00 Starting Eth1 deposit contract monitoring tid=8490483 file=mainchain_monitor.nim:758 contract=0x48b597f4b53c21b48ad95c7256b49d1779bd5890 url=web3(wss://goerli.infura.io/ws/v3/809a18497dd74102b5f37d25aae3c85a)
INF 2020-09-27 17:33:31.018+02:00 Waiting for new Eth1 block headers tid=8490483 file=mainchain_monitor.nim:415
INF 2020-09-27 17:33:46.213+02:00 Obtaining deposit log events tid=8490483 file=mainchain_monitor.nim:376 fromBlock=3384341 toBlock=3476604
INF 2020-09-27 17:33:56.912+02:00 Eth1 block processed tid=8490483 file=mainchain_monitor.nim:717 block=3423176:0ac7969b totalDeposits=1
```
> **Note:** when you run `make spadina`, the beacon node launches with an Infura endpoint supplied by us. This endpoint is passed through the `web3-url` option (which takes as input the url of the web3 server from which you'd like to observe the eth1 chain).
> **Note:** when you run `make zinken`, the beacon node launches with an Infura endpoint supplied by us. This endpoint is passed through the `web3-url` option (which takes as input the url of the web3 server from which you'd like to observe the eth1 chain).
>
> Because Infura caps the requests per endpoint per day to 100k, and all Nimbus nodes use the same Infura endpoint by default, it can happen that our Infura endpoint is overloaded (i.e the requests on a given day reach the 100k limit). If this happens, all requests to Infura using the default endpoint will fail, which means your node will stop processing new deposits.
>
@ -105,29 +105,29 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
If you deposited after the [genesis](https://hackmd.io/@benjaminion/genesis) state was decided (September 27th 1400 UTC), your validators will have been put in a queue based on deposit time, and will slowly be inducted into the validator set after genesis. Getting through the queue may take a few hours or a day or so.
The best way to keep track of your validator's status is [spadina.beaconcha.in](https://medalla.beaconcha.in) (click on the orange magnifying glass at the very top and paste in your validator's public key).
The best way to keep track of your validator's status is [zinken.beaconcha.in](https://medalla.beaconcha.in) (click on the orange magnifying glass at the very top and paste in your validator's public key).
You can even [create an account](https://spadina.beaconcha.in/register) to add alerts and keep track of your validator's [performance](https://spadina.beaconcha.in/dashboard).
You can even [create an account](https://zinken.beaconcha.in/register) to add alerts and keep track of your validator's [performance](https://zinken.beaconcha.in/dashboard).
Finally, makes sure you stay on the lookout for any critical updates to Nimbus. This best way to do so is through the **announcements** channel on our [discord](https://discord.com/invite/XRxWahP).
To update to the latest version, disconnect from `spadina` and run:
To update to the latest version, disconnect from `zinken` and run:
```
git pull && make update
```
Once the update is complete, run `make spadina` again to reconnect to the network.
Once the update is complete, run `make zinken` again to reconnect to the network.
Looking forward to seeing you on Spadina! 💛
Looking forward to seeing you on Zinken! 💛
----------
## Key management
Keys are stored in the `build/data/shared_spadina_0/` folder, under `secrets` and `validators` - make sure you keep these folders backed up.
Keys are stored in the `build/data/shared_zinken_0/` folder, under `secrets` and `validators` - make sure you keep these folders backed up.
The `secrets` folder contains the common secret that gives you access to all your validator keys.
@ -140,7 +140,7 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
Metrics are not included in the binary by default - to enable them, use the following options when starting the client:
```
make NIMFLAGS="-d:insecure" spadina
make NIMFLAGS="-d:insecure" zinken
```
You can then browse the metrics by connecting to:
@ -149,11 +149,11 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
Make sure this port is protected as the http server used is not considered secure (it should not be used by untrusted peers).
For instructions on how to spin up a beautiful and useful monitoring dashboard for your validator and beacon node, see [this page](./metrics-pretty-pictures.md) (note you'll need to replace all mention of `medalla` with `spadina`).
For instructions on how to spin up a beautiful and useful monitoring dashboard for your validator and beacon node, see [this page](./metrics-pretty-pictures.md) (note you'll need to replace all mention of `medalla` with `zinken`).
## Advanced options
N.B. All the options you're used to running with `medalla` should work as expected with `spadina`.
N.B. All the options you're used to running with `medalla` should work as expected with `zinken`.
### Change the TCP and UDP ports
@ -161,7 +161,7 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
To change the TCP and UDP ports from their default value of 9000 to 9100, say, run:
```
make BASE_PORT=9100 spadina
make BASE_PORT=9100 zinken
```
You may need to do this if you are running another client.
@ -173,21 +173,21 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
You can customise your beacon node's parameters using the `NODE_PARAMS` option:
```
make NODE_PARAMS="--tcp-port=9100 --udp-port=9100" spadina
make NODE_PARAMS="--tcp-port=9100 --udp-port=9100" zinken
```
>**Note:** the above command has exactly the same effect as `make BASE_PORT=9100 spadina`
>**Note:** the above command has exactly the same effect as `make BASE_PORT=9100 zinken`
A complete list of the available parameters can be found [here](https://github.com/status-im/nim-beacon-chain/blob/devel/beacon_chain/conf.nim#L92-L210) (use a parameter's `name` field to set it).
### Logs
Log files are saved in `build/data/shared_spadina_0/`.
Log files are saved in `build/data/shared_zinken_0/`.
### Makefile
If you are comfortable reading [Makefiles](https://en.wikipedia.org/wiki/Makefile#:~:text=A%20makefile%20is%20a%20file,to%20generate%20a%20target%2Fgoal), you can see the commands that `make spadina` executes under the hood, [here](https://github.com/status-im/nim-beacon-chain/blob/23bec993414df904e9d7ea9d26e65005b981aee0/Makefile#L184-L197).
If you are comfortable reading [Makefiles](https://en.wikipedia.org/wiki/Makefile#:~:text=A%20makefile%20is%20a%20file,to%20generate%20a%20target%2Fgoal), you can see the commands that `make zinken` executes under the hood, [here](https://github.com/status-im/nim-beacon-chain/blob/23bec993414df904e9d7ea9d26e65005b981aee0/Makefile#L184-L197).
Some of the provided options (such as `--network`) are essential while others (such as the ones controlling logging, metrics, ports, and the RPC service) are optional and included for the sake convenience.
@ -197,10 +197,8 @@ This tutorial assumes basic knowledge of the [command line](https://www.learneno
- [ethstaker discord](https://discord.com/invite/e84CFep): great place for tips and discussions
- [Validator launchpad](https://spadina.launchpad.ethereum.org): to send Spadina deposits
- [Validator launchpad](https://zinken.launchpad.ethereum.org): to send Zinken deposits
- [Beacon chain explorer](https://spadina.beaconcha.in/) : to monitor testnet health
- [Reddit /r/ethstaker community](https://www.reddit.com/r/ethstaker/comments/iy3c6t/announcing_the_spadina_testnet_launch_viewing/) : to attend the launch viewing party (rumour has it that there will be a POAP for viewing the live stream of this call)
- [Beacon chain explorer](https://zinken.beaconcha.in/) : to monitor testnet health
- [Nimbus discord](https://discord.com/invite/XRxWahP) : best place to ask questions and to stay up-to-date with critical updates

@ -1 +1 @@
Subproject commit d4e434148b851ef5baecbd289ac9df6c4fb62d47
Subproject commit d7cada91d64fea01adf9c932353ca95789da0b6a