Skip to content

Commit

Permalink
Fix start with chain id mismatch (celestiaorg#3664)
Browse files Browse the repository at this point in the history
  • Loading branch information
jpserrat authored Oct 2, 2024
1 parent ddc05b0 commit 870ff6e
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 5 deletions.
5 changes: 4 additions & 1 deletion nodebuilder/state/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/celestiaorg/celestia-node/header"
"github.com/celestiaorg/celestia-node/nodebuilder/core"
modfraud "github.com/celestiaorg/celestia-node/nodebuilder/fraud"
"github.com/celestiaorg/celestia-node/nodebuilder/p2p"
"github.com/celestiaorg/celestia-node/share/eds/byzantine"
"github.com/celestiaorg/celestia-node/state"
)
Expand All @@ -21,14 +22,16 @@ func coreAccessor(
keyname AccountName,
sync *sync.Syncer[*header.ExtendedHeader],
fraudServ libfraud.Service[*header.ExtendedHeader],
network p2p.Network,
opts []state.Option,
) (
*state.CoreAccessor,
Module,
*modfraud.ServiceBreaker[*state.CoreAccessor, *header.ExtendedHeader],
error,
) {
ca, err := state.NewCoreAccessor(keyring, string(keyname), sync, corecfg.IP, corecfg.GRPCPort, opts...)
ca, err := state.NewCoreAccessor(keyring, string(keyname), sync, corecfg.IP, corecfg.GRPCPort,
network.String(), opts...)

sBreaker := &modfraud.ServiceBreaker[*state.CoreAccessor, *header.ExtendedHeader]{
Service: ca,
Expand Down
4 changes: 3 additions & 1 deletion share/shwap/p2p/shrex/error.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package shrex

import "errors"
import (
"errors"
)

// ErrorContains reports whether any error in err's tree matches any error in targets tree.
func ErrorContains(err, target error) bool {
Expand Down
12 changes: 12 additions & 0 deletions state/core_access.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ type CoreAccessor struct {
coreConn *grpc.ClientConn
coreIP string
grpcPort string
network string

// these fields are mutatable and thus need to be protected by a mutex
lock sync.Mutex
Expand All @@ -90,6 +91,7 @@ func NewCoreAccessor(
getter libhead.Head[*header.ExtendedHeader],
coreIP,
grpcPort string,
network string,
options ...Option,
) (*CoreAccessor, error) {
// create verifier
Expand All @@ -104,6 +106,7 @@ func NewCoreAccessor(
coreIP: coreIP,
grpcPort: grpcPort,
prt: prt,
network: network,
}

for _, opt := range options {
Expand Down Expand Up @@ -142,6 +145,15 @@ func (ca *CoreAccessor) Start(ctx context.Context) error {

// create ABCI query client
ca.abciQueryCli = tmservice.NewServiceClient(ca.coreConn)
resp, err := ca.abciQueryCli.GetNodeInfo(ctx, &tmservice.GetNodeInfoRequest{})
if err != nil {
return fmt.Errorf("failed to get node info: %w", err)
}

defaultNetwork := resp.GetDefaultNodeInfo().GetNetwork()
if defaultNetwork != ca.network {
return fmt.Errorf("wrong network in core.ip endpoint, expected %s, got %s", defaultNetwork, ca.network)
}

// set up signer to handle tx submission
ca.client, err = ca.setupTxClient(ctx, ca.defaultSignerAccount)
Expand Down
12 changes: 11 additions & 1 deletion state/core_access_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"time"

sdktypes "github.com/cosmos/cosmos-sdk/types"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

"github.com/celestiaorg/celestia-app/v2/app"
Expand Down Expand Up @@ -148,6 +149,15 @@ func TestTransfer(t *testing.T) {
}
}

func TestChainIDMismatch(t *testing.T) {
ctx := context.Background()
ca, _ := buildAccessor(t)
ca.network = "mismatch"
// start the accessor
err := ca.Start(ctx)
assert.ErrorContains(t, err, "wrong network")
}

func TestDelegate(t *testing.T) {
ctx := context.Background()
ca, accounts := buildAccessor(t)
Expand Down Expand Up @@ -253,7 +263,7 @@ func buildAccessor(t *testing.T) (*CoreAccessor, []string) {
WithAppCreator(appCreator) // needed until https://github.com/celestiaorg/celestia-app/pull/3680 merges
cctx, _, grpcAddr := testnode.NewNetwork(t, config)

ca, err := NewCoreAccessor(cctx.Keyring, accounts[0].Name, nil, "127.0.0.1", extractPort(grpcAddr))
ca, err := NewCoreAccessor(cctx.Keyring, accounts[0].Name, nil, "127.0.0.1", extractPort(grpcAddr), chainID)
require.NoError(t, err)
return ca, getNames(accounts)
}
Expand Down
2 changes: 1 addition & 1 deletion state/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func (s *IntegrationTestSuite) SetupSuite() {
s.Require().Greater(len(s.accounts), 0)
accountName := s.accounts[0].Name

accessor, err := NewCoreAccessor(s.cctx.Keyring, accountName, localHeader{s.cctx.Client}, "", "")
accessor, err := NewCoreAccessor(s.cctx.Keyring, accountName, localHeader{s.cctx.Client}, "", "", "")
require.NoError(s.T(), err)
setClients(accessor, s.cctx.GRPCClient)
s.accessor = accessor
Expand Down
4 changes: 3 additions & 1 deletion store/file/file.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package file

import logging "github.com/ipfs/go-log/v2"
import (
logging "github.com/ipfs/go-log/v2"
)

var log = logging.Logger("store/file")

Expand Down

0 comments on commit 870ff6e

Please sign in to comment.