Skip to content

Commit

Permalink
replace babylon retry do
Browse files Browse the repository at this point in the history
  • Loading branch information
Lazar955 committed Sep 2, 2024
1 parent 263591a commit 939ce13
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 24 deletions.
30 changes: 21 additions & 9 deletions btcclient/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package btcclient
import (
"fmt"

"github.com/babylonlabs-io/babylon/types/retry"
"github.com/avast/retry-go/v4"
"github.com/btcsuite/btcd/btcjson"
"github.com/btcsuite/btcd/chaincfg/chainhash"
"github.com/btcsuite/btcd/wire"
Expand Down Expand Up @@ -66,13 +66,16 @@ func (c *Client) getBestBlockHashWithRetry() (*chainhash.Hash, error) {
err error
)

if err := retry.Do(c.retrySleepTime, c.maxRetrySleepTime, func() error {
if err := retry.Do(func() error {
blockHash, err = c.GetBestBlockHash()
if err != nil {
return err
}
return nil
}); err != nil {
},
retry.Delay(c.retrySleepTime),
retry.MaxDelay(c.maxRetrySleepTime),
); err != nil {
c.logger.Debug(
"failed to query the best block hash", zap.Error(err))
}
Expand All @@ -86,13 +89,16 @@ func (c *Client) getBlockHashWithRetry(height uint64) (*chainhash.Hash, error) {
err error
)

if err := retry.Do(c.retrySleepTime, c.maxRetrySleepTime, func() error {
if err := retry.Do(func() error {
blockHash, err = c.GetBlockHash(int64(height))
if err != nil {
return err
}
return nil
}); err != nil {
},
retry.Delay(c.retrySleepTime),
retry.MaxDelay(c.maxRetrySleepTime),
); err != nil {
c.logger.Debug(
"failed to query the block hash", zap.Uint64("height", height), zap.Error(err))
}
Expand All @@ -106,13 +112,16 @@ func (c *Client) getBlockWithRetry(hash *chainhash.Hash) (*wire.MsgBlock, error)
err error
)

if err := retry.Do(c.retrySleepTime, c.maxRetrySleepTime, func() error {
if err := retry.Do(func() error {
block, err = c.GetBlock(hash)
if err != nil {
return err
}
return nil
}); err != nil {
},
retry.Delay(c.retrySleepTime),
retry.MaxDelay(c.maxRetrySleepTime),
); err != nil {
c.logger.Debug(
"failed to query the block", zap.String("hash", hash.String()), zap.Error(err))
}
Expand All @@ -126,13 +135,16 @@ func (c *Client) getBlockVerboseWithRetry(hash *chainhash.Hash) (*btcjson.GetBlo
err error
)

if err := retry.Do(c.retrySleepTime, c.maxRetrySleepTime, func() error {
if err := retry.Do(func() error {
blockVerbose, err = c.GetBlockVerbose(hash)
if err != nil {
return err
}
return nil
}); err != nil {
},
retry.Delay(c.retrySleepTime),
retry.MaxDelay(c.maxRetrySleepTime),
); err != nil {
c.logger.Debug(
"failed to query the block verbose", zap.String("hash", hash.String()), zap.Error(err))
}
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ require (
cosmossdk.io/errors v1.0.1
cosmossdk.io/log v1.3.1
cosmossdk.io/math v1.3.0
github.com/avast/retry-go/v4 v4.5.1
github.com/avast/retry-go/v4 v4.6.0
github.com/babylonlabs-io/babylon v0.9.1
github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d
github.com/btcsuite/btcd v0.24.2
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -275,8 +275,8 @@ github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
github.com/avast/retry-go/v4 v4.5.1 h1:AxIx0HGi4VZ3I02jr78j5lZ3M6x1E0Ivxa6b0pUUh7o=
github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3XrCQYSOpc=
github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA=
github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE=
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
Expand Down
9 changes: 6 additions & 3 deletions reporter/reporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (
"sync"
"time"

"github.com/avast/retry-go/v4"
"github.com/babylonlabs-io/babylon/btctxformatter"
"github.com/babylonlabs-io/babylon/types/retry"
btcctypes "github.com/babylonlabs-io/babylon/x/btccheckpoint/types"
"github.com/babylonlabs-io/vigilante/btcclient"
"github.com/babylonlabs-io/vigilante/config"
Expand Down Expand Up @@ -57,10 +57,13 @@ func New(
btccParamsRes *btcctypes.QueryParamsResponse
err error
)
err = retry.Do(retrySleepTime, maxRetrySleepTime, func() error {
err = retry.Do(func() error {
btccParamsRes, err = babylonClient.BTCCheckpointParams()
return err
})
},
retry.Delay(retrySleepTime),
retry.MaxDelay(maxRetrySleepTime),
)
if err != nil {
return nil, fmt.Errorf("failed to get BTC Checkpoint parameters: %w", err)
}
Expand Down
18 changes: 12 additions & 6 deletions reporter/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (

pv "github.com/cosmos/relayer/v2/relayer/provider"

"github.com/babylonlabs-io/babylon/types/retry"
"github.com/avast/retry-go/v4"
btcctypes "github.com/babylonlabs-io/babylon/x/btccheckpoint/types"
btclctypes "github.com/babylonlabs-io/babylon/x/btclightclient/types"
"github.com/babylonlabs-io/vigilante/types"
Expand All @@ -33,10 +33,13 @@ func (r *Reporter) getHeaderMsgsToSubmit(signer string, ibs []*types.IndexedBloc
for i, header := range ibs {
blockHash := header.BlockHash()
var res *btclctypes.QueryContainsBytesResponse
err = retry.Do(r.retrySleepTime, r.maxRetrySleepTime, func() error {
err = retry.Do(func() error {
res, err = r.babylonClient.ContainsBTCBlock(&blockHash)
return err
})
},
retry.Delay(r.retrySleepTime),
retry.MaxDelay(r.maxRetrySleepTime),
)
if err != nil {
return nil, err
}
Expand All @@ -57,7 +60,7 @@ func (r *Reporter) getHeaderMsgsToSubmit(signer string, ibs []*types.IndexedBloc

blockChunks := chunkBy(ibsToSubmit, int(r.Cfg.MaxHeadersInMsg))

headerMsgsToSubmit := []*btclctypes.MsgInsertHeaders{}
headerMsgsToSubmit := make([]*btclctypes.MsgInsertHeaders, 0, len(blockChunks))

for _, ibChunk := range blockChunks {
msgInsertHeaders := types.NewMsgInsertHeaders(signer, ibChunk)
Expand All @@ -69,14 +72,17 @@ func (r *Reporter) getHeaderMsgsToSubmit(signer string, ibs []*types.IndexedBloc

func (r *Reporter) submitHeaderMsgs(msg *btclctypes.MsgInsertHeaders) error {
// submit the headers
err := retry.Do(r.retrySleepTime, r.maxRetrySleepTime, func() error {
err := retry.Do(func() error {
res, err := r.babylonClient.InsertHeaders(context.Background(), msg)
if err != nil {
return err
}
r.logger.Infof("Successfully submitted %d headers to Babylon with response code %v", len(msg.Headers), res.Code)
return nil
})
},
retry.Delay(r.retrySleepTime),
retry.MaxDelay(r.maxRetrySleepTime),
)
if err != nil {
r.metrics.FailedHeadersCounter.Add(float64(len(msg.Headers)))
return fmt.Errorf("failed to submit headers: %w", err)
Expand Down
9 changes: 6 additions & 3 deletions submitter/submitter.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import (
"sync"
"time"

"github.com/avast/retry-go/v4"
"github.com/babylonlabs-io/babylon/btctxformatter"
"github.com/babylonlabs-io/babylon/types/retry"
btcctypes "github.com/babylonlabs-io/babylon/x/btccheckpoint/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"go.uber.org/zap"
Expand Down Expand Up @@ -48,10 +48,13 @@ func New(
btccheckpointParams *btcctypes.QueryParamsResponse
err error
)
err = retry.Do(retrySleepTime, maxRetrySleepTime, func() error {
err = retry.Do(func() error {
btccheckpointParams, err = queryClient.BTCCheckpointParams()
return err
})
},
retry.Delay(retrySleepTime),
retry.MaxDelay(maxRetrySleepTime),
)
if err != nil {
return nil, fmt.Errorf("failed to get checkpoint params: %w", err)
}
Expand Down

0 comments on commit 939ce13

Please sign in to comment.