prysmaticlabs / prysm

Go implementation of Ethereum proof of stake
https://www.offchainlabs.com/
GNU General Public License v3.0
3.41k stars 961 forks source link

Devnet: logs of committeeIndices are all zeros but pubkeys are different to each other. #13856

Closed DoHaiSon closed 3 months ago

DoHaiSon commented 3 months ago

Describe the bug

I start a devnet following this guide: https://docs.prylabs.network/docs/advanced/proof-of-stake-devnet

Everything is okay, but I found that logs at the validator client show an incorrect index of validators in a committee. The logs are as follows:

[2024-04-06 22:22:39] INFO client: Submitted new attestations blockRoot=0x49a15fb38290 committeeIndices=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] pubkeys=[0xb1f1bf19d16b 0xa699a9ae245f 0x816041fcbab7 0xa2a1eb8e6be9 0xaff02f363555 0xb01470bea200 0x877c1fc380e9 0xa4e2f5a41959 0x915fdf1928be 0xa6ce16d93959 0xa8e3c2d3ac4e 0xafe6eface52f 0x92c237d7fb49 0xa7f12eb23800 0x822b8df1139b 0xa99fad87b88f 0xac16a5c241ec 0x9314c6de0386 0xb5f2498c661c 0x80f23973b414 0x97f99d0777e9 0xa24dd1ce8d1d 0xa8be337b3d0e 0x8a588dc8986a 0xae99451101dd 0x9685e2fb1018 0xafeae8ce7b00 0x8d92d91ccf25 0xa6be6fc30a56 0xb00c6d2cf271 0x807aaac03d96] slot=16 sourceEpoch=0 sourceRoot=0x000000000000 targetEpoch=0 targetRoot=0x4286e4725055

Has this worked before in a previous version?

I'm not sure.

🔬 Minimal Reproduction

Go-ethereum: 1.13.14 Prysm: 5.0.2

Prysmctl

./prysmctl testnet generate-genesis --fork capella --num-validators 1000 --genesis-time-delay 120 \ --chain-config-file config.yml --geth-genesis-json-in genesis.json --geth-genesis-json-out genesis.json --output-ssz genesis.ssz

Geth

./geth --http --http.api="engine,eth,net,web3,personal,txpool" \ --ws.api="engine,net,web3,personal,txpool" \ --bootnodes "" \ --authrpc.jwtsecret jwt.hex --datadir gethdata \ --syncmode full --allow-insecure-unlock --unlock 0x123463a4b065722e99115d6c222f267d9cabb524 --password="" \ --http.addr 127.0.0.1 --http.port 8545 \ --ws --ws.addr 127.0.0.1 --ws.port 8546 \ --nat=extip:127.0.0.1 \ --networkid 1 console

Beacon-chain

./beacon-chain --datadir beacondata --min-sync-peers 0 \ --genesis-state genesis.ssz --bootstrap-node= --interop-eth1data-votes --chain-config-file config.yml \ --contract-deployment-block 0 --chain-id 2024 --accept-terms-of-use --jwt-secret jwt.hex \ --suggested-fee-recipient 0x123463a4B065722E99115D6c222f267d9cABb524 --minimum-peers-per-subnet 0 \ --enable-debug-rpc-endpoints --execution-endpoint gethdata/geth.ipc \ --bootstrap-node=""

Validators

./validator --datadir validatordata --accept-terms-of-use --interop-num-validators 1000 --chain-config-file config.yml

Error

`[2024-04-06 22:22:39]  INFO client: Submitted new attestations blockRoot=0x49a15fb38290 committeeIndices=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] pubkeys=[0xb1f1bf19d16b 0xa699a9ae245f 0x816041fcbab7 0xa2a1eb8e6be9 0xaff02f363555 0xb01470bea200 0x877c1fc380e9 0xa4e2f5a41959 0x915fdf1928be 0xa6ce16d93959 0xa8e3c2d3ac4e 0xafe6eface52f 0x92c237d7fb49 0xa7f12eb23800 0x822b8df1139b 0xa99fad87b88f 0xac16a5c241ec 0x9314c6de0386 0xb5f2498c661c 0x80f23973b414 0x97f99d0777e9 0xa24dd1ce8d1d 0xa8be337b3d0e 0x8a588dc8986a 0xae99451101dd 0x9685e2fb1018 0xafeae8ce7b00 0x8d92d91ccf25 0xa6be6fc30a56 0xb00c6d2cf271 0x807aaac03d96] slot=16 sourceEpoch=0 sourceRoot=0x000000000000 targetEpoch=0 targetRoot=0x4286e4725055
`

Platform(s)

Linux (x86)

What version of Prysm are you running? (Which release)

5.0.2

Anything else relevant (validator index / public key)?

No response

rkapka commented 3 months ago

These are not validator indices. These are committee indices (each slot can have multiple attestation committees). In your case there is probably only one committee and that's why all validators are assigned to the same 0 committee.