Skip to content

Commit

Permalink
Merge pull request #85 from 0chain/fix/refacor_conf
Browse files Browse the repository at this point in the history
Fix/refacor conf
  • Loading branch information
cnlangzi authored Aug 16, 2021
2 parents 08d27a2 + 984b86c commit 308544e
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 68 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-zboxcli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ jobs:
tag_name: ${{ github.event.inputs.version_tag }}
release_name: ${{ github.event.inputs.version_tag }}
draft: false
prerelease: false
prerelease: false
83 changes: 26 additions & 57 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@ package cmd
import (
"encoding/json"
"fmt"
"github.com/0chain/gosdk/core/logger"
"io/ioutil"
"os"
"path/filepath"
"sync"

"github.com/0chain/gosdk/core/conf"
"github.com/0chain/gosdk/core/logger"
"github.com/0chain/gosdk/core/transaction"

"github.com/spf13/cobra"
"github.com/spf13/viper"

"github.com/0chain/gosdk/zboxcore/blockchain"

Expand All @@ -30,11 +32,7 @@ var cDir string
var bSilent bool
var allocUnderRepair bool

var preferredBlobbers []string
var clientConfig string
var minSubmit int
var minCfm int
var CfmChainLength int

var rootCmd = &cobra.Command{
Use: "zbox",
Expand Down Expand Up @@ -80,46 +78,29 @@ func getConfigDir() string {
}

func initConfig() {
nodeConfig := viper.New()
networkConfig := viper.New()

var configDir string
if cDir != "" {
configDir = cDir
} else {
configDir = getConfigDir()
}
// Search config in home directory with name ".cobra" (without extension).
nodeConfig.AddConfigPath(configDir)
if &cfgFile != nil && len(cfgFile) > 0 {
nodeConfig.SetConfigFile(configDir + "/" + cfgFile)
} else {
nodeConfig.SetConfigFile(configDir + "/" + "config.yaml")
}

networkConfig.AddConfigPath(configDir)
if &networkFile != nil && len(networkFile) > 0 {
networkConfig.SetConfigFile(configDir + "/" + networkFile)
} else {
networkConfig.SetConfigFile(configDir + "/" + "network.yaml")
if cfgFile == "" {
cfgFile = "config.yaml"
}

if err := nodeConfig.ReadInConfig(); err != nil {
cfg, err := conf.LoadConfigFile(filepath.Join(configDir, cfgFile))
if err != nil {
fmt.Println("Can't read config:", err)
os.Exit(1)
}

blockWorker := nodeConfig.GetString("block_worker")
preferredBlobbers = nodeConfig.GetStringSlice("preferred_blobbers")
signScheme := nodeConfig.GetString("signature_scheme")
chainID := nodeConfig.GetString("chain_id")
minSubmit = nodeConfig.GetInt("min_submit")
minCfm = nodeConfig.GetInt("min_confirmation")
CfmChainLength = nodeConfig.GetInt("confirmation_chain_length")
// additional settings depending network latency
maxTxnQuery := nodeConfig.GetInt("max_txn_query")
querySleepTime := nodeConfig.GetInt("query_sleep_time")
transaction.SetConfig(&cfg)

//TODO: move the private key storage to the keychain or secure storage
if networkFile == "" {
networkFile = "network.yaml"
}
network, _ := conf.LoadNetworkFile(filepath.Join(configDir, networkFile))

// syncing loggers
logger.SyncLoggers([]*logger.Logger{zcncore.GetLogger(), sdk.GetLogger()})
Expand All @@ -128,22 +109,18 @@ func initConfig() {
zcncore.SetLogFile("cmdlog.log", !bSilent)
sdk.SetLogFile("cmdlog.log", !bSilent)

err := zcncore.InitZCNSDK(blockWorker, signScheme,
zcncore.WithChainID(chainID),
zcncore.WithMinSubmit(minSubmit),
zcncore.WithMinConfirmation(minCfm),
zcncore.WithConfirmationChainLength(CfmChainLength))
err = zcncore.InitZCNSDK(cfg.BlockWorker, cfg.SignatureScheme,
zcncore.WithChainID(cfg.ChainID),
zcncore.WithMinSubmit(cfg.MinSubmit),
zcncore.WithMinConfirmation(cfg.MinConfirmation),
zcncore.WithConfirmationChainLength(cfg.ConfirmationChainLength))
if err != nil {
fmt.Println("Error initializing core SDK.", err)
os.Exit(1)
}

if err := networkConfig.ReadInConfig(); err == nil {
miners := networkConfig.GetStringSlice("miners")
sharders := networkConfig.GetStringSlice("sharders")
if len(miners) > 0 && len(sharders) > 0 {
zcncore.SetNetwork(miners, sharders)
}
if network.IsValid() {
zcncore.SetNetwork(network.Miners, network.Sharders)
}

// is freshly created wallet?
Expand Down Expand Up @@ -225,26 +202,18 @@ func initConfig() {
}

//init the storage sdk with the known miners, sharders and client wallet info
err = sdk.InitStorageSDK(clientConfig, blockWorker, chainID, signScheme, preferredBlobbers)
err = sdk.InitStorageSDK(clientConfig, cfg.BlockWorker, cfg.ChainID, cfg.SignatureScheme, cfg.PreferredBlobbers)
if err != nil {
fmt.Println("Error in sdk init", err)
os.Exit(1)
}

// additional settings depending network latency
if maxTxnQuery > 0 {
blockchain.SetMaxTxnQuery(maxTxnQuery)
}
if querySleepTime > 0 {
blockchain.SetQuerySleepTime(querySleepTime)
}
blockchain.SetMaxTxnQuery(cfg.MaxTxnQuery)
blockchain.SetQuerySleepTime(cfg.QuerySleepTime)

if err := networkConfig.ReadInConfig(); err == nil {
miners := networkConfig.GetStringSlice("miners")
sharders := networkConfig.GetStringSlice("sharders")
if len(miners) > 0 && len(sharders) > 0 {
sdk.SetNetwork(miners, sharders)
}
if network.IsValid() {
sdk.SetNetwork(network.Miners, network.Sharders)
}

sdk.SetNumBlockDownloads(10)
Expand Down
6 changes: 2 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ module github.com/0chain/zboxcli
go 1.13

require (
github.com/0chain/gosdk v1.2.82-0.20210806092509-faf62ccf8f8f
github.com/lithammer/shortuuid v3.0.0+incompatible // indirect
github.com/0chain/gosdk v1.2.82
github.com/mattn/go-colorable v0.1.4 // indirect
github.com/mattn/go-runewidth v0.0.10 // indirect
github.com/mitchellh/go-homedir v1.1.0
Expand All @@ -14,9 +13,8 @@ require (
github.com/spf13/cobra v1.1.1
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.7.0
gopkg.in/cheggaaa/pb.v1 v1.0.28
)

// temporary, for development
// replace github.com/0chain/gosdk => ../gosdk
//replace github.com/0chain/gosdk => ../gosdk
12 changes: 6 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiy
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/0chain/gosdk v1.2.80-0.20210730183026-29ea38eb11a3 h1:DL/s9soz6kuse59kOGpJKL0eEIaX+sE3w6pY4Owf2PM=
github.com/0chain/gosdk v1.2.80-0.20210730183026-29ea38eb11a3/go.mod h1:hdcqCl4oksjF5pU0XqvaTlNotppFOiGWrzVHfEMgvXM=
github.com/0chain/gosdk v1.2.82-0.20210806092509-faf62ccf8f8f h1:xZyuMghClBUZm75dDGkg3ITO0bX3E3+PSftou/isBDk=
github.com/0chain/gosdk v1.2.82-0.20210806092509-faf62ccf8f8f/go.mod h1:Q+jKgS1tNJ9te1U2g91XB5sQ+sh/v2v8lRIzvgFXNUQ=
github.com/0chain/errors v1.0.2 h1:IIUMeh/qFlqDcyHesjU92CpRMVz9dIQWAtZooqrYinA=
github.com/0chain/errors v1.0.2/go.mod h1:5t76jLb56TKfg/K2VD+eUMmNZJ42QsIRI8KzWuztwU4=
github.com/0chain/gosdk v1.2.82 h1:qm0BkPAaiZqKbrgCPf9csaZqTaBkPTrqy9Ehu3Q2D4M=
github.com/0chain/gosdk v1.2.82/go.mod h1:Bl/wsHdlktgXybdzkHPfaf6ATe7mPmew/xF3ki2gskQ=
github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4=
github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc=
github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4=
Expand Down Expand Up @@ -280,8 +280,8 @@ github.com/google/protobuf v3.14.0+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bj
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.5 h1:kxhtnfFVi+rYdOALN0B3k9UT86zVJKfBimRaciULW4I=
github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
Expand Down Expand Up @@ -427,7 +427,7 @@ github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
github.com/lithammer/shortuuid v3.0.0+incompatible/go.mod h1:FR74pbAuElzOUuenUHTK2Tciko1/vKuIKS9dSkDrA4w=
github.com/lithammer/shortuuid/v3 v3.0.7 h1:trX0KTHy4Pbwo/6ia8fscyHoGA+mf1jWbPJVuvyJQQ8=
github.com/lithammer/shortuuid/v3 v3.0.7/go.mod h1:vMk8ke37EmiewwolSO1NLW8vP4ZaKlRuDIi8tWWmAts=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
Expand Down

0 comments on commit 308544e

Please sign in to comment.