Skip to content
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

Allow running beacon chain node without connecting to Ethereum 1 node #8209

Closed
mFarghaly opened this issue Jan 5, 2021 · 4 comments · Fixed by #8614
Closed

Allow running beacon chain node without connecting to Ethereum 1 node #8209

mFarghaly opened this issue Jan 5, 2021 · 4 comments · Fixed by #8614
Assignees
Labels
Enhancement New feature or request

Comments

@mFarghaly
Copy link

💎 Issue

Background

All other Ethereum 2.0 clients like Teku, Nimbus, and Lighthouse allow running Beacon chain node without connecting to Ethereum 1 JSON RPC endpoint.
Prysm can't start without Ethereum 1 endpoint and panic with error:

time="2021-01-05 16:21:58" level=fatal msg="cannot create genesis state: no eth1 http endpoint defined" prefix=powchain

Description

Make --http-web3provider optional. So beacon node can start without connecting to Ethereum 1 endpoint and to be compliant with the behavior of other Ethereum 2.0 clients.

@potuz

@prestonvanloon
Copy link
Member

We could achieve this is Prysm shipped with the genesis state already.
At a minimum, an ETH1 connection is required to generate the genesis state from the deposits so if Prysm already included the genesis state then ETH1 conection is not necessary for a non-proposing beacon node.

#8210 (comment)

@terencechain terencechain added the Enhancement New feature or request label Jan 6, 2021
@shayzluf
Copy link
Contributor

Working on it

@shayzluf shayzluf self-assigned this Jan 28, 2021
@q9f
Copy link
Contributor

q9f commented Jan 28, 2021

As discussed on Discord, it currently takes very long to fetch the eth1 deposits.

time="2021-01-28 16:48:28" level=warning msg="Running on ETH2 Mainnet" prefix=flags
time="2021-01-28 16:48:28" level=info msg="Using "max_cover" strategy on attestation aggregation" prefix=flags
time="2021-01-28 16:48:28" level=info msg="Checking DB" database-path="/srv/chain/prysm/beaconchaindata" prefix=node
time="2021-01-28 16:48:28" level=info msg="Deposit contract: 0x00000000219ab540356cbb839cbe05303d7705fa" prefix=node
time="2021-01-28 16:48:28" level=info msg="Waiting for state to be initialized" prefix=initial-sync
time="2021-01-28 16:48:28" level=info msg="Starting beacon node" prefix=node version="Prysm/v1.1.0/9b367b36fc12ecf565ad649209aa2b5bba8c7797. Built at: 2021-01-18 19:47:14+00:00"
time="2021-01-28 16:48:28" level=info msg="Starting JSON-HTTP API" address="127.0.0.1:3500" prefix=gateway
time="2021-01-28 16:48:28" level=info msg="Waiting to reach the validator deposit threshold to start the beacon chain..." prefix=blockchain
time="2021-01-28 16:48:28" level=info msg="gRPC server listening on port" address="127.0.0.1:4000" prefix=rpc
time="2021-01-28 16:48:28" level=warning msg="You are using an insecure gRPC server. If you are running your beacon node and validator on the same machines, you can ignore this message. If you want to know how to enable secure connections, see: https://docs.prylabs.network/docs/prysm-usage/secure-grpc" prefix=rpc
time="2021-01-28 16:48:28" level=info msg="Connected to eth1 proof-of-work chain" endpoint="https://mainnet.infura.io/v3/492[...]e5a" prefix=powchain
time="2021-01-28 16:48:33" level=info msg="New gRPC client connected to beacon node" addr="127.0.0.1:59392" prefix=rpc
time="2021-01-28 17:00:00" level=info msg="Processing deposits from Ethereum 1 chain" deposits=512 genesisValidators=507 prefix=powchain
time="2021-01-28 17:04:06" level=info msg="Processing deposits from Ethereum 1 chain" deposits=1024 genesisValidators=1019 prefix=powchain
time="2021-01-28 17:26:03" level=info msg="Processing deposits from Ethereum 1 chain" deposits=1536 genesisValidators=1531 prefix=powchain
time="2021-01-28 17:53:20" level=info msg="Processing deposits from Ethereum 1 chain" deposits=2048 genesisValidators=2043 prefix=powchain
time="2021-01-28 17:58:26" level=info msg="Processing deposits from Ethereum 1 chain" deposits=2560 genesisValidators=2555 prefix=powchain
time="2021-01-28 18:09:49" level=info msg="Processing deposits from Ethereum 1 chain" deposits=3072 genesisValidators=3067 prefix=powchain

@mrabino1
Copy link
Contributor

At some point presumably ETH1 and ETH2 will merge, so there is good as there is possible logical paradox to address of post-merge what would prysm query? itself? and at the same time, there should also be an option (flag) to cause it to be reverified if someone "really" wants to process the deposits (for purity reasons).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request
Projects
None yet
6 participants