Skip to content

Commit 2feb378

Browse files
gupadhyayaGanesha Upadhyaya
andauthored
Upgrade to go-cnc:v0.4.1, use cnc.Namespace (#1010)
This PR manually upgrades go-cnc from 0.3.0 to 0.4.1, which has a breaking change of 8 byte namespace to 10 byte. I have tested the PR using local-celestia-devnet with app:v1.0.0-rc0 and node:v0.11.0-rc2, which are celestia's arabica testnet configurations. https://github.com/rollkit/local-celestia-devnet/releases/tag/v0.11.0-rc2 Co-authored-by: Ganesha Upadhyaya <gupadhyaya@Ganeshas-MacBook-Pro-2.local>
1 parent c695de5 commit 2feb378

18 files changed

Lines changed: 44 additions & 38 deletions

File tree

block/manager_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"testing"
77
"time"
88

9+
"github.com/celestiaorg/go-cnc"
910
"github.com/libp2p/go-libp2p/core/crypto"
1011
"github.com/stretchr/testify/assert"
1112
"github.com/stretchr/testify/require"
@@ -72,7 +73,7 @@ func TestInitialState(t *testing.T) {
7273
key, _, _ := crypto.GenerateEd25519Key(rand.Reader)
7374
conf := config.BlockManagerConfig{
7475
BlockTime: 10 * time.Second,
75-
NamespaceID: types.NamespaceID{1, 2, 3, 4, 5, 6, 7, 8},
76+
NamespaceID: cnc.MustNewV0([]byte{0, 0, 1, 2, 3, 4, 5, 6, 7, 8}),
7677
}
7778

7879
for _, c := range cases {
@@ -93,7 +94,7 @@ func TestInitialState(t *testing.T) {
9394

9495
func getMockDALC(logger log.Logger) da.DataAvailabilityLayerClient {
9596
dalc := &mockda.DataAvailabilityLayerClient{}
96-
_ = dalc.Init([8]byte{}, nil, nil, logger)
97+
_ = dalc.Init(cnc.Namespace{}, nil, nil, logger)
9798
_ = dalc.Start()
9899
return dalc
99100
}

config/config.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@ import (
44
"encoding/hex"
55
"time"
66

7+
"github.com/celestiaorg/go-cnc"
78
"github.com/spf13/cobra"
89
"github.com/spf13/viper"
9-
10-
"github.com/rollkit/rollkit/types"
1110
)
1211

1312
const (
@@ -53,9 +52,9 @@ type BlockManagerConfig struct {
5352
// DABlockTime informs about block time of underlying data availability layer
5453
DABlockTime time.Duration `mapstructure:"da_block_time"`
5554
// DAStartHeight allows skipping first DAStartHeight-1 blocks when querying for blocks.
56-
DAStartHeight uint64 `mapstructure:"da_start_height"`
57-
NamespaceID types.NamespaceID `mapstructure:"namespace_id"`
58-
FraudProofs bool `mapstructure:"fraud_proofs"`
55+
DAStartHeight uint64 `mapstructure:"da_start_height"`
56+
NamespaceID cnc.Namespace `mapstructure:"namespace_id"`
57+
FraudProofs bool `mapstructure:"fraud_proofs"`
5958
}
6059

6160
// GetViperConfig reads configuration parameters from Viper instance.
@@ -76,7 +75,7 @@ func (nc *NodeConfig) GetViperConfig(v *viper.Viper) error {
7675
if err != nil {
7776
return err
7877
}
79-
copy(nc.NamespaceID[:], bytes)
78+
nc.NamespaceID = cnc.MustNewV0(bytes)
8079
nc.TrustedHash = v.GetString(flagTrustedHash)
8180
return nil
8281
}
@@ -93,7 +92,7 @@ func AddFlags(cmd *cobra.Command) {
9392
cmd.Flags().Duration(flagBlockTime, def.BlockTime, "block time (for aggregator mode)")
9493
cmd.Flags().Duration(flagDABlockTime, def.DABlockTime, "DA chain block time (for syncing)")
9594
cmd.Flags().Uint64(flagDAStartHeight, def.DAStartHeight, "starting DA block height (for syncing)")
96-
cmd.Flags().BytesHex(flagNamespaceID, def.NamespaceID[:], "namespace identifies (8 bytes in hex)")
95+
cmd.Flags().BytesHex(flagNamespaceID, def.NamespaceID.ID, "namespace identifies (8 bytes in hex)")
9796
cmd.Flags().Bool(flagFraudProofs, def.FraudProofs, "enable fraud proofs (experimental & insecure)")
9897
cmd.Flags().Bool(flagLight, def.Light, "run light client")
9998
cmd.Flags().String(flagTrustedHash, def.TrustedHash, "initial trusted hash to start the header exchange service")

config/config_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import (
44
"testing"
55
"time"
66

7+
"github.com/celestiaorg/go-cnc"
78
"github.com/spf13/cobra"
89
"github.com/spf13/viper"
910
"github.com/stretchr/testify/assert"
10-
11-
"github.com/rollkit/rollkit/types"
1211
)
1312

1413
func TestViperAndCobra(t *testing.T) {
@@ -25,7 +24,7 @@ func TestViperAndCobra(t *testing.T) {
2524
assert.NoError(cmd.Flags().Set(flagDALayer, "foobar"))
2625
assert.NoError(cmd.Flags().Set(flagDAConfig, `{"json":true}`))
2726
assert.NoError(cmd.Flags().Set(flagBlockTime, "1234s"))
28-
assert.NoError(cmd.Flags().Set(flagNamespaceID, "0102030405060708"))
27+
assert.NoError(cmd.Flags().Set(flagNamespaceID, "00000102030405060708"))
2928
assert.NoError(cmd.Flags().Set(flagFraudProofs, "false"))
3029

3130
nc := DefaultNodeConfig
@@ -35,6 +34,6 @@ func TestViperAndCobra(t *testing.T) {
3534
assert.Equal("foobar", nc.DALayer)
3635
assert.Equal(`{"json":true}`, nc.DAConfig)
3736
assert.Equal(1234*time.Second, nc.BlockTime)
38-
assert.Equal(types.NamespaceID{1, 2, 3, 4, 5, 6, 7, 8}, nc.NamespaceID)
37+
assert.Equal(cnc.MustNewV0([]byte{0, 0, 1, 2, 3, 4, 5, 6, 7, 8}), nc.NamespaceID)
3938
assert.Equal(false, nc.FraudProofs)
4039
}

config/defaults.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package config
33
import (
44
"time"
55

6-
"github.com/rollkit/rollkit/types"
6+
"github.com/celestiaorg/go-cnc"
77
)
88

99
const (
@@ -22,7 +22,7 @@ var DefaultNodeConfig = NodeConfig{
2222
LazyAggregator: false,
2323
BlockManagerConfig: BlockManagerConfig{
2424
BlockTime: 30 * time.Second,
25-
NamespaceID: types.NamespaceID{},
25+
NamespaceID: cnc.Namespace{},
2626
FraudProofs: false,
2727
},
2828
DALayer: "mock",

da/celestia/celestia.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type DataAvailabilityLayerClient struct {
2525
_ *openrpc.Client
2626
client *cnc.Client
2727

28-
namespaceID types.NamespaceID
28+
namespaceID cnc.Namespace
2929
config Config
3030
logger log.Logger
3131
}
@@ -43,7 +43,7 @@ type Config struct {
4343

4444
// Init initializes DataAvailabilityLayerClient instance.
4545
func (c *DataAvailabilityLayerClient) Init(
46-
namespaceID types.NamespaceID, config []byte, kvStore ds.Datastore, logger log.Logger,
46+
namespaceID cnc.Namespace, config []byte, kvStore ds.Datastore, logger log.Logger,
4747
) error {
4848
c.namespaceID = namespaceID
4949
c.logger = logger

da/celestia/mock/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func (s *Server) Start(listener net.Listener) error {
4444
if err != nil {
4545
return err
4646
}
47-
err = s.mock.Init([8]byte{}, []byte(s.blockTime.String()), kvStore, s.logger)
47+
err = s.mock.Init(cnc.Namespace{}, []byte(s.blockTime.String()), kvStore, s.logger)
4848
if err != nil {
4949
return err
5050
}

da/da.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"errors"
66

7+
"github.com/celestiaorg/go-cnc"
78
ds "github.com/ipfs/go-datastore"
89

910
"github.com/rollkit/rollkit/log"
@@ -70,7 +71,7 @@ type ResultRetrieveBlocks struct {
7071
// It also contains life-cycle methods.
7172
type DataAvailabilityLayerClient interface {
7273
// Init is called once to allow DA client to read configuration and initialize resources.
73-
Init(namespaceID types.NamespaceID, config []byte, kvStore ds.Datastore, logger log.Logger) error
74+
Init(namespaceID cnc.Namespace, config []byte, kvStore ds.Datastore, logger log.Logger) error
7475

7576
// Start is called once, after Init. It's implementation should start operation of DataAvailabilityLayerClient.
7677
Start() error

da/grpc/grpc.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"google.golang.org/grpc"
99

10+
"github.com/celestiaorg/go-cnc"
1011
ds "github.com/ipfs/go-datastore"
1112

1213
"github.com/rollkit/rollkit/da"
@@ -42,7 +43,7 @@ var _ da.DataAvailabilityLayerClient = &DataAvailabilityLayerClient{}
4243
var _ da.BlockRetriever = &DataAvailabilityLayerClient{}
4344

4445
// Init sets the configuration options.
45-
func (d *DataAvailabilityLayerClient) Init(_ types.NamespaceID, config []byte, _ ds.Datastore, logger log.Logger) error {
46+
func (d *DataAvailabilityLayerClient) Init(_ cnc.Namespace, config []byte, _ ds.Datastore, logger log.Logger) error {
4647
d.logger = logger
4748
if len(config) == 0 {
4849
d.config = DefaultConfig

da/grpc/mockserv/mockserv.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package mockserv
33
import (
44
"context"
55

6+
"github.com/celestiaorg/go-cnc"
67
ds "github.com/ipfs/go-datastore"
78
tmlog "github.com/tendermint/tendermint/libs/log"
89
"google.golang.org/grpc"
@@ -18,7 +19,7 @@ import (
1819
func GetServer(kv ds.Datastore, conf grpcda.Config, mockConfig []byte, logger tmlog.Logger) *grpc.Server {
1920
srv := grpc.NewServer()
2021
mockImpl := &mockImpl{}
21-
err := mockImpl.mock.Init([8]byte{}, mockConfig, kv, logger)
22+
err := mockImpl.mock.Init(cnc.Namespace{}, mockConfig, kv, logger)
2223
if err != nil {
2324
logger.Error("failed to initialize mock DALC", "error", err)
2425
panic(err)

da/mock/mock.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"sync/atomic"
88
"time"
99

10+
"github.com/celestiaorg/go-cnc"
1011
ds "github.com/ipfs/go-datastore"
1112

1213
"github.com/rollkit/rollkit/da"
@@ -34,7 +35,7 @@ var _ da.DataAvailabilityLayerClient = &DataAvailabilityLayerClient{}
3435
var _ da.BlockRetriever = &DataAvailabilityLayerClient{}
3536

3637
// Init is called once to allow DA client to read configuration and initialize resources.
37-
func (m *DataAvailabilityLayerClient) Init(_ types.NamespaceID, config []byte, dalcKV ds.Datastore, logger log.Logger) error {
38+
func (m *DataAvailabilityLayerClient) Init(_ cnc.Namespace, config []byte, dalcKV ds.Datastore, logger log.Logger) error {
3839
m.logger = logger
3940
m.dalcKV = dalcKV
4041
m.daHeight = 1

0 commit comments

Comments
 (0)