diff --git a/code/go/0chain.net/blobber/http.go b/code/go/0chain.net/blobber/http.go index 1c31489b3..c5df60e1d 100644 --- a/code/go/0chain.net/blobber/http.go +++ b/code/go/0chain.net/blobber/http.go @@ -115,7 +115,6 @@ func initHandlers(r *mux.Router, devMode bool) { handler.SetupHandlers(r) handler.SetupSwagger() common.SetAdminCredentials(devMode) - common.Set0boxDetails() } func initProfHandlers(mux *http.ServeMux) { diff --git a/code/go/0chain.net/blobber/main.go b/code/go/0chain.net/blobber/main.go index 3f7d34438..d30e075ad 100644 --- a/code/go/0chain.net/blobber/main.go +++ b/code/go/0chain.net/blobber/main.go @@ -25,6 +25,8 @@ func main() { panic(err) } + common.Set0boxDetails() + if err := setupNode(); err != nil { logging.Logger.Error("Error setting up blobber node " + err.Error()) panic(err) diff --git a/code/go/0chain.net/blobbercore/handler/protocol.go b/code/go/0chain.net/blobbercore/handler/protocol.go index 34b788fe8..acf86d873 100644 --- a/code/go/0chain.net/blobbercore/handler/protocol.go +++ b/code/go/0chain.net/blobbercore/handler/protocol.go @@ -3,6 +3,8 @@ package handler import ( "context" "errors" + "github.com/0chain/blobber/code/go/0chain.net/blobbercore/datastore" + "strings" "sync" "github.com/0chain/gosdk/core/client" @@ -10,7 +12,6 @@ import ( "github.com/0chain/blobber/code/go/0chain.net/blobbercore/allocation" "github.com/0chain/blobber/code/go/0chain.net/blobbercore/config" - "github.com/0chain/blobber/code/go/0chain.net/blobbercore/datastore" "github.com/0chain/blobber/code/go/0chain.net/blobbercore/filestore" "github.com/0chain/blobber/code/go/0chain.net/core/common" "github.com/0chain/blobber/code/go/0chain.net/core/logging" @@ -70,6 +71,8 @@ func getStorageNode() (*transaction.StorageNode, error) { sn.IsEnterprise = config.Configuration.IsEnterprise sn.StorageVersion = allocation.StorageV2 + sn.ManagingWallet = common.ClientId0box + return sn, nil } @@ -80,15 +83,10 @@ func RegisterBlobber(ctx context.Context) error { return e }) - if err != nil { // blobber is not registered yet - txn, err := sendSmartContractBlobberAdd() - if err != nil { - logging.Logger.Error("Error in add blobber", zap.Any("err", err)) - return err - } - - logging.Logger.Info("Verified blobber register transaction", zap.String("txn_hash", txn.Hash), zap.Any("txn_output", txn.TransactionOutput)) - return nil + _, err = sendSmartContractBlobberAdd() + if err != nil && !strings.Contains(err.Error(), "blobber already exists") { + logging.Logger.Error("Error in add blobber", zap.Any("err", err)) + return err } txnHash, err := SendHealthCheck(common.ProviderTypeBlobber) diff --git a/code/go/0chain.net/core/common/admin.go b/code/go/0chain.net/core/common/admin.go index f538d3969..d8aba7ba4 100644 --- a/code/go/0chain.net/core/common/admin.go +++ b/code/go/0chain.net/core/common/admin.go @@ -11,7 +11,7 @@ import ( // global username and password used to access endpoints only by admin var gUsername, gPassword string var isDevelopment bool -var PublicKey0box string +var ClientId0box, PublicKey0box string func SetAdminCredentials(devMode bool) { gUsername = viper.GetString("admin.username") @@ -42,6 +42,7 @@ func AuthenticateAdmin(handler ReqRespHandlerf) ReqRespHandlerf { func Set0boxDetails() { logging.Logger.Info("Setting 0box details") + ClientId0box = viper.GetString("0box.client_id") PublicKey0box = viper.GetString("0box.public_key") logging.Logger.Info("0box public key", zap.Any("public_key", PublicKey0box)) } diff --git a/code/go/0chain.net/core/transaction/entity.go b/code/go/0chain.net/core/transaction/entity.go index 0bc02005b..89f5b433e 100644 --- a/code/go/0chain.net/core/transaction/entity.go +++ b/code/go/0chain.net/core/transaction/entity.go @@ -45,6 +45,7 @@ type StorageNode struct { StakePoolSettings StakePoolSettings `json:"stake_pool_settings"` IsEnterprise bool `json:"is_enterprise"` StorageVersion int `json:"storage_version"` + ManagingWallet string `json:"managing_wallet"` } type BlobberAllocation struct {