From 388530bbe44452dad28225325ee02f4cb322fb4f Mon Sep 17 00:00:00 2001 From: pk910 Date: Thu, 24 Aug 2023 09:47:40 +0200 Subject: [PATCH] small fixes for clients page --- indexer/client.go | 32 ++++++++++++++++---------------- templates/clients/clients.html | 10 +++++----- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/indexer/client.go b/indexer/client.go index d434612c..bb013ea9 100644 --- a/indexer/client.go +++ b/indexer/client.go @@ -67,10 +67,10 @@ func (client *IndexerClient) GetLastHead() (int64, []byte) { } func (client *IndexerClient) GetStatus() string { - if !client.isConnected { - return "disconnected" - } else if client.isSynchronizing { + if client.isSynchronizing { return "synchronizing" + } else if !client.isConnected { + return "disconnected" } else { return "ready" } @@ -119,6 +119,16 @@ func (client *IndexerClient) runIndexerClient() error { return fmt.Errorf("genesis fork version from RPC does not match the genesis fork version explorer configuration") } + // get latest header + latestHeader, err := client.rpcClient.GetLatestBlockHead() + if err != nil { + return fmt.Errorf("could not get latest header: %v", err) + } + if latestHeader == nil { + return fmt.Errorf("could not find latest header") + } + client.setHeadBlock(latestHeader.Data.Root, uint64(latestHeader.Data.Header.Message.Slot)) + // check syncronization state syncStatus, err := client.rpcClient.GetNodeSyncing() if err != nil { @@ -132,6 +142,9 @@ func (client *IndexerClient) runIndexerClient() error { if syncStatus.Data.IsSyncing || syncStatus.Data.IsOptimistic { return fmt.Errorf("beacon node is synchronizing") } + if client.indexerCache.finalizedEpoch >= 0 && utils.EpochOfSlot(uint64(latestHeader.Data.Header.Message.Slot)) <= uint64(client.indexerCache.finalizedEpoch) { + return fmt.Errorf("client is far behind - head is before synchronized checkpoint") + } // get finalized header finalizedHeader, err := client.rpcClient.GetFinalizedBlockHead() @@ -147,19 +160,6 @@ func (client *IndexerClient) runIndexerClient() error { client.cacheMutex.Unlock() } - // get latest header - latestHeader, err := client.rpcClient.GetLatestBlockHead() - if err != nil { - return fmt.Errorf("could not get latest header: %v", err) - } - if latestHeader == nil { - return fmt.Errorf("could not find latest header") - } - client.setHeadBlock(latestHeader.Data.Root, uint64(latestHeader.Data.Header.Message.Slot)) - if client.indexerCache.finalizedEpoch >= 0 && utils.EpochOfSlot(uint64(latestHeader.Data.Header.Message.Slot)) <= uint64(client.indexerCache.finalizedEpoch) { - return fmt.Errorf("client is far behind - head is before synchronized checkpoint") - } - logger.WithField("client", client.clientName).Debugf("endpoint %v ready: %v ", client.clientName, client.versionStr) client.retryCounter = 0 diff --git a/templates/clients/clients.html b/templates/clients/clients.html index 74804239..bf7eaedd 100644 --- a/templates/clients/clients.html +++ b/templates/clients/clients.html @@ -18,10 +18,10 @@

Clients

# Name - Version Head Slot Head Root Status + Version @@ -29,20 +29,20 @@

Clients

{{ $client.Index }} {{ $client.Name }} - {{ $client.Version }} {{ formatAddCommas $client.HeadSlot }} 0x{{ printf "%x" $client.HeadRoot }} {{ if eq $client.Status "ready" }} Connected - {{ else if eq $client.Status "syncing" }} - Synchronizing + {{ else if eq $client.Status "synchronizing" }} + Synchronizing {{ else if eq $client.Status "disconnected" }} Disconnected {{ else }} - Unknown + {{ $client.Status }} {{ end }} + {{ $client.Version }} {{ end }}