https://github.com/protolambda/toledo
Toledo Eth2 testnet
https://github.com/protolambda/toledo
Last synced: about 2 months ago
JSON representation
Toledo Eth2 testnet
- Host: GitHub
- URL: https://github.com/protolambda/toledo
- Owner: protolambda
- Created: 2020-11-06T21:31:40.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-11-11T07:23:12.000Z (over 4 years ago)
- Last Synced: 2025-02-09T02:15:22.392Z (3 months ago)
- Size: 378 KB
- Stars: 3
- Watchers: 3
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Toledo testnet

*Toledo metro station, Naples, italy. [Photo: BaileyParsonsNL, CC SA 4.0](https://commons.wikimedia.org/wiki/File:Toledo_metro_station_(J).jpg)*
A temporary dev-net to test the first v1.0.0 client candidates.
**Explorer: https://toledo.beaconcha.in/**
**Eth2stats: https://toledo.eth2.wtf/**
The genesis validator set is split in 8 tranches of 2048 validators.
Contact @protolambda if you are a developer that likes to run validators.
Client dev teams will be provided 1 tranche each.## Config
Chain config file in **[`config.yaml`](./config.yaml)**
Bootnodes in [`bootnodes.txt`](./bootnodes.txt)
Differences with regular mainnet config:
```yaml
deposit_contract_address: "0x47709dC7a8c18688a1f051761fc34ac253970bC0"
deposit_contract_deploy_block_nr: 3702432
deposit_contract_deploy_tx: "0x2b093a40f4e1e8ede6fc049abf4ae87cb424ffacca2e759aa05cfd1d3881ec99"
eth2_fork_version: "0x00701ED0"
MIN_GENESIS_TIME: 1605009600 # Tuesday, November 10, 2020 12:00:00 PM
GENESIS_DELAY: 86400 # 1 day
```[`0x47709dC7a8c18688a1f051761fc34ac253970bC0` on etherscan](https://goerli.etherscan.io/address/0x47709dc7a8c18688a1f051761fc34ac253970bc0)
Misc. data:
```yaml
# Fork digest, mixed with zeroed genesis validators root:
bootnode_fork_digest: 0xb812f7ec
# curl localhost:4000/eth/v1/beacon/genesis
# The genesis time, after waiting for a good eth1 candidate block etc.
actual_genesis_time: 1605009608
genesis_validators_root: 0xf97c437ca276ed2ff83f9cb2ce4387cbfda8a825c77154c7bf76c668a2218de6
# curl localhost:4000/eth/v1/beacon/states/genesis/root
genesis_state_root: 0x881c6014f67e4ed9fb01eaac1e115a05851c2092e62f0360e8f9deec6f08baa3
# curl localhost:4000/eth/v1/beacon/blocks/genesis/root
genesis_block_root: 0xa7ad6516d0f223d3e9035c6434aa5ab5496f631c42401f812e428004e14533d3
```## Eth2stats
Eth2stats dashboard: https://toledo.eth2.wtf
Example to participate:
```
docker run -d --restart always --network="host" \
--name eth2stats-client \
-v ~/.eth2stats/data:/data \
alethio/eth2stats-client:latest run \
--eth2stats.node-name="example node" \
--data.folder="/data" \
--eth2stats.addr="grpc.toledo.eth2.wtf:8080" --eth2stats.tls=false \
--beacon.type="v1" \
--beacon.addr="http://localhost:5052" \
--beacon.metrics-addr="http://localhost:5054/metrics"
```More info about eth2stats in the [eth2stats-client repo](https://github.com/Alethio/eth2stats-client/blob/master/README.md)
## Using your testnet mnemonic
For client devs:
1. get a pre-loaded mnemonic from @protolambda to participate.
2. Load the first 2048 accounts, output into keystores or other format
3. Use keystores to participate!*__Not__ recommended for mainnet*, but easy to use here: https://github.com/protolambda/eth2-val-tools
Example to build keystores (and random keystore secrets + config files) for a range of accounts,
along with an json file that tracks assignments:```shell script
mkdir -p example_output/hosts# assign 100 random accounts to "foobar" host
eth2-val-tools assign \
--assignments="example_output/assignments.json" \
--hostname="foobar" \
--out-loc="example_output/hosts/foobar" \
--source-mnemonic="$SOURCE_WALLET_VALIDATORS_MNEMONIC" \
--source-min=0 \
--source-max=2048 \
--count=100 \
--config-base-path="/data" \
--key-man-loc="/data/wallets" \
--wallet-name="foobar"# and assign another 100 to "pineapple" host (no overlaps, previous assignments are loaded from json file)
eth2-val-tools assign \
--assignments="example_output/assignments.json" \
--hostname="pineapple" \
--out-loc="example_output/hosts/pineapple" \
--source-mnemonic="$SOURCE_WALLET_VALIDATORS_MNEMONIC" \
--source-min=0 \
--source-max=2048 \
--count=100 \
--config-base-path="/data" \
--key-man-loc="/data/wallets" \
--wallet-name="pineapple"
```Or alternatively, use your own tooling.
The accounts loaded with deposits are `[f"m/12381/3600/{i}/0/0" for i in range(2048)]`
The latest Ethdo libraries and Herumi BLS were used to derive private keys from the mnemonic (not sure if updated to new mnemonic derivation yet).## Client configuration
Work in progress. Client configurations are unconfirmed.
Previously there were subtle differences in config formatting.
These are being resolved.### Prysm
Run the `v1.0.0-rc.0` branch
Or use docker images:
```yaml
beacon_image_name: gcr.io/prysmaticlabs/prysm/beacon-chain:toledo
validator_image_name: gcr.io/prysmaticlabs/prysm/validator:toledo
```#### Beacon node
```
--toledo
```#### Validator
```
--toledo
```### Lighthouse
Use the [`toledo`](https://github.com/sigp/lighthouse/pull/1874) branch (until that PR is merged into master).
#### Beacon node
```
--testnet toledo
```#### Validator
```
--testnet toledo
```### Teku
#### Beacon node & validator
```
--network=toledo
```### Nimbus
Run `devel` or `master` branch
#### Beacon node
Prepare a binary with insecure/experimental features enabled:
```shell script
make -j8 LOG_LEVEL="TRACE" NIMFLAGS="-d:insecure" beacon_node
```Use the `toledo` network option.
```
--network=toledo
```
]#### Validator
No configuration necessary, fork version etc. are loaded from the beacon node.
Prepare a binary with insecure/experimental features enabled:
```shell script
make -j8 LOG_LEVEL="TRACE" NIMFLAGS="-d:insecure" validator_client
```## Q & A
### How do I participate?
This is a dev-net. A more public testnet will launch about a week later.
If you reach out we can give you instructions to get started as non-dev.
You can join the network and run a beacon-node.
The deposit contract is permissioned, deposits won't work as regular user.### Why?
Time to get clients ready for v1.0.0! Starting relatively small, and then bigger!
### What is that image?
Yes, Toledo is also a city and municipality in Spain.
This is another Toledo: [Toledo Via in Naples, Italy](https://en.wikipedia.org/wiki/Via_Toledo) and [its metro station](https://en.wikipedia.org/wiki/Toledo_(Naples_Metro)) filled with art.