mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-09 11:11:20 +00:00
6baffd4ccb
* Add validators stream * Ignore unknown keys rather than error on them * Reduce accesses to common structures * Ensure correct information returned for deposited validators * Short-term cache for remote deposit data * Name epoch duration for clarity * Break out duplicated logic in to a single function * Add capacities for slices and maps where appropriate * Break out functions; add tests * Allow stream errors not related to context Co-authored-by: Nishant Das <nish1993@hotmail.com> Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
42 lines
1.6 KiB
Go
42 lines
1.6 KiB
Go
package beacon
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/blockchain"
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/cache/depositcache"
|
|
blockfeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/block"
|
|
statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state"
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/operations/attestations"
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/operations/slashings"
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/powchain"
|
|
pbp2p "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1"
|
|
"github.com/prysmaticlabs/prysm/shared/slotutil"
|
|
)
|
|
|
|
// Server defines a server implementation of the gRPC Beacon Chain service,
|
|
// providing RPC endpoints to access data relevant to the Ethereum 2.0 phase 0
|
|
// beacon chain.
|
|
type Server struct {
|
|
BeaconDB db.ReadOnlyDatabase
|
|
Ctx context.Context
|
|
ChainStartFetcher powchain.ChainStartFetcher
|
|
HeadFetcher blockchain.HeadFetcher
|
|
FinalizationFetcher blockchain.FinalizationFetcher
|
|
ParticipationFetcher blockchain.ParticipationFetcher
|
|
DepositFetcher depositcache.DepositFetcher
|
|
BlockFetcher powchain.POWBlockFetcher
|
|
GenesisTimeFetcher blockchain.TimeFetcher
|
|
StateNotifier statefeed.Notifier
|
|
BlockNotifier blockfeed.Notifier
|
|
AttestationsPool attestations.Pool
|
|
SlashingsPool *slashings.Pool
|
|
IncomingAttestation chan *ethpb.Attestation
|
|
CanonicalStateChan chan *pbp2p.BeaconState
|
|
ChainStartChan chan time.Time
|
|
SlotTicker slotutil.Ticker
|
|
}
|