From ad3a684fd47cee226c9c90141ddd324198500791 Mon Sep 17 00:00:00 2001 From: DeepakBomjan <44976635+DeepakBomjan@users.noreply.github.com> Date: Thu, 14 Sep 2023 09:26:28 +0545 Subject: [PATCH 1/4] ci: fix missing version info of rly binary (#174) --- .goreleaser.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index a965ce851..94b36d795 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -13,7 +13,7 @@ builds: flags: - -mod=readonly ldflags: - - -s -w -X github.com/icon-project/ibc-relay/v2/cmd.Version={{ .Tag }} + - -s -w -X github.com/cosmos/relayer/v2/cmd.Version={{ .Tag }} - id: darwin-arm64 main: ./main.go binary: rly @@ -27,7 +27,7 @@ builds: flags: - -mod=readonly ldflags: - - -s -w -X github.com/icon-project/ibc-relay/v2/cmd.Version={{ .Tag }} + - -s -w -X github.com/cosmos/relayer/v2/cmd.Version={{ .Tag }} - id: linux-amd64 main: ./main.go binary: rly @@ -41,7 +41,7 @@ builds: flags: - -mod=readonly ldflags: - - -s -w -X github.com/icon-project/ibc-relay/v2/cmd.Version={{ .Tag }} + - -s -w -X github.com/cosmos/relayer/v2/cmd.Version={{ .Tag }} - id: linux-arm64 main: ./main.go binary: rly From 2efb6e38ce2c3238862a839298d0ec37c0931e9b Mon Sep 17 00:00:00 2001 From: izyak <76203436+izyak@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:57:54 +0545 Subject: [PATCH 2/4] fix: no error if recover signature fails (#178) Co-authored-by: viveksharmapoudel --- relayer/chains/icon/utils.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/relayer/chains/icon/utils.go b/relayer/chains/icon/utils.go index 167172356..4afa9e369 100644 --- a/relayer/chains/icon/utils.go +++ b/relayer/chains/icon/utils.go @@ -49,7 +49,7 @@ func MptProve(key types.HexInt, proofs [][]byte, hash []byte) ([]byte, error) { func Base64ToData(encoded string, v interface{}) ([]byte, error) { if encoded == "" { - return nil, fmt.Errorf("Encoded string is empty ") + return nil, fmt.Errorf("encoded string is empty ") } decoded, err := base64.StdEncoding.DecodeString(encoded) @@ -63,11 +63,11 @@ func Base64ToData(encoded string, v interface{}) ([]byte, error) { func HexBytesToProtoUnmarshal(encoded types.HexBytes, v proto.Message) ([]byte, error) { inputBytes, err := encoded.Value() if err != nil { - return nil, fmt.Errorf("Error unmarshalling HexByte") + return nil, fmt.Errorf("error unmarshalling HexByte") } if bytes.Equal(inputBytes, make([]byte, 0)) { - return nil, fmt.Errorf("Encoded hexbyte is empty ") + return nil, fmt.Errorf("encoded hexbyte is empty ") } if err := proto.Unmarshal(inputBytes, v); err != nil { @@ -157,7 +157,7 @@ func VerifyBtpProof(decision *types.NetworkTypeSectionDecision, proof [][]byte, for _, raw_sig := range proof { sig, err := crypto.ParseSignature(raw_sig) if err != nil { - return false, err + continue } pubkey, err := sig.RecoverPublicKey(decision.Hash()) if err != nil { From 1576c81b28b98601a9a0eefd1bc62a4acb64d7b4 Mon Sep 17 00:00:00 2001 From: viveksharmapoudel Date: Wed, 27 Sep 2023 11:55:48 +0545 Subject: [PATCH 3/4] fix: query consensus state no retry (#180) Co-authored-by: izyak <76203436+izyak@users.noreply.github.com> --- relayer/chains/icon/icon_chain_processor.go | 3 --- relayer/chains/wasm/query.go | 2 +- relayer/chains/wasm/tx.go | 28 ++++++++++----------- relayer/chains/wasm/wasm_chain_processor.go | 3 --- relayer/processor/message_processor.go | 14 +++++------ relayer/processor/path_end_runtime.go | 7 ++++-- 6 files changed, 26 insertions(+), 31 deletions(-) diff --git a/relayer/chains/icon/icon_chain_processor.go b/relayer/chains/icon/icon_chain_processor.go index ba8dc4bd1..1ce251ebe 100644 --- a/relayer/chains/icon/icon_chain_processor.go +++ b/relayer/chains/icon/icon_chain_processor.go @@ -357,9 +357,6 @@ loop: break } - icp.log.Debug("Verified block ", - zap.Int64("height", int64(processedheight))) - icp.latestBlock = provider.LatestBlock{ Height: uint64(processedheight), } diff --git a/relayer/chains/wasm/query.go b/relayer/chains/wasm/query.go index 764ca191d..546ab61a6 100644 --- a/relayer/chains/wasm/query.go +++ b/relayer/chains/wasm/query.go @@ -321,7 +321,7 @@ func (ap *WasmProvider) QueryClientConsensusState(ctx context.Context, chainHeig if err != nil { return nil, err } - consensusState, err := ap.QueryIBCHandlerContractProcessed(ctx, consensusStateParam) + consensusState, err := ap.QueryIBCHandlerContractNoRetry(ctx, consensusStateParam) if err != nil { return nil, err } diff --git a/relayer/chains/wasm/tx.go b/relayer/chains/wasm/tx.go index d2e15f2c9..455407bec 100644 --- a/relayer/chains/wasm/tx.go +++ b/relayer/chains/wasm/tx.go @@ -744,20 +744,20 @@ func (ap *WasmProvider) SendMessagesToMempool( return err } - // if msg.Type() == MethodUpdateClient { - // if err := retry.Do(func() error { - // if err := ap.BroadcastTx(cliCtx, txBytes, []provider.RelayerMessage{msg}, asyncCtx, defaultBroadcastWaitTimeout, asyncCallback, true); err != nil { - // if strings.Contains(err.Error(), sdkerrors.ErrWrongSequence.Error()) { - // ap.handleAccountSequenceMismatchError(err) - // } - // } - // return err - // }, retry.Context(ctx), rtyAtt, retry.Delay(time.Millisecond*time.Duration(ap.PCfg.BlockInterval)), rtyErr); err != nil { - // ap.log.Error("Failed to update client", zap.Any("Message", msg)) - // return err - // } - // continue - // } + if msg.Type() == MethodUpdateClient { + if err := retry.Do(func() error { + if err := ap.BroadcastTx(cliCtx, txBytes, []provider.RelayerMessage{msg}, asyncCtx, defaultBroadcastWaitTimeout, asyncCallback, true); err != nil { + if strings.Contains(err.Error(), sdkerrors.ErrWrongSequence.Error()) { + ap.handleAccountSequenceMismatchError(err) + } + } + return err + }, retry.Context(ctx), rtyAtt, retry.Delay(time.Millisecond*time.Duration(ap.PCfg.BlockInterval)), rtyErr); err != nil { + ap.log.Error("Failed to update client", zap.Any("Message", msg)) + return err + } + continue + } if err := ap.BroadcastTx(cliCtx, txBytes, []provider.RelayerMessage{msg}, asyncCtx, defaultBroadcastWaitTimeout, asyncCallback, false); err != nil { if strings.Contains(err.Error(), sdkerrors.ErrWrongSequence.Error()) { ap.handleAccountSequenceMismatchError(err) diff --git a/relayer/chains/wasm/wasm_chain_processor.go b/relayer/chains/wasm/wasm_chain_processor.go index f7219e12e..55b95971c 100644 --- a/relayer/chains/wasm/wasm_chain_processor.go +++ b/relayer/chains/wasm/wasm_chain_processor.go @@ -444,9 +444,6 @@ func (ccp *WasmChainProcessor) queryCycle(ctx context.Context, persistence *quer return err } - ccp.log.Debug("Verified block ", - zap.Int64("height", lightBlock.Header.Height)) - heightUint64 := uint64(i) ccp.latestBlock = provider.LatestBlock{ diff --git a/relayer/processor/message_processor.go b/relayer/processor/message_processor.go index 44ff7a9ab..cd5bb40c7 100644 --- a/relayer/processor/message_processor.go +++ b/relayer/processor/message_processor.go @@ -439,12 +439,9 @@ func (mp *messageProcessor) sendClientUpdate( msgs := []provider.RelayerMessage{mp.msgUpdateClient} callback := func(rtr *provider.RelayerTxResponse, err error) { - - mp.log.Debug("Executing callback of sendClientUpdate ", - zap.Any("Transaction Status", rtr.Code), - zap.Any("Response", rtr), - zap.Any("LastClientUpdateHeight", dst.lastClientUpdateHeight)) - + mp.log.Debug("Executing callback of sendClientUpdate", + zap.Any("response", rtr), + zap.Uint64("last_client_update_height", dst.lastClientUpdateHeight)) if IsBTPLightClient(dst.clientState) { if src.BTPHeightQueue.Size() == 0 { return @@ -453,12 +450,14 @@ func (mp *messageProcessor) sendClientUpdate( if err != nil { return } - if rtr.Code == 0 { + + if rtr != nil && rtr.Code == 0 { if blockHeightInfo.Height == int64(dst.lastClientUpdateHeight) { src.BTPHeightQueue.Dequeue() } return } + // this would represent a failure case in that case isProcessing should be false if blockHeightInfo.Height == int64(dst.lastClientUpdateHeight) { if blockHeightInfo.RetryCount >= 5 { @@ -466,7 +465,6 @@ func (mp *messageProcessor) sendClientUpdate( src.BTPHeightQueue.Dequeue() return } - src.BTPHeightQueue.ReplaceQueue(zeroIndex, BlockInfoHeight{ Height: int64(dst.lastClientUpdateHeight), IsProcessing: false, diff --git a/relayer/processor/path_end_runtime.go b/relayer/processor/path_end_runtime.go index c134ab8bf..c44e29c63 100644 --- a/relayer/processor/path_end_runtime.go +++ b/relayer/processor/path_end_runtime.go @@ -473,14 +473,17 @@ func (pathEnd *pathEndRuntime) shouldSendPacketMessage(message packetIBCMessage, pathEnd.log.Debug("Waiting to relay packet message until clientState is updated", zap.Inline(message), zap.String("event_type", eventType), + zap.String("client_id", pathEnd.clientState.ClientID), + zap.Uint64("client_height", pathEnd.clientState.ConsensusHeight.RevisionHeight), ) return false } if counterparty.BTPHeightQueue.ItemExist(int64(message.info.Height)) { - - pathEnd.log.Debug("Waiting to relay packet message until clientState is in queue", + pathEnd.log.Debug("Waiting to relay packet message until clientState is in queue since btp height exist", zap.Inline(message), zap.String("event_type", eventType), + zap.String("client_id", pathEnd.clientState.ClientID), + zap.Uint64("client_height", pathEnd.clientState.ConsensusHeight.RevisionHeight), ) return false } From 24b9ac933fa3f57acc0e4fa4fcf37d2bf1ba022c Mon Sep 17 00:00:00 2001 From: DeepakBomjan <44976635+DeepakBomjan@users.noreply.github.com> Date: Thu, 5 Oct 2023 14:43:10 +0545 Subject: [PATCH 4/4] ci: update tag format (#183) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9f6aeef3c..e26440442 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: "Release" on: push: tags: - - 'v*.*.*-alpha.*' # Run release on any tag. Will be marked as draft by default anyway. + - '*' # Run release on any tag. Will be marked as draft by default anyway. jobs: goreleaser: