OSDN Git Service

Merge pull request #935 from Bytom/dev
[bytom/bytom.git] / config / toml.go
index 50262aa..3bd345e 100644 (file)
@@ -1,17 +1,13 @@
 package config
 
 import (
-       "os"
        "path"
-       "path/filepath"
-       "strings"
 
        cmn "github.com/tendermint/tmlibs/common"
 )
 
 /****** these are for production settings ***********/
-
-func EnsureRoot(rootDir string) {
+func EnsureRoot(rootDir string, network string) {
        cmn.EnsureDir(rootDir, 0700)
        cmn.EnsureDir(rootDir+"/data", 0700)
 
@@ -19,122 +15,42 @@ func EnsureRoot(rootDir string) {
 
        // Write default config file if missing.
        if !cmn.FileExists(configFilePath) {
-               // Ask user for moniker
-               // moniker := cfg.Prompt("Type hostname: ", "anonymous")
-               cmn.MustWriteFile(configFilePath, []byte(defaultConfig("anonymous")), 0644)
+               cmn.MustWriteFile(configFilePath, []byte(selectNetwork(network)), 0644)
        }
 }
 
 var defaultConfigTmpl = `# This is a TOML config file.
 # For more information, see https://github.com/toml-lang/toml
-
-moniker = "__MONIKER__"
 fast_sync = true
 db_backend = "leveldb"
-log_level = "state:info,*:info"
-api_addr = "0.0.0.0:1999"
+api_addr = "0.0.0.0:9888"
+`
 
-[rpc]
+var mainNetConfigTmpl = `chain_id = "mainnet"
+[p2p]
 laddr = "tcp://0.0.0.0:46657"
+seeds = "45.79.213.28:46657,198.74.61.131:46657,212.111.41.245:46657,47.100.214.154:46657,47.100.109.199:46657,47.100.105.165:46657"
+`
 
+var testNetConfigTmpl = `chain_id = "testnet"
 [p2p]
 laddr = "tcp://0.0.0.0:46656"
-seeds = ""
+seeds = "47.96.42.1:46656,172.104.224.219:46656,45.118.132.164:46656"
 `
 
-func defaultConfig(moniker string) string {
-       return strings.Replace(defaultConfigTmpl, "__MONIKER__", moniker, -1)
-}
-
-/****** these are for test settings ***********/
-
-func ResetTestRoot(testName string) *Config {
-       rootDir := os.ExpandEnv("$HOME/.test")
-       rootDir = filepath.Join(rootDir, testName)
-       if cmn.FileExists(rootDir + "_bak") {
-               err := os.RemoveAll(rootDir + "_bak")
-               if err != nil {
-                       cmn.PanicSanity(err.Error())
-               }
-       }
-       if cmn.FileExists(rootDir) {
-               err := os.Rename(rootDir, rootDir+"_bak")
-               if err != nil {
-                       cmn.PanicSanity(err.Error())
-               }
-       }
-       // Create new dir
-       cmn.EnsureDir(rootDir, 0700)
-       cmn.EnsureDir(rootDir+"/data", 0700)
-
-       configFilePath := path.Join(rootDir, "config.toml")
-       genesisFilePath := path.Join(rootDir, "genesis.json")
-       privFilePath := path.Join(rootDir, "priv_validator.json")
-
-       // Write default config file if missing.
-       if !cmn.FileExists(configFilePath) {
-               // Ask user for moniker
-               cmn.MustWriteFile(configFilePath, []byte(testConfig("anonymous")), 0644)
-       }
-       if !cmn.FileExists(genesisFilePath) {
-               cmn.MustWriteFile(genesisFilePath, []byte(testGenesis), 0644)
-       }
-       // we always overwrite the priv val
-       cmn.MustWriteFile(privFilePath, []byte(testPrivValidator), 0644)
-
-       config := TestConfig().SetRoot(rootDir)
-       return config
-}
-
-var testConfigTmpl = `# This is a TOML config file.
-# For more information, see https://github.com/toml-lang/toml
-
-moniker = "__MONIKER__"
-fast_sync = false
-db_backend = "memdb"
-log_level = "info"
-api_addr = "0.0.0.0:1999"
-
-[rpc]
-laddr = "tcp://0.0.0.0:36657"
-
+var soloNetConfigTmpl = `chain_id = "solonet"
 [p2p]
-laddr = "tcp://0.0.0.0:36656"
+laddr = "tcp://0.0.0.0:46658"
 seeds = ""
 `
 
-func testConfig(moniker string) (testConfig string) {
-       testConfig = strings.Replace(testConfigTmpl, "__MONIKER__", moniker, -1)
-       return
+// Select network seeds to merge a new string.
+func selectNetwork(network string) string {
+       if network == "testnet" {
+               return defaultConfigTmpl + testNetConfigTmpl
+       } else if network == "mainnet" {
+               return defaultConfigTmpl + mainNetConfigTmpl
+       } else {
+               return defaultConfigTmpl + soloNetConfigTmpl
+       }
 }
-
-var testGenesis = `{
-  "genesis_time": "0001-01-01T00:00:00.000Z",
-  "chain_id": "tendermint_test",
-  "validators": [
-    {
-      "pub_key": {
-        "type": "ed25519",
-        "data":"3B3069C422E19688B45CBFAE7BB009FC0FA1B1EA86593519318B7214853803C8"
-      },
-      "amount": 10,
-      "name": ""
-    }
-  ],
-  "app_hash": ""
-}`
-
-var testPrivValidator = `{
-  "address": "D028C9981F7A87F3093672BF0D5B0E2A1B3ED456",
-  "pub_key": {
-    "type": "ed25519",
-    "data": "3B3069C422E19688B45CBFAE7BB009FC0FA1B1EA86593519318B7214853803C8"
-  },
-  "priv_key": {
-    "type": "ed25519",
-    "data": "27F82582AEFAE7AB151CFB01C48BB6C1A0DA78F9BDDA979A9F70A84D074EB07D3B3069C422E19688B45CBFAE7BB009FC0FA1B1EA86593519318B7214853803C8"
-  },
-  "last_height": 0,
-  "last_round": 0,
-  "last_step": 0
-}`