From 0dfa72bc6abc4b34ac6dca189454cafad52a6869 Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Tue, 22 Nov 2022 14:26:56 -0500 Subject: [PATCH 01/22] added contexts to Celestia DataAvailabilityLayerClient --- da/celestia/celestia.go | 6 +++--- da/da.go | 7 ++++--- da/grpc/mockserv/cmd/.gitignore | 2 ++ 3 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 da/grpc/mockserv/cmd/.gitignore diff --git a/da/celestia/celestia.go b/da/celestia/celestia.go index 2dc011399b..e01bfaf36d 100644 --- a/da/celestia/celestia.go +++ b/da/celestia/celestia.go @@ -62,7 +62,7 @@ func (c *DataAvailabilityLayerClient) Stop() error { } // SubmitBlock submits a block to DA layer. -func (c *DataAvailabilityLayerClient) SubmitBlock(block *types.Block) da.ResultSubmitBlock { +func (c *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block *types.Block) da.ResultSubmitBlock { blob, err := block.MarshalBinary() if err != nil { return da.ResultSubmitBlock{ @@ -103,7 +103,7 @@ func (c *DataAvailabilityLayerClient) SubmitBlock(block *types.Block) da.ResultS } // CheckBlockAvailability queries DA layer to check data availability of block at given height. -func (c *DataAvailabilityLayerClient) CheckBlockAvailability(dataLayerHeight uint64) da.ResultCheckBlock { +func (c *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Context, dataLayerHeight uint64) da.ResultCheckBlock { shares, err := c.client.NamespacedShares(context.TODO(), c.namespaceID, dataLayerHeight) if err != nil { return da.ResultCheckBlock{ @@ -124,7 +124,7 @@ func (c *DataAvailabilityLayerClient) CheckBlockAvailability(dataLayerHeight uin } // RetrieveBlocks gets a batch of blocks from DA layer. -func (c *DataAvailabilityLayerClient) RetrieveBlocks(dataLayerHeight uint64) da.ResultRetrieveBlocks { +func (c *DataAvailabilityLayerClient) RetrieveBlocks(context context.Context, dataLayerHeight uint64) da.ResultRetrieveBlocks { data, err := c.client.NamespacedData(context.TODO(), c.namespaceID, dataLayerHeight) if err != nil { return da.ResultRetrieveBlocks{ diff --git a/da/da.go b/da/da.go index 412257ba45..5f99abc887 100644 --- a/da/da.go +++ b/da/da.go @@ -1,6 +1,7 @@ package da import ( + "context" "github.com/celestiaorg/rollmint/log" "github.com/celestiaorg/rollmint/store" "github.com/celestiaorg/rollmint/types" @@ -69,15 +70,15 @@ type DataAvailabilityLayerClient interface { // SubmitBlock submits the passed in block to the DA layer. // This should create a transaction which (potentially) // triggers a state transition in the DA layer. - SubmitBlock(block *types.Block) ResultSubmitBlock + SubmitBlock(context context.Context, block *types.Block) ResultSubmitBlock // CheckBlockAvailability queries DA layer to check data availability of block corresponding at given height. - CheckBlockAvailability(dataLayerHeight uint64) ResultCheckBlock + CheckBlockAvailability(context context.Context, dataLayerHeight uint64) ResultCheckBlock } // BlockRetriever is additional interface that can be implemented by Data Availability Layer Client that is able to retrieve // block data from DA layer. This gives the ability to use it for block synchronization. type BlockRetriever interface { // RetrieveBlocks returns blocks at given data layer height from data availability layer. - RetrieveBlocks(dataLayerHeight uint64) ResultRetrieveBlocks + RetrieveBlocks(context context.Context, dataLayerHeight uint64) ResultRetrieveBlocks } diff --git a/da/grpc/mockserv/cmd/.gitignore b/da/grpc/mockserv/cmd/.gitignore new file mode 100644 index 0000000000..f8d06b2f97 --- /dev/null +++ b/da/grpc/mockserv/cmd/.gitignore @@ -0,0 +1,2 @@ +cmd +db From 283f71556451080accd2e05f4f0845f974b68c98 Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Tue, 22 Nov 2022 15:00:09 -0500 Subject: [PATCH 02/22] added context to mock, grpc, and celestia --- da/celestia/celestia.go | 6 +++--- da/grpc/grpc.go | 12 ++++++------ da/mock/mock.go | 9 +++++---- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/da/celestia/celestia.go b/da/celestia/celestia.go index e01bfaf36d..f73a34b792 100644 --- a/da/celestia/celestia.go +++ b/da/celestia/celestia.go @@ -73,7 +73,7 @@ func (c *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block } } - txResponse, err := c.client.SubmitPFD(context.TODO(), c.namespaceID, blob, c.config.GasLimit) + txResponse, err := c.client.SubmitPFD(context, c.namespaceID, blob, c.config.GasLimit) if err != nil { return da.ResultSubmitBlock{ @@ -104,7 +104,7 @@ func (c *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block // CheckBlockAvailability queries DA layer to check data availability of block at given height. func (c *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Context, dataLayerHeight uint64) da.ResultCheckBlock { - shares, err := c.client.NamespacedShares(context.TODO(), c.namespaceID, dataLayerHeight) + shares, err := c.client.NamespacedShares(context, c.namespaceID, dataLayerHeight) if err != nil { return da.ResultCheckBlock{ BaseResult: da.BaseResult{ @@ -125,7 +125,7 @@ func (c *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Con // RetrieveBlocks gets a batch of blocks from DA layer. func (c *DataAvailabilityLayerClient) RetrieveBlocks(context context.Context, dataLayerHeight uint64) da.ResultRetrieveBlocks { - data, err := c.client.NamespacedData(context.TODO(), c.namespaceID, dataLayerHeight) + data, err := c.client.NamespacedData(context, c.namespaceID, dataLayerHeight) if err != nil { return da.ResultRetrieveBlocks{ BaseResult: da.BaseResult{ diff --git a/da/grpc/grpc.go b/da/grpc/grpc.go index 0947e71a7d..813ea5feab 100644 --- a/da/grpc/grpc.go +++ b/da/grpc/grpc.go @@ -74,8 +74,8 @@ func (d *DataAvailabilityLayerClient) Stop() error { } // SubmitBlock proxies SubmitBlock request to gRPC server. -func (d *DataAvailabilityLayerClient) SubmitBlock(block *types.Block) da.ResultSubmitBlock { - resp, err := d.client.SubmitBlock(context.TODO(), &dalc.SubmitBlockRequest{Block: block.ToProto()}) +func (d *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block *types.Block) da.ResultSubmitBlock { + resp, err := d.client.SubmitBlock(context, &dalc.SubmitBlockRequest{Block: block.ToProto()}) if err != nil { return da.ResultSubmitBlock{ BaseResult: da.BaseResult{Code: da.StatusError, Message: err.Error()}, @@ -91,8 +91,8 @@ func (d *DataAvailabilityLayerClient) SubmitBlock(block *types.Block) da.ResultS } // CheckBlockAvailability proxies CheckBlockAvailability request to gRPC server. -func (d *DataAvailabilityLayerClient) CheckBlockAvailability(daHeight uint64) da.ResultCheckBlock { - resp, err := d.client.CheckBlockAvailability(context.TODO(), &dalc.CheckBlockAvailabilityRequest{DAHeight: daHeight}) +func (d *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Context, daHeight uint64) da.ResultCheckBlock { + resp, err := d.client.CheckBlockAvailability(context, &dalc.CheckBlockAvailabilityRequest{DAHeight: daHeight}) if err != nil { return da.ResultCheckBlock{BaseResult: da.BaseResult{Code: da.StatusError, Message: err.Error()}} } @@ -103,8 +103,8 @@ func (d *DataAvailabilityLayerClient) CheckBlockAvailability(daHeight uint64) da } // RetrieveBlocks proxies RetrieveBlocks request to gRPC server. -func (d *DataAvailabilityLayerClient) RetrieveBlocks(daHeight uint64) da.ResultRetrieveBlocks { - resp, err := d.client.RetrieveBlocks(context.TODO(), &dalc.RetrieveBlocksRequest{DAHeight: daHeight}) +func (d *DataAvailabilityLayerClient) RetrieveBlocks(context context.Context, daHeight uint64) da.ResultRetrieveBlocks { + resp, err := d.client.RetrieveBlocks(context, &dalc.RetrieveBlocksRequest{DAHeight: daHeight}) if err != nil { return da.ResultRetrieveBlocks{BaseResult: da.BaseResult{Code: da.StatusError, Message: err.Error()}} } diff --git a/da/mock/mock.go b/da/mock/mock.go index 9bc37b3f09..10baf549bb 100644 --- a/da/mock/mock.go +++ b/da/mock/mock.go @@ -1,6 +1,7 @@ package mock import ( + "context" "encoding/binary" "math/rand" "sync/atomic" @@ -68,7 +69,7 @@ func (m *DataAvailabilityLayerClient) Stop() error { // SubmitBlock submits the passed in block to the DA layer. // This should create a transaction which (potentially) // triggers a state transition in the DA layer. -func (m *DataAvailabilityLayerClient) SubmitBlock(block *types.Block) da.ResultSubmitBlock { +func (m *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block *types.Block) da.ResultSubmitBlock { daHeight := atomic.LoadUint64(&m.daHeight) m.logger.Debug("Submitting block to DA layer!", "height", block.Header.Height, "dataLayerHeight", daHeight) @@ -97,13 +98,13 @@ func (m *DataAvailabilityLayerClient) SubmitBlock(block *types.Block) da.ResultS } // CheckBlockAvailability queries DA layer to check data availability of block corresponding to given header. -func (m *DataAvailabilityLayerClient) CheckBlockAvailability(daHeight uint64) da.ResultCheckBlock { - blocksRes := m.RetrieveBlocks(daHeight) +func (m *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Context, daHeight uint64) da.ResultCheckBlock { + blocksRes := m.RetrieveBlocks(context, daHeight) return da.ResultCheckBlock{BaseResult: da.BaseResult{Code: blocksRes.Code}, DataAvailable: len(blocksRes.Blocks) > 0} } // RetrieveBlocks returns block at given height from data availability layer. -func (m *DataAvailabilityLayerClient) RetrieveBlocks(daHeight uint64) da.ResultRetrieveBlocks { +func (m *DataAvailabilityLayerClient) RetrieveBlocks(context context.Context, daHeight uint64) da.ResultRetrieveBlocks { if daHeight >= atomic.LoadUint64(&m.daHeight) { return da.ResultRetrieveBlocks{BaseResult: da.BaseResult{Code: da.StatusError, Message: "block not found"}} } From f6d337218229ba0d5cbd0f5d10fedb888784d114 Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Tue, 22 Nov 2022 15:12:43 -0500 Subject: [PATCH 03/22] pass contexts into DataAvailabilityLayerClient from BlockManager methods --- block/manager.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/block/manager.go b/block/manager.go index c64626ab84..f7e948191d 100644 --- a/block/manager.go +++ b/block/manager.go @@ -345,7 +345,7 @@ func (m *Manager) RetrieveLoop(ctx context.Context) { for { daHeight := atomic.LoadUint64(&m.daHeight) m.logger.Debug("retrieve", "daHeight", daHeight) - err := m.processNextDABlock() + err := m.processNextDABlock(ctx) if err != nil { m.logger.Error("failed to retrieve block from DALC", "daHeight", daHeight, "errors", err.Error()) break @@ -358,7 +358,7 @@ func (m *Manager) RetrieveLoop(ctx context.Context) { } } -func (m *Manager) processNextDABlock() error { +func (m *Manager) processNextDABlock(ctx context.Context) error { // TODO(tzdybal): extract configuration option maxRetries := 10 daHeight := atomic.LoadUint64(&m.daHeight) @@ -366,7 +366,7 @@ func (m *Manager) processNextDABlock() error { var err error m.logger.Debug("trying to retrieve block from DA", "daHeight", daHeight) for r := 0; r < maxRetries; r++ { - blockResp, fetchErr := m.fetchBlock(daHeight) + blockResp, fetchErr := m.fetchBlock(ctx, daHeight) if fetchErr != nil { err = multierr.Append(err, fetchErr) time.Sleep(100 * time.Millisecond) @@ -381,9 +381,9 @@ func (m *Manager) processNextDABlock() error { return err } -func (m *Manager) fetchBlock(daHeight uint64) (da.ResultRetrieveBlocks, error) { +func (m *Manager) fetchBlock(ctx context.Context, daHeight uint64) (da.ResultRetrieveBlocks, error) { var err error - blockRes := m.retriever.RetrieveBlocks(daHeight) + blockRes := m.retriever.RetrieveBlocks(ctx, daHeight) switch blockRes.Code { case da.StatusError: err = fmt.Errorf("failed to retrieve block: %s", blockRes.Message) @@ -513,7 +513,7 @@ func (m *Manager) submitBlockToDA(ctx context.Context, block *types.Block) error submitted := false backoff := initialBackoff for attempt := 1; ctx.Err() == nil && !submitted && attempt <= maxSubmitAttempts; attempt++ { - res := m.dalc.SubmitBlock(block) + res := m.dalc.SubmitBlock(ctx, block) if res.Code == da.StatusSuccess { m.logger.Info("successfully submitted rollmint block to DA layer", "rollmintHeight", block.Header.Height, "daHeight", res.DAHeight) submitted = true From b87fee3b65f34acb316e90e351918af4af640e03 Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 22 Nov 2022 15:13:26 -0500 Subject: [PATCH 04/22] Update da/da.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tomasz Zdybał --- da/da.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/da/da.go b/da/da.go index 5f99abc887..3bfc898763 100644 --- a/da/da.go +++ b/da/da.go @@ -80,5 +80,5 @@ type DataAvailabilityLayerClient interface { // block data from DA layer. This gives the ability to use it for block synchronization. type BlockRetriever interface { // RetrieveBlocks returns blocks at given data layer height from data availability layer. - RetrieveBlocks(context context.Context, dataLayerHeight uint64) ResultRetrieveBlocks + RetrieveBlocks(ctx context.Context, dataLayerHeight uint64) ResultRetrieveBlocks } From d6c9ee84f251f2c5495508a0f0251938f774c51b Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 22 Nov 2022 15:13:36 -0500 Subject: [PATCH 05/22] Update da/da.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tomasz Zdybał --- da/da.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/da/da.go b/da/da.go index 3bfc898763..5a746ae595 100644 --- a/da/da.go +++ b/da/da.go @@ -73,7 +73,7 @@ type DataAvailabilityLayerClient interface { SubmitBlock(context context.Context, block *types.Block) ResultSubmitBlock // CheckBlockAvailability queries DA layer to check data availability of block corresponding at given height. - CheckBlockAvailability(context context.Context, dataLayerHeight uint64) ResultCheckBlock + CheckBlockAvailability(ctx context.Context, dataLayerHeight uint64) ResultCheckBlock } // BlockRetriever is additional interface that can be implemented by Data Availability Layer Client that is able to retrieve From fc09ed741b49c9bbba70be13015d670cf691e2df Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 22 Nov 2022 15:13:42 -0500 Subject: [PATCH 06/22] Update da/celestia/celestia.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tomasz Zdybał --- da/celestia/celestia.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/da/celestia/celestia.go b/da/celestia/celestia.go index f73a34b792..322ecdc893 100644 --- a/da/celestia/celestia.go +++ b/da/celestia/celestia.go @@ -62,7 +62,7 @@ func (c *DataAvailabilityLayerClient) Stop() error { } // SubmitBlock submits a block to DA layer. -func (c *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block *types.Block) da.ResultSubmitBlock { +func (c *DataAvailabilityLayerClient) SubmitBlock(ctx context.Context, block *types.Block) da.ResultSubmitBlock { blob, err := block.MarshalBinary() if err != nil { return da.ResultSubmitBlock{ From 5aad4731d77027694ef47982ca87831162f4d650 Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 22 Nov 2022 15:13:48 -0500 Subject: [PATCH 07/22] Update da/celestia/celestia.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tomasz Zdybał --- da/celestia/celestia.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/da/celestia/celestia.go b/da/celestia/celestia.go index 322ecdc893..1895b6d26a 100644 --- a/da/celestia/celestia.go +++ b/da/celestia/celestia.go @@ -103,7 +103,7 @@ func (c *DataAvailabilityLayerClient) SubmitBlock(ctx context.Context, block *ty } // CheckBlockAvailability queries DA layer to check data availability of block at given height. -func (c *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Context, dataLayerHeight uint64) da.ResultCheckBlock { +func (c *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context, dataLayerHeight uint64) da.ResultCheckBlock { shares, err := c.client.NamespacedShares(context, c.namespaceID, dataLayerHeight) if err != nil { return da.ResultCheckBlock{ From 5f96859bb6ce2c707155b456977809415798938c Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 22 Nov 2022 15:13:53 -0500 Subject: [PATCH 08/22] Update da/celestia/celestia.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tomasz Zdybał --- da/celestia/celestia.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/da/celestia/celestia.go b/da/celestia/celestia.go index 1895b6d26a..28da2256ce 100644 --- a/da/celestia/celestia.go +++ b/da/celestia/celestia.go @@ -124,7 +124,7 @@ func (c *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context } // RetrieveBlocks gets a batch of blocks from DA layer. -func (c *DataAvailabilityLayerClient) RetrieveBlocks(context context.Context, dataLayerHeight uint64) da.ResultRetrieveBlocks { +func (c *DataAvailabilityLayerClient) RetrieveBlocks(ctx context.Context, dataLayerHeight uint64) da.ResultRetrieveBlocks { data, err := c.client.NamespacedData(context, c.namespaceID, dataLayerHeight) if err != nil { return da.ResultRetrieveBlocks{ From 00a83a6debc5d96953a72516fc03cdcbbbaca5f2 Mon Sep 17 00:00:00 2001 From: c-node Date: Tue, 22 Nov 2022 15:14:05 -0500 Subject: [PATCH 09/22] Update da/da.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tomasz Zdybał --- da/da.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/da/da.go b/da/da.go index 5a746ae595..dd947553c3 100644 --- a/da/da.go +++ b/da/da.go @@ -70,7 +70,7 @@ type DataAvailabilityLayerClient interface { // SubmitBlock submits the passed in block to the DA layer. // This should create a transaction which (potentially) // triggers a state transition in the DA layer. - SubmitBlock(context context.Context, block *types.Block) ResultSubmitBlock + SubmitBlock(ctx context.Context, block *types.Block) ResultSubmitBlock // CheckBlockAvailability queries DA layer to check data availability of block corresponding at given height. CheckBlockAvailability(ctx context.Context, dataLayerHeight uint64) ResultCheckBlock From d61daf81a2a828475f479d1553e4a414d216e82d Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Tue, 22 Nov 2022 15:15:57 -0500 Subject: [PATCH 10/22] renamed context to ctx --- da/celestia/celestia.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/da/celestia/celestia.go b/da/celestia/celestia.go index 28da2256ce..f50d37da27 100644 --- a/da/celestia/celestia.go +++ b/da/celestia/celestia.go @@ -73,7 +73,7 @@ func (c *DataAvailabilityLayerClient) SubmitBlock(ctx context.Context, block *ty } } - txResponse, err := c.client.SubmitPFD(context, c.namespaceID, blob, c.config.GasLimit) + txResponse, err := c.client.SubmitPFD(ctx, c.namespaceID, blob, c.config.GasLimit) if err != nil { return da.ResultSubmitBlock{ @@ -104,7 +104,7 @@ func (c *DataAvailabilityLayerClient) SubmitBlock(ctx context.Context, block *ty // CheckBlockAvailability queries DA layer to check data availability of block at given height. func (c *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context, dataLayerHeight uint64) da.ResultCheckBlock { - shares, err := c.client.NamespacedShares(context, c.namespaceID, dataLayerHeight) + shares, err := c.client.NamespacedShares(ctx, c.namespaceID, dataLayerHeight) if err != nil { return da.ResultCheckBlock{ BaseResult: da.BaseResult{ @@ -125,7 +125,7 @@ func (c *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context // RetrieveBlocks gets a batch of blocks from DA layer. func (c *DataAvailabilityLayerClient) RetrieveBlocks(ctx context.Context, dataLayerHeight uint64) da.ResultRetrieveBlocks { - data, err := c.client.NamespacedData(context, c.namespaceID, dataLayerHeight) + data, err := c.client.NamespacedData(ctx, c.namespaceID, dataLayerHeight) if err != nil { return da.ResultRetrieveBlocks{ BaseResult: da.BaseResult{ From 660fff8ae5aecc31852a2072bda1479164879e73 Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Wed, 23 Nov 2022 16:29:49 -0500 Subject: [PATCH 11/22] added context to da tests --- da/celestia/mock/server.go | 6 +++--- da/grpc/mockserv/mockserv.go | 12 ++++++------ da/test/da_test.go | 28 ++++++++++++++++------------ 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/da/celestia/mock/server.go b/da/celestia/mock/server.go index 0fb05ba480..e6665ec615 100644 --- a/da/celestia/mock/server.go +++ b/da/celestia/mock/server.go @@ -92,7 +92,7 @@ func (s *Server) submit(w http.ResponseWriter, r *http.Request) { return } - res := s.mock.SubmitBlock(&block) + res := s.mock.SubmitBlock(r.Context(), &block) code := 0 if res.Code != da.StatusSuccess { code = 3 @@ -118,7 +118,7 @@ func (s *Server) shares(w http.ResponseWriter, r *http.Request) { return } - res := s.mock.RetrieveBlocks(height) + res := s.mock.RetrieveBlocks(r.Context(), height) if res.Code != da.StatusSuccess { s.writeError(w, errors.New(res.Message)) return @@ -161,7 +161,7 @@ func (s *Server) data(w http.ResponseWriter, r *http.Request) { return } - res := s.mock.RetrieveBlocks(height) + res := s.mock.RetrieveBlocks(r.Context(), height) if res.Code != da.StatusSuccess { s.writeError(w, errors.New(res.Message)) return diff --git a/da/grpc/mockserv/mockserv.go b/da/grpc/mockserv/mockserv.go index a7c2644d7a..67cdbae489 100644 --- a/da/grpc/mockserv/mockserv.go +++ b/da/grpc/mockserv/mockserv.go @@ -36,13 +36,13 @@ type mockImpl struct { mock mock.DataAvailabilityLayerClient } -func (m *mockImpl) SubmitBlock(_ context.Context, request *dalc.SubmitBlockRequest) (*dalc.SubmitBlockResponse, error) { +func (m *mockImpl) SubmitBlock(ctx context.Context, request *dalc.SubmitBlockRequest) (*dalc.SubmitBlockResponse, error) { var b types.Block err := b.FromProto(request.Block) if err != nil { return nil, err } - resp := m.mock.SubmitBlock(&b) + resp := m.mock.SubmitBlock(ctx, &b) return &dalc.SubmitBlockResponse{ Result: &dalc.DAResponse{ Code: dalc.StatusCode(resp.Code), @@ -52,8 +52,8 @@ func (m *mockImpl) SubmitBlock(_ context.Context, request *dalc.SubmitBlockReque }, nil } -func (m *mockImpl) CheckBlockAvailability(_ context.Context, request *dalc.CheckBlockAvailabilityRequest) (*dalc.CheckBlockAvailabilityResponse, error) { - resp := m.mock.CheckBlockAvailability(request.DAHeight) +func (m *mockImpl) CheckBlockAvailability(ctx context.Context, request *dalc.CheckBlockAvailabilityRequest) (*dalc.CheckBlockAvailabilityResponse, error) { + resp := m.mock.CheckBlockAvailability(ctx, request.DAHeight) return &dalc.CheckBlockAvailabilityResponse{ Result: &dalc.DAResponse{ Code: dalc.StatusCode(resp.Code), @@ -63,8 +63,8 @@ func (m *mockImpl) CheckBlockAvailability(_ context.Context, request *dalc.Check }, nil } -func (m *mockImpl) RetrieveBlocks(context context.Context, request *dalc.RetrieveBlocksRequest) (*dalc.RetrieveBlocksResponse, error) { - resp := m.mock.RetrieveBlocks(request.DAHeight) +func (m *mockImpl) RetrieveBlocks(ctx context.Context, request *dalc.RetrieveBlocksRequest) (*dalc.RetrieveBlocksResponse, error) { + resp := m.mock.RetrieveBlocks(ctx, request.DAHeight) blocks := make([]*rollmint.Block, len(resp.Blocks)) for i := range resp.Blocks { blocks[i] = resp.Blocks[i].ToProto() diff --git a/da/test/da_test.go b/da/test/da_test.go index cb56323d04..bddadcc0b4 100644 --- a/da/test/da_test.go +++ b/da/test/da_test.go @@ -1,6 +1,7 @@ package test import ( + "context" "encoding/json" "math/rand" "net" @@ -62,14 +63,16 @@ func TestDALC(t *testing.T) { httpServer := startMockCelestiaNodeServer(t) defer httpServer.Stop() + ctx := context.Background() + for _, dalc := range registry.RegisteredClients() { t.Run(dalc, func(t *testing.T) { - doTestDALC(t, registry.GetClient(dalc)) + doTestDALC(ctx, t, registry.GetClient(dalc)) }) } } -func doTestDALC(t *testing.T, dalc da.DataAvailabilityLayerClient) { +func doTestDALC(ctx context.Context, t *testing.T, dalc da.DataAvailabilityLayerClient) { require := require.New(t) assert := assert.New(t) @@ -99,32 +102,33 @@ func doTestDALC(t *testing.T, dalc da.DataAvailabilityLayerClient) { b1 := getRandomBlock(1, 10) b2 := getRandomBlock(2, 10) - resp := dalc.SubmitBlock(b1) + resp := dalc.SubmitBlock(ctx, b1) h1 := resp.DAHeight assert.Equal(da.StatusSuccess, resp.Code) - resp = dalc.SubmitBlock(b2) + resp = dalc.SubmitBlock(ctx, b2) h2 := resp.DAHeight assert.Equal(da.StatusSuccess, resp.Code) // wait a bit more than mockDaBlockTime, so rollmint blocks can be "included" in mock block time.Sleep(mockDaBlockTime + 20*time.Millisecond) - check := dalc.CheckBlockAvailability(h1) + check := dalc.CheckBlockAvailability(ctx, h1) assert.Equal(da.StatusSuccess, check.Code) assert.True(check.DataAvailable) - check = dalc.CheckBlockAvailability(h2) + check = dalc.CheckBlockAvailability(ctx, h2) assert.Equal(da.StatusSuccess, check.Code) assert.True(check.DataAvailable) // this height should not be used by DALC - check = dalc.CheckBlockAvailability(h1 - 1) + check = dalc.CheckBlockAvailability(ctx, h1 - 1) assert.Equal(da.StatusSuccess, check.Code) assert.False(check.DataAvailable) } func TestRetrieve(t *testing.T) { + ctx := context.Background() grpcServer := startMockGRPCServ(t) defer grpcServer.GracefulStop() @@ -136,7 +140,7 @@ func TestRetrieve(t *testing.T) { dalc := registry.GetClient(client) _, ok := dalc.(da.BlockRetriever) if ok { - doTestRetrieve(t, dalc) + doTestRetrieve(ctx, t, dalc) } }) } @@ -172,7 +176,7 @@ func startMockCelestiaNodeServer(t *testing.T) *cmock.Server { return httpSrv } -func doTestRetrieve(t *testing.T, dalc da.DataAvailabilityLayerClient) { +func doTestRetrieve(ctx context.Context, t *testing.T, dalc da.DataAvailabilityLayerClient) { require := require.New(t) assert := assert.New(t) @@ -204,7 +208,7 @@ func doTestRetrieve(t *testing.T, dalc da.DataAvailabilityLayerClient) { for i := uint64(0); i < 100; i++ { b := getRandomBlock(i, rand.Int()%20) - resp := dalc.SubmitBlock(b) + resp := dalc.SubmitBlock(ctx, b) assert.Equal(da.StatusSuccess, resp.Code, resp.Message) time.Sleep(time.Duration(rand.Int63() % mockDaBlockTime.Milliseconds())) @@ -217,14 +221,14 @@ func doTestRetrieve(t *testing.T, dalc da.DataAvailabilityLayerClient) { for h, cnt := range countAtHeight { t.Log("Retrieving block, DA Height", h) - ret := retriever.RetrieveBlocks(h) + ret := retriever.RetrieveBlocks(ctx, h) assert.Equal(da.StatusSuccess, ret.Code, ret.Message) require.NotEmpty(ret.Blocks, h) assert.Len(ret.Blocks, cnt, h) } for b, h := range blocks { - ret := retriever.RetrieveBlocks(h) + ret := retriever.RetrieveBlocks(ctx, h) assert.Equal(da.StatusSuccess, ret.Code, h) require.NotEmpty(ret.Blocks, h) assert.Contains(ret.Blocks, b, h) From 5d211a64384b9e50e33bf445da7534519a52b5ca Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Wed, 23 Nov 2022 17:48:57 -0500 Subject: [PATCH 12/22] gofmt repo --- da/mock/mock.go | 2 +- da/test/da_test.go | 8 ++++---- mempool/clist/clist.go | 2 -- mempool/clist/clist_test.go | 2 ++ 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/da/mock/mock.go b/da/mock/mock.go index 10baf549bb..7c82cbd534 100644 --- a/da/mock/mock.go +++ b/da/mock/mock.go @@ -1,7 +1,7 @@ package mock import ( - "context" + "context" "encoding/binary" "math/rand" "sync/atomic" diff --git a/da/test/da_test.go b/da/test/da_test.go index bddadcc0b4..e96dbc095d 100644 --- a/da/test/da_test.go +++ b/da/test/da_test.go @@ -1,7 +1,7 @@ package test import ( - "context" + "context" "encoding/json" "math/rand" "net" @@ -63,7 +63,7 @@ func TestDALC(t *testing.T) { httpServer := startMockCelestiaNodeServer(t) defer httpServer.Stop() - ctx := context.Background() + ctx := context.Background() for _, dalc := range registry.RegisteredClients() { t.Run(dalc, func(t *testing.T) { @@ -122,13 +122,13 @@ func doTestDALC(ctx context.Context, t *testing.T, dalc da.DataAvailabilityLayer assert.True(check.DataAvailable) // this height should not be used by DALC - check = dalc.CheckBlockAvailability(ctx, h1 - 1) + check = dalc.CheckBlockAvailability(ctx, h1-1) assert.Equal(da.StatusSuccess, check.Code) assert.False(check.DataAvailable) } func TestRetrieve(t *testing.T) { - ctx := context.Background() + ctx := context.Background() grpcServer := startMockGRPCServ(t) defer grpcServer.GracefulStop() diff --git a/mempool/clist/clist.go b/mempool/clist/clist.go index 5579b1d0f2..2e4171b1c7 100644 --- a/mempool/clist/clist.go +++ b/mempool/clist/clist.go @@ -24,7 +24,6 @@ import ( const MaxLength = int(^uint(0) >> 1) /* - CElement is an element of a linked-list Traversal from a CElement is goroutine-safe. @@ -41,7 +40,6 @@ the for-loop. Use sync.Cond when you need serial access to the "condition". In our case our condition is if `next != nil || removed`, and there's no reason to serialize that condition for goroutines waiting on NextWait() (since it's just a read operation). - */ type CElement struct { mtx tmsync.RWMutex diff --git a/mempool/clist/clist_test.go b/mempool/clist/clist_test.go index d10a1e5ae9..ccb50ca839 100644 --- a/mempool/clist/clist_test.go +++ b/mempool/clist/clist_test.go @@ -68,6 +68,7 @@ func TestSmall(t *testing.T) { // This test is quite hacky because it relies on SetFinalizer // which isn't guaranteed to run at all. +// //nolint:unused,deadcode func _TestGCFifo(t *testing.T) { if runtime.GOARCH != "amd64" { @@ -117,6 +118,7 @@ func _TestGCFifo(t *testing.T) { // This test is quite hacky because it relies on SetFinalizer // which isn't guaranteed to run at all. +// //nolint:unused,deadcode func _TestGCRandom(t *testing.T) { if runtime.GOARCH != "amd64" { From a1997444bd1015691e9940c503fbe0b06fa44ffe Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Wed, 23 Nov 2022 17:50:45 -0500 Subject: [PATCH 13/22] ran goimports --- da/da.go | 1 + mempool/cache.go | 3 ++- mempool/mempool.go | 1 + state/indexer/block/null/null.go | 3 ++- state/txindex/indexer_service.go | 3 ++- state/txindex/null/null.go | 3 ++- types/pb/dalc/dalc.pb.go | 10 ++++++---- types/pb/rollmint/rollmint.pb.go | 5 +++-- types/pb/rollmint/state.pb.go | 9 +++++---- 9 files changed, 24 insertions(+), 14 deletions(-) diff --git a/da/da.go b/da/da.go index dd947553c3..2d9d149c5e 100644 --- a/da/da.go +++ b/da/da.go @@ -2,6 +2,7 @@ package da import ( "context" + "github.com/celestiaorg/rollmint/log" "github.com/celestiaorg/rollmint/store" "github.com/celestiaorg/rollmint/types" diff --git a/mempool/cache.go b/mempool/cache.go index 49428a0246..79bc802936 100644 --- a/mempool/cache.go +++ b/mempool/cache.go @@ -3,8 +3,9 @@ package mempool import ( "container/list" - "github.com/tendermint/tendermint/types" "sync" + + "github.com/tendermint/tendermint/types" ) // TxCache defines an interface for raw transaction caching in a mempool. diff --git a/mempool/mempool.go b/mempool/mempool.go index 425e57d7f5..f1819e488d 100644 --- a/mempool/mempool.go +++ b/mempool/mempool.go @@ -4,6 +4,7 @@ import ( "crypto/sha256" "errors" "fmt" + abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/types" ) diff --git a/state/indexer/block/null/null.go b/state/indexer/block/null/null.go index cf4c681e9d..6917f112f8 100644 --- a/state/indexer/block/null/null.go +++ b/state/indexer/block/null/null.go @@ -4,9 +4,10 @@ import ( "context" "errors" - "github.com/celestiaorg/rollmint/state/indexer" "github.com/tendermint/tendermint/libs/pubsub/query" "github.com/tendermint/tendermint/types" + + "github.com/celestiaorg/rollmint/state/indexer" ) var _ indexer.BlockIndexer = (*BlockerIndexer)(nil) diff --git a/state/txindex/indexer_service.go b/state/txindex/indexer_service.go index 382ae2ed89..81e8ffbcc6 100644 --- a/state/txindex/indexer_service.go +++ b/state/txindex/indexer_service.go @@ -3,9 +3,10 @@ package txindex import ( "context" - "github.com/celestiaorg/rollmint/state/indexer" "github.com/tendermint/tendermint/libs/service" "github.com/tendermint/tendermint/types" + + "github.com/celestiaorg/rollmint/state/indexer" ) // XXX/TODO: These types should be moved to the indexer package. diff --git a/state/txindex/null/null.go b/state/txindex/null/null.go index 40f7362b11..fadd9a642a 100644 --- a/state/txindex/null/null.go +++ b/state/txindex/null/null.go @@ -4,9 +4,10 @@ import ( "context" "errors" - "github.com/celestiaorg/rollmint/state/txindex" abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/libs/pubsub/query" + + "github.com/celestiaorg/rollmint/state/txindex" ) var _ txindex.TxIndexer = (*TxIndex)(nil) diff --git a/types/pb/dalc/dalc.pb.go b/types/pb/dalc/dalc.pb.go index 2b19c42566..a9bedc05c4 100644 --- a/types/pb/dalc/dalc.pb.go +++ b/types/pb/dalc/dalc.pb.go @@ -6,15 +6,17 @@ package dalc import ( context "context" fmt "fmt" - rollmint "github.com/celestiaorg/rollmint/types/pb/rollmint" + io "io" + math "math" + math_bits "math/bits" + _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - io "io" - math "math" - math_bits "math/bits" + + rollmint "github.com/celestiaorg/rollmint/types/pb/rollmint" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/types/pb/rollmint/rollmint.pb.go b/types/pb/rollmint/rollmint.pb.go index ebd8c15038..d200285ae4 100644 --- a/types/pb/rollmint/rollmint.pb.go +++ b/types/pb/rollmint/rollmint.pb.go @@ -5,11 +5,12 @@ package rollmint import ( fmt "fmt" - proto "github.com/gogo/protobuf/proto" - types "github.com/tendermint/tendermint/abci/types" io "io" math "math" math_bits "math/bits" + + proto "github.com/gogo/protobuf/proto" + types "github.com/tendermint/tendermint/abci/types" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/types/pb/rollmint/state.pb.go b/types/pb/rollmint/state.pb.go index 2a2e790e0f..5f7bd122c8 100644 --- a/types/pb/rollmint/state.pb.go +++ b/types/pb/rollmint/state.pb.go @@ -5,6 +5,11 @@ package rollmint import ( fmt "fmt" + io "io" + math "math" + math_bits "math/bits" + time "time" + _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" @@ -12,10 +17,6 @@ import ( state "github.com/tendermint/tendermint/proto/tendermint/state" types "github.com/tendermint/tendermint/proto/tendermint/types" _ "google.golang.org/protobuf/types/known/timestamppb" - io "io" - math "math" - math_bits "math/bits" - time "time" ) // Reference imports to suppress errors if they are not otherwise used. From 28377e5d0c1a1958c63008f90e92a68ff899e106 Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Wed, 30 Nov 2022 14:52:17 -0500 Subject: [PATCH 14/22] Revert "ran goimports"- don't want to mess with tendermint files. This reverts commit a1997444bd1015691e9940c503fbe0b06fa44ffe. --- da/da.go | 1 - mempool/cache.go | 3 +-- mempool/mempool.go | 1 - state/indexer/block/null/null.go | 3 +-- state/txindex/indexer_service.go | 3 +-- state/txindex/null/null.go | 3 +-- types/pb/dalc/dalc.pb.go | 10 ++++------ types/pb/rollmint/rollmint.pb.go | 5 ++--- types/pb/rollmint/state.pb.go | 9 ++++----- 9 files changed, 14 insertions(+), 24 deletions(-) diff --git a/da/da.go b/da/da.go index 2d9d149c5e..dd947553c3 100644 --- a/da/da.go +++ b/da/da.go @@ -2,7 +2,6 @@ package da import ( "context" - "github.com/celestiaorg/rollmint/log" "github.com/celestiaorg/rollmint/store" "github.com/celestiaorg/rollmint/types" diff --git a/mempool/cache.go b/mempool/cache.go index 79bc802936..49428a0246 100644 --- a/mempool/cache.go +++ b/mempool/cache.go @@ -3,9 +3,8 @@ package mempool import ( "container/list" - "sync" - "github.com/tendermint/tendermint/types" + "sync" ) // TxCache defines an interface for raw transaction caching in a mempool. diff --git a/mempool/mempool.go b/mempool/mempool.go index f1819e488d..425e57d7f5 100644 --- a/mempool/mempool.go +++ b/mempool/mempool.go @@ -4,7 +4,6 @@ import ( "crypto/sha256" "errors" "fmt" - abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/types" ) diff --git a/state/indexer/block/null/null.go b/state/indexer/block/null/null.go index 6917f112f8..cf4c681e9d 100644 --- a/state/indexer/block/null/null.go +++ b/state/indexer/block/null/null.go @@ -4,10 +4,9 @@ import ( "context" "errors" + "github.com/celestiaorg/rollmint/state/indexer" "github.com/tendermint/tendermint/libs/pubsub/query" "github.com/tendermint/tendermint/types" - - "github.com/celestiaorg/rollmint/state/indexer" ) var _ indexer.BlockIndexer = (*BlockerIndexer)(nil) diff --git a/state/txindex/indexer_service.go b/state/txindex/indexer_service.go index 81e8ffbcc6..382ae2ed89 100644 --- a/state/txindex/indexer_service.go +++ b/state/txindex/indexer_service.go @@ -3,10 +3,9 @@ package txindex import ( "context" + "github.com/celestiaorg/rollmint/state/indexer" "github.com/tendermint/tendermint/libs/service" "github.com/tendermint/tendermint/types" - - "github.com/celestiaorg/rollmint/state/indexer" ) // XXX/TODO: These types should be moved to the indexer package. diff --git a/state/txindex/null/null.go b/state/txindex/null/null.go index fadd9a642a..40f7362b11 100644 --- a/state/txindex/null/null.go +++ b/state/txindex/null/null.go @@ -4,10 +4,9 @@ import ( "context" "errors" + "github.com/celestiaorg/rollmint/state/txindex" abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/libs/pubsub/query" - - "github.com/celestiaorg/rollmint/state/txindex" ) var _ txindex.TxIndexer = (*TxIndex)(nil) diff --git a/types/pb/dalc/dalc.pb.go b/types/pb/dalc/dalc.pb.go index a9bedc05c4..2b19c42566 100644 --- a/types/pb/dalc/dalc.pb.go +++ b/types/pb/dalc/dalc.pb.go @@ -6,17 +6,15 @@ package dalc import ( context "context" fmt "fmt" - io "io" - math "math" - math_bits "math/bits" - + rollmint "github.com/celestiaorg/rollmint/types/pb/rollmint" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - - rollmint "github.com/celestiaorg/rollmint/types/pb/rollmint" + io "io" + math "math" + math_bits "math/bits" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/types/pb/rollmint/rollmint.pb.go b/types/pb/rollmint/rollmint.pb.go index d200285ae4..ebd8c15038 100644 --- a/types/pb/rollmint/rollmint.pb.go +++ b/types/pb/rollmint/rollmint.pb.go @@ -5,12 +5,11 @@ package rollmint import ( fmt "fmt" + proto "github.com/gogo/protobuf/proto" + types "github.com/tendermint/tendermint/abci/types" io "io" math "math" math_bits "math/bits" - - proto "github.com/gogo/protobuf/proto" - types "github.com/tendermint/tendermint/abci/types" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/types/pb/rollmint/state.pb.go b/types/pb/rollmint/state.pb.go index 5f7bd122c8..2a2e790e0f 100644 --- a/types/pb/rollmint/state.pb.go +++ b/types/pb/rollmint/state.pb.go @@ -5,11 +5,6 @@ package rollmint import ( fmt "fmt" - io "io" - math "math" - math_bits "math/bits" - time "time" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" @@ -17,6 +12,10 @@ import ( state "github.com/tendermint/tendermint/proto/tendermint/state" types "github.com/tendermint/tendermint/proto/tendermint/types" _ "google.golang.org/protobuf/types/known/timestamppb" + io "io" + math "math" + math_bits "math/bits" + time "time" ) // Reference imports to suppress errors if they are not otherwise used. From de72520e0b48acceff8bcae66639eb24b2070068 Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Wed, 30 Nov 2022 15:29:40 -0500 Subject: [PATCH 15/22] goimports on da/da.go --- da/da.go | 1 + 1 file changed, 1 insertion(+) diff --git a/da/da.go b/da/da.go index dd947553c3..2d9d149c5e 100644 --- a/da/da.go +++ b/da/da.go @@ -2,6 +2,7 @@ package da import ( "context" + "github.com/celestiaorg/rollmint/log" "github.com/celestiaorg/rollmint/store" "github.com/celestiaorg/rollmint/types" From fc9c50bfb578abf15d7cb2fbc3d0deb85c9b05ca Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Wed, 30 Nov 2022 15:32:27 -0500 Subject: [PATCH 16/22] reverted clist_test.go --- mempool/clist/clist_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/mempool/clist/clist_test.go b/mempool/clist/clist_test.go index ccb50ca839..d10a1e5ae9 100644 --- a/mempool/clist/clist_test.go +++ b/mempool/clist/clist_test.go @@ -68,7 +68,6 @@ func TestSmall(t *testing.T) { // This test is quite hacky because it relies on SetFinalizer // which isn't guaranteed to run at all. -// //nolint:unused,deadcode func _TestGCFifo(t *testing.T) { if runtime.GOARCH != "amd64" { @@ -118,7 +117,6 @@ func _TestGCFifo(t *testing.T) { // This test is quite hacky because it relies on SetFinalizer // which isn't guaranteed to run at all. -// //nolint:unused,deadcode func _TestGCRandom(t *testing.T) { if runtime.GOARCH != "amd64" { From 945ea59be889227593acfd2f5b50129f9c7904cd Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Wed, 30 Nov 2022 15:34:57 -0500 Subject: [PATCH 17/22] unformatted clist --- mempool/clist/clist.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mempool/clist/clist.go b/mempool/clist/clist.go index 2e4171b1c7..5579b1d0f2 100644 --- a/mempool/clist/clist.go +++ b/mempool/clist/clist.go @@ -24,6 +24,7 @@ import ( const MaxLength = int(^uint(0) >> 1) /* + CElement is an element of a linked-list Traversal from a CElement is goroutine-safe. @@ -40,6 +41,7 @@ the for-loop. Use sync.Cond when you need serial access to the "condition". In our case our condition is if `next != nil || removed`, and there's no reason to serialize that condition for goroutines waiting on NextWait() (since it's just a read operation). + */ type CElement struct { mtx tmsync.RWMutex From 1985eea297842b9e4bb61a8d136f059c9c432d9f Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Mon, 12 Dec 2022 11:47:45 -0500 Subject: [PATCH 18/22] renamed context to ctx --- da/grpc/grpc.go | 12 ++++++------ da/grpc/mockserv/cmd/.gitignore | 2 -- da/mock/mock.go | 8 ++++---- 3 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 da/grpc/mockserv/cmd/.gitignore diff --git a/da/grpc/grpc.go b/da/grpc/grpc.go index 813ea5feab..485778b573 100644 --- a/da/grpc/grpc.go +++ b/da/grpc/grpc.go @@ -74,8 +74,8 @@ func (d *DataAvailabilityLayerClient) Stop() error { } // SubmitBlock proxies SubmitBlock request to gRPC server. -func (d *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block *types.Block) da.ResultSubmitBlock { - resp, err := d.client.SubmitBlock(context, &dalc.SubmitBlockRequest{Block: block.ToProto()}) +func (d *DataAvailabilityLayerClient) SubmitBlock(ctx context.Context, block *types.Block) da.ResultSubmitBlock { + resp, err := d.client.SubmitBlock(ctx, &dalc.SubmitBlockRequest{Block: block.ToProto()}) if err != nil { return da.ResultSubmitBlock{ BaseResult: da.BaseResult{Code: da.StatusError, Message: err.Error()}, @@ -91,8 +91,8 @@ func (d *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block } // CheckBlockAvailability proxies CheckBlockAvailability request to gRPC server. -func (d *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Context, daHeight uint64) da.ResultCheckBlock { - resp, err := d.client.CheckBlockAvailability(context, &dalc.CheckBlockAvailabilityRequest{DAHeight: daHeight}) +func (d *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context, daHeight uint64) da.ResultCheckBlock { + resp, err := d.client.CheckBlockAvailability(ctx, &dalc.CheckBlockAvailabilityRequest{DAHeight: daHeight}) if err != nil { return da.ResultCheckBlock{BaseResult: da.BaseResult{Code: da.StatusError, Message: err.Error()}} } @@ -103,8 +103,8 @@ func (d *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Con } // RetrieveBlocks proxies RetrieveBlocks request to gRPC server. -func (d *DataAvailabilityLayerClient) RetrieveBlocks(context context.Context, daHeight uint64) da.ResultRetrieveBlocks { - resp, err := d.client.RetrieveBlocks(context, &dalc.RetrieveBlocksRequest{DAHeight: daHeight}) +func (d *DataAvailabilityLayerClient) RetrieveBlocks(ctx context.Context, daHeight uint64) da.ResultRetrieveBlocks { + resp, err := d.client.RetrieveBlocks(ctx, &dalc.RetrieveBlocksRequest{DAHeight: daHeight}) if err != nil { return da.ResultRetrieveBlocks{BaseResult: da.BaseResult{Code: da.StatusError, Message: err.Error()}} } diff --git a/da/grpc/mockserv/cmd/.gitignore b/da/grpc/mockserv/cmd/.gitignore deleted file mode 100644 index f8d06b2f97..0000000000 --- a/da/grpc/mockserv/cmd/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -cmd -db diff --git a/da/mock/mock.go b/da/mock/mock.go index 7c82cbd534..1912552024 100644 --- a/da/mock/mock.go +++ b/da/mock/mock.go @@ -69,7 +69,7 @@ func (m *DataAvailabilityLayerClient) Stop() error { // SubmitBlock submits the passed in block to the DA layer. // This should create a transaction which (potentially) // triggers a state transition in the DA layer. -func (m *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block *types.Block) da.ResultSubmitBlock { +func (m *DataAvailabilityLayerClient) SubmitBlock(ctx context.Context, block *types.Block) da.ResultSubmitBlock { daHeight := atomic.LoadUint64(&m.daHeight) m.logger.Debug("Submitting block to DA layer!", "height", block.Header.Height, "dataLayerHeight", daHeight) @@ -98,13 +98,13 @@ func (m *DataAvailabilityLayerClient) SubmitBlock(context context.Context, block } // CheckBlockAvailability queries DA layer to check data availability of block corresponding to given header. -func (m *DataAvailabilityLayerClient) CheckBlockAvailability(context context.Context, daHeight uint64) da.ResultCheckBlock { - blocksRes := m.RetrieveBlocks(context, daHeight) +func (m *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context, daHeight uint64) da.ResultCheckBlock { + blocksRes := m.RetrieveBlocks(ctx, daHeight) return da.ResultCheckBlock{BaseResult: da.BaseResult{Code: blocksRes.Code}, DataAvailable: len(blocksRes.Blocks) > 0} } // RetrieveBlocks returns block at given height from data availability layer. -func (m *DataAvailabilityLayerClient) RetrieveBlocks(context context.Context, daHeight uint64) da.ResultRetrieveBlocks { +func (m *DataAvailabilityLayerClient) RetrieveBlocks(ctx context.Context, daHeight uint64) da.ResultRetrieveBlocks { if daHeight >= atomic.LoadUint64(&m.daHeight) { return da.ResultRetrieveBlocks{BaseResult: da.BaseResult{Code: da.StatusError, Message: "block not found"}} } From 64811b3c8e635d04f082d231100aa43ab3b09c7d Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Mon, 12 Dec 2022 13:01:08 -0500 Subject: [PATCH 19/22] use context.Background() for da_test.go --- da/test/da_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/da/test/da_test.go b/da/test/da_test.go index e96dbc095d..07e45bbced 100644 --- a/da/test/da_test.go +++ b/da/test/da_test.go @@ -176,7 +176,8 @@ func startMockCelestiaNodeServer(t *testing.T) *cmock.Server { return httpSrv } -func doTestRetrieve(ctx context.Context, t *testing.T, dalc da.DataAvailabilityLayerClient) { +func doTestRetrieve(t *testing.T, dalc da.DataAvailabilityLayerClient) { + ctx := context.Background() require := require.New(t) assert := assert.New(t) From 111e2c1f6414acaf10ec65e87cfa0e960181ce03 Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Mon, 12 Dec 2022 13:15:27 -0500 Subject: [PATCH 20/22] da_test context --- da/test/da_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/da/test/da_test.go b/da/test/da_test.go index 07e45bbced..d38fd2fc24 100644 --- a/da/test/da_test.go +++ b/da/test/da_test.go @@ -128,7 +128,6 @@ func doTestDALC(ctx context.Context, t *testing.T, dalc da.DataAvailabilityLayer } func TestRetrieve(t *testing.T) { - ctx := context.Background() grpcServer := startMockGRPCServ(t) defer grpcServer.GracefulStop() @@ -140,7 +139,7 @@ func TestRetrieve(t *testing.T) { dalc := registry.GetClient(client) _, ok := dalc.(da.BlockRetriever) if ok { - doTestRetrieve(ctx, t, dalc) + doTestRetrieve(t, dalc) } }) } From 1d9de66a60191ca2983388580c572071a2286f9d Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Tue, 13 Dec 2022 14:58:42 -0500 Subject: [PATCH 21/22] gofmt da --- da/test/da_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/da/test/da_test.go b/da/test/da_test.go index d38fd2fc24..7a54990413 100644 --- a/da/test/da_test.go +++ b/da/test/da_test.go @@ -176,7 +176,7 @@ func startMockCelestiaNodeServer(t *testing.T) *cmock.Server { } func doTestRetrieve(t *testing.T, dalc da.DataAvailabilityLayerClient) { - ctx := context.Background() + ctx := context.Background() require := require.New(t) assert := assert.New(t) From ee9177208ddc9225e44e296a7f7f1dbf7b48430f Mon Sep 17 00:00:00 2001 From: Connor O'Hara Date: Thu, 15 Dec 2022 16:28:01 -0500 Subject: [PATCH 22/22] switched to background context in doTestDALC --- da/test/da_test.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/da/test/da_test.go b/da/test/da_test.go index 7a54990413..c4b8967742 100644 --- a/da/test/da_test.go +++ b/da/test/da_test.go @@ -63,18 +63,17 @@ func TestDALC(t *testing.T) { httpServer := startMockCelestiaNodeServer(t) defer httpServer.Stop() - ctx := context.Background() - for _, dalc := range registry.RegisteredClients() { t.Run(dalc, func(t *testing.T) { - doTestDALC(ctx, t, registry.GetClient(dalc)) + doTestDALC(t, registry.GetClient(dalc)) }) } } -func doTestDALC(ctx context.Context, t *testing.T, dalc da.DataAvailabilityLayerClient) { +func doTestDALC(t *testing.T, dalc da.DataAvailabilityLayerClient) { require := require.New(t) assert := assert.New(t) + ctx := context.Background() // mock DALC will advance block height every 100ms conf := []byte{}