-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Mega Tracking] Successfully Running Beacon Node + 8 Validators #1565
Comments
Issue with the validators being assigned as proposer/attester in same slot is due to the pigeonhole principle when using a committee size of 1 or 2 with a shard count of 1. In production this case will happen extremely rarely, as we will also have a higher shard count. |
Going to continue doing some local tests today to see if we can consistently reach the success scenario of validators performing their responsibility. Will identify any bugs and add any issues if necessary, if not, then we can close this. |
I'll join you with this after I wrap up operations pool work in an hour |
This is a tracking issue for required fixes to the repo to allow us to run a local testnet of one beacon node and 8 connected validator clients with a deposit contract deployed on goerli. This local config should successfully perform shuffling, assignments, and validators should successfully perform their responsibility. I was able to successfully do this locally after encountering many bugs and features we need to fix. This is a tracking issue for all of these required fixes so our runtime will work on the master branch.
NOTE: This local testnet does NOT include incoming deposits post ChainStart or any slashings of any kind
EpochCommitteeCount
,maxCommiteeCount
will be 0 currently if we pick a low enough shard count, given it is calculated as SHARD_COUNT / EPOCH_LENGTH, and in a custom config with 1 shard and epoch of 8, 1 / 8 returns 0How to Run Local Configuration
First, deploy our deposit contract to goerli using the command
Then, copy the contract address in the output above and spin up a beacon node (MAKE SURE YOU USE A NEW DATA DIRECTORY) with:
Then, create 8 validator accounts with a unique keystore path each time using the command:
Copy the output hex data to your clipboard as you will need it later.
Next, run 8 validator clients in separate terminal windows:
Next, using the deposit data hex string from the account creation, for each validator, add it to the javascript list called
depositData = [];
as shown below:Then, navigate to a web3 enabled website such as etherscan.io, open the javascript console, and paste in the js from above. Metamask will ask to confirm 8 transactions. Make sure your beacon node and 8 validators are running, and then press confirm. Then, the system will begin as ChainStart will be reached and validators will begin their responsibilities!
The text was updated successfully, but these errors were encountered: