|
|
- // Import this in all *_test.go files to initialize ~/.tendermint_test.
-
- package tendermint_test
-
- import (
- "fmt"
- "os"
- "path"
- "strings"
-
- "github.com/spf13/viper"
-
- . "github.com/tendermint/tmlibs/common"
- "github.com/tendermint/tmlibs/logger"
- )
-
- func init() {
- // Creates ~/.tendermint_test
- EnsureDir(os.Getenv("HOME")+"/.tendermint_test", 0700)
- }
-
- func initTMRoot(rootDir string) {
- // Remove ~/.tendermint_test_bak
- if FileExists(rootDir + "_bak") {
- err := os.RemoveAll(rootDir + "_bak")
- if err != nil {
- PanicSanity(err.Error())
- }
- }
- // Move ~/.tendermint_test to ~/.tendermint_test_bak
- if FileExists(rootDir) {
- err := os.Rename(rootDir, rootDir+"_bak")
- if err != nil {
- PanicSanity(err.Error())
- }
- }
- // Create new dir
- EnsureDir(rootDir, 0700)
- 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 !FileExists(configFilePath) {
- // Ask user for moniker
- MustWriteFile(configFilePath, []byte(defaultConfig("anonymous")), 0644)
- }
- if !FileExists(genesisFilePath) {
- MustWriteFile(genesisFilePath, []byte(defaultGenesis), 0644)
- }
- // we always overwrite the priv val
- MustWriteFile(privFilePath, []byte(defaultPrivValidator), 0644)
- }
-
- func ResetConfig(localPath string) *viper.Viper {
- rootDir := os.Getenv("HOME") + "/.tendermint_test/" + localPath
- initTMRoot(rootDir)
-
- config := viper.New()
- config.SetConfigName("config")
- config.SetConfigType("toml")
- config.AddConfigPath(rootDir)
- err := config.ReadInConfig()
- if err != nil {
- Exit(Fmt("Could not read config: %v", err))
- }
- //config.WatchConfig()
-
- // Set defaults or panic
- if config.IsSet("chain_id") {
- Exit(fmt.Sprintf("Cannot set 'chain_id' via config.toml:\n %v\n %v\n ", config.Get("chain_id"), rootDir))
- }
-
- config.SetDefault("chain_id", "tendermint_test")
- config.SetDefault("genesis_file", rootDir+"/genesis.json")
- config.SetDefault("proxy_app", "dummy")
- config.SetDefault("abci", "socket")
- config.SetDefault("moniker", "anonymous")
- config.SetDefault("node_laddr", "tcp://0.0.0.0:36656")
- config.SetDefault("fast_sync", false)
- config.SetDefault("skip_upnp", true)
- config.SetDefault("addrbook_file", rootDir+"/addrbook.json")
- config.SetDefault("addrbook_strict", true) // disable to allow connections locally
- config.SetDefault("pex_reactor", false) // enable for peer exchange
- config.SetDefault("priv_validator_file", rootDir+"/priv_validator.json")
- config.SetDefault("db_backend", "memdb")
- config.SetDefault("db_dir", rootDir+"/data")
- config.SetDefault("log_level", "info")
- config.SetDefault("rpc_laddr", "tcp://0.0.0.0:36657")
- config.SetDefault("grpc_laddr", "tcp://0.0.0.0:36658")
- config.SetDefault("prof_laddr", "")
- config.SetDefault("revision_file", rootDir+"/revision")
- config.SetDefault("cs_wal_file", rootDir+"/data/cs.wal/wal")
- config.SetDefault("cs_wal_light", false)
- config.SetDefault("filter_peers", false)
-
- config.SetDefault("block_size", 10000)
- config.SetDefault("block_part_size", 65536) // part size 64K
- config.SetDefault("disable_data_hash", false)
- config.SetDefault("timeout_handshake", 10000)
- config.SetDefault("timeout_propose", 2000)
- config.SetDefault("timeout_propose_delta", 1)
- config.SetDefault("timeout_prevote", 10)
- config.SetDefault("timeout_prevote_delta", 1)
- config.SetDefault("timeout_precommit", 10)
- config.SetDefault("timeout_precommit_delta", 1)
- config.SetDefault("timeout_commit", 10)
- config.SetDefault("skip_timeout_commit", true)
- config.SetDefault("mempool_recheck", true)
- config.SetDefault("mempool_recheck_empty", true)
- config.SetDefault("mempool_broadcast", true)
- config.SetDefault("mempool_wal_dir", "")
-
- config.SetDefault("tx_index", "kv")
-
- logger.SetLogLevel(config.GetString("log_level"))
-
- return config
- }
-
- var defaultConfigTmpl = `# This is a TOML config file.
- # For more information, see https://github.com/toml-lang/toml
-
- proxy_app = "dummy"
- moniker = "__MONIKER__"
- node_laddr = "tcp://0.0.0.0:36656"
- seeds = ""
- fast_sync = false
- db_backend = "memdb"
- log_level = "info"
- rpc_laddr = "tcp://0.0.0.0:36657"
- `
-
- func defaultConfig(moniker string) (defaultConfig string) {
- defaultConfig = strings.Replace(defaultConfigTmpl, "__MONIKER__", moniker, -1)
- return
- }
-
- var defaultGenesis = `{
- "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 defaultPrivValidator = `{
- "address": "D028C9981F7A87F3093672BF0D5B0E2A1B3ED456",
- "pub_key": {
- "type": "ed25519",
- "data": "3B3069C422E19688B45CBFAE7BB009FC0FA1B1EA86593519318B7214853803C8"
- },
- "priv_key": {
- "type": "ed25519",
- "data": "27F82582AEFAE7AB151CFB01C48BB6C1A0DA78F9BDDA979A9F70A84D074EB07D3B3069C422E19688B45CBFAE7BB009FC0FA1B1EA86593519318B7214853803C8"
- },
- "last_height": 0,
- "last_round": 0,
- "last_step": 0
- }`
|