Skip to content

Commit

Permalink
pulled upstream code
Browse files Browse the repository at this point in the history
  • Loading branch information
chandiniv1 committed Aug 8, 2023
1 parent db29336 commit 72237a0
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 864 deletions.
108 changes: 37 additions & 71 deletions da/avail/avail.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,38 @@ import (
"net/http"

ds "github.com/ipfs/go-datastore"
openrpc "github.com/rollkit/celestia-openrpc"
openrpcns "github.com/rollkit/celestia-openrpc/types/namespace"

"github.com/rollkit/rollkit/da"
"github.com/rollkit/rollkit/da/avail/mock"
"github.com/rollkit/rollkit/da/avail/datasubmit"
"github.com/rollkit/rollkit/log"
"github.com/rollkit/rollkit/types"
)

type Config struct {
Seed string `json:"seed"`
ApiURL string `json:"api_url"`
Size int `json:"size"`
AppID int `json:"app_id"`
BaseURL string `json:"base_url"`
Seed string `json:"seed"`
ApiURL string `json:"api_url"`
AppID int `json:"app_id"`
confidence float64 `json:"confidence"`
}

// DataAvailabilityLayerClient use celestia-node public API.
type DataAvailabilityLayerClient struct {
rpc *openrpc.Client
namespace openrpcns.Namespace
namespace types.NamespaceID
config Config
logger log.Logger
}

type Confidence struct {
Block uint32 `json:"block"`
Confidence float64 `json:"confidence"`
SerialisedConfidence *string `json:"serialised_confidence,omitempty"`
}
type AppData struct {
Block uint32 `json:"block"`
Extrinsics string `json:"extrinsics"`
}

var _ da.DataAvailabilityLayerClient = &DataAvailabilityLayerClient{}
var _ da.BlockRetriever = &DataAvailabilityLayerClient{}

Expand All @@ -47,14 +56,17 @@ func (c *DataAvailabilityLayerClient) Init(namespaceID types.NamespaceID, config

// Start prepares DataAvailabilityLayerClient to work.
func (c *DataAvailabilityLayerClient) Start() error {

c.logger.Info("starting avail Data Availability Layer Client", "baseURL", c.config.ApiURL)

return nil
}

// Stop stops DataAvailabilityLayerClient.
func (c *DataAvailabilityLayerClient) Stop() error {

c.logger.Info("stopping Avail Data Availability Layer Client")

return nil
}

Expand All @@ -71,7 +83,7 @@ func (c *DataAvailabilityLayerClient) SubmitBlocks(ctx context.Context, blocks [
},
}
}
err = mock.SubmitData(1000, c.config.ApiURL, c.config.Seed, 0, data)
err = datasubmit.SubmitData(c.config.ApiURL, c.config.Seed, c.config.AppID, data)

if err != nil {
return da.ResultSubmitBlocks{
Expand All @@ -87,23 +99,17 @@ func (c *DataAvailabilityLayerClient) SubmitBlocks(ctx context.Context, blocks [
BaseResult: da.BaseResult{
Code: da.StatusSuccess,
Message: "data submitted succesfully",
DAHeight: 1, //uint64(txResponse.Height),
DAHeight: 1,
},
}
}

// CheckBlockAvailability queries DA layer to check data availability of block at given height.
func (a *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context, dataLayerHeight uint64) da.ResultCheckBlock {
// CheckBlockAvailability queries DA layer to check data availability of block.
func (c *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context, dataLayerHeight uint64) da.ResultCheckBlock {

type Confidence struct {
Block uint32 `json:"block"`
Confidence float64 `json:"confidence"`
SerialisedConfidence *string `json:"serialised_confidence,omitempty"`
}

fmt.Println("check block availability called.........")
blockNumber := dataLayerHeight
confidenceURL := fmt.Sprintf("http://localhost:7000/v1/confidence/%d", blockNumber)

confidenceURL := fmt.Sprintf(c.config.BaseURL+"/confidence/%d", blockNumber)

response, err := http.Get(confidenceURL)

Expand Down Expand Up @@ -134,60 +140,21 @@ func (a *DataAvailabilityLayerClient) CheckBlockAvailability(ctx context.Context
Code: da.StatusSuccess,
DAHeight: uint64(confidenceObject.Block),
},
DataAvailable: confidenceObject.Confidence > 92,
DataAvailable: confidenceObject.Confidence > c.config.confidence,
}
}

// RetrieveBlocks gets a batch of blocks from DA layer.

// func (c *DataAvailabilityLayerClient) RetrieveBlocks(ctx context.Context, dataLayerHeight uint64) da.ResultRetrieveBlocks {
// type AppData struct {
// Block uint32 `json:"block"`
// Extrinsics string `json:"extrinsics"`
// }
// blocks := make([]*types.Block, 1)
// blocks[0] = new(types.Block)
// blockNumber := dataLayerHeight
// appDataURL := fmt.Sprintf("http://localhost:7000/v1/appdata/%d?decode=true", blockNumber)
// response, err := http.Get(appDataURL)
// if err != nil {
// return da.ResultRetrieveBlocks{
// BaseResult: da.BaseResult{
// Code: da.StatusError,
// Message: err.Error(),
// },
// }
// }
// responseData, err := ioutil.ReadAll(response.Body)
// if err != nil {
// return da.ResultRetrieveBlocks{
// BaseResult: da.BaseResult{
// Code: da.StatusError,
// Message: err.Error(),
// },
// }
// }
// var appDataObject AppData
// json.Unmarshal(responseData, &appDataObject)

// return da.ResultRetrieveBlocks{
// BaseResult: da.BaseResult{
// Code: da.StatusSuccess,
// DAHeight: uint64(appDataObject.Block),
// Message: "block data: " + appDataObject.Extrinsics,
// },
// Blocks: blocks,
// }
// }
//RetrieveBlocks gets the block from DA layer.

func (c *DataAvailabilityLayerClient) RetrieveBlocks(ctx context.Context, dataLayerHeight uint64) da.ResultRetrieveBlocks {
fmt.Println("retrieve blocks method called.................")

blocks := make([]*types.Block, 1)
blocks[0] = new(types.Block)

blockNumber := 12
appDataURL := fmt.Sprintf("http://localhost:7000/v1/appdata/%d?decode=true", blockNumber)
blockNumber := dataLayerHeight

appDataURL := fmt.Sprintf(c.config.BaseURL+"/appdata/%d?decode=true", blockNumber)

response, err := http.Get(appDataURL)
if err != nil {
return da.ResultRetrieveBlocks{
Expand All @@ -197,7 +164,6 @@ func (c *DataAvailabilityLayerClient) RetrieveBlocks(ctx context.Context, dataLa
},
}
}

responseData, err := ioutil.ReadAll(response.Body)
if err != nil {
return da.ResultRetrieveBlocks{
Expand All @@ -208,15 +174,15 @@ func (c *DataAvailabilityLayerClient) RetrieveBlocks(ctx context.Context, dataLa
}
}

fmt.Println("retrieved block data is", string(responseData))
var appDataObject AppData
json.Unmarshal(responseData, &appDataObject)

return da.ResultRetrieveBlocks{
BaseResult: da.BaseResult{
Code: da.StatusSuccess,
DAHeight: 1, //uint64(appDataObject.Block),
Message: "block data: ", //+ appDataObject.Extrinsics,
DAHeight: uint64(appDataObject.Block),
Message: "block data: " + appDataObject.Extrinsics,
},
Blocks: blocks,
}

}
16 changes: 5 additions & 11 deletions da/avail/mock/messages.go → da/avail/datasubmit/submitdata.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package mock
package datasubmit

import (
"fmt"

gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4"
"github.com/centrifuge/go-substrate-rpc-client/v4/signature"
"github.com/centrifuge/go-substrate-rpc-client/v4/types"
)

func SubmitData(size int, apiURL string, seed string, AppID int, data []byte) error {
func SubmitData(apiURL string, seed string, appID int, data []byte) error {
api, err := gsrpc.NewSubstrateAPI(apiURL)
if err != nil {
return err
Expand All @@ -18,12 +16,9 @@ func SubmitData(size int, apiURL string, seed string, AppID int, data []byte) er
if err != nil {
return err
}

var appID int

// if app id is greater than 0 then it must be created before submitting data
if AppID != 0 {
appID = AppID
if appID == 0 {
return err
}

c, err := types.NewCall(meta, "DataAvailability.submit_data", data)
Expand Down Expand Up @@ -79,11 +74,10 @@ func SubmitData(size int, apiURL string, seed string, AppID int, data []byte) er
}

// Send the extrinsic
hash, err := api.RPC.Author.SubmitExtrinsic(ext)
_, err = api.RPC.Author.SubmitExtrinsic(ext)
if err != nil {
return err
}
fmt.Printf("Data submitted: %v against appID %v sent with hash %#x\n", data, appID, hash)

return nil

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,6 @@ replace (
// github.com/vedhavyas/go-subkey => github.com/vedhavyas/go-subkey/v2 v2.0.0
// github.com/vedhavyas/go-subkey/v2 => github.com/vedhavyas/go-subkey/v2 v2.0.0
github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.2-alpha.regen.4
github.com/tendermint/tendermint => github.com/rollkit/cometbft v0.0.0-20230524013001-2968c8b8b121
google.golang.org/grpc => google.golang.org/grpc v1.33.2

)
Loading

0 comments on commit 72237a0

Please sign in to comment.