github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/node/defaults.go (about)

     1  
     2  //此源码被清华学神尹成大魔王专业翻译分析并修改
     3  //尹成QQ77025077
     4  //尹成微信18510341407
     5  //尹成所在QQ群721929980
     6  //尹成邮箱 yinc13@mails.tsinghua.edu.cn
     7  //尹成毕业于清华大学,微软区块链领域全球最有价值专家
     8  //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
     9  //版权所有2016 Go Ethereum作者
    10  //此文件是Go以太坊库的一部分。
    11  //
    12  //Go-Ethereum库是免费软件:您可以重新分发它和/或修改
    13  //根据GNU发布的较低通用公共许可证的条款
    14  //自由软件基金会,或者许可证的第3版,或者
    15  //(由您选择)任何更高版本。
    16  //
    17  //Go以太坊图书馆的发行目的是希望它会有用,
    18  //但没有任何保证;甚至没有
    19  //适销性或特定用途的适用性。见
    20  //GNU较低的通用公共许可证,了解更多详细信息。
    21  //
    22  //你应该收到一份GNU较低级别的公共许可证副本
    23  //以及Go以太坊图书馆。如果没有,请参见<http://www.gnu.org/licenses/>。
    24  
    25  package node
    26  
    27  import (
    28  	"os"
    29  	"os/user"
    30  	"path/filepath"
    31  	"runtime"
    32  
    33  	"github.com/ethereum/go-ethereum/p2p"
    34  	"github.com/ethereum/go-ethereum/p2p/nat"
    35  	"github.com/ethereum/go-ethereum/rpc"
    36  )
    37  
    38  const (
    39  DefaultHTTPHost = "localhost" //HTTP RPC服务器的默认主机接口
    40  DefaultHTTPPort = 8545        //HTTP RPC服务器的默认TCP端口
    41  DefaultWSHost   = "localhost" //WebSocket RPC服务器的默认主机接口
    42  DefaultWSPort   = 8546        //WebSocket RPC服务器的默认TCP端口
    43  )
    44  
    45  //默认配置包含合理的默认设置。
    46  var DefaultConfig = Config{
    47  	DataDir:          DefaultDataDir(),
    48  	HTTPPort:         DefaultHTTPPort,
    49  	HTTPModules:      []string{"net", "web3"},
    50  	HTTPVirtualHosts: []string{"localhost"},
    51  	HTTPTimeouts:     rpc.DefaultHTTPTimeouts,
    52  	WSPort:           DefaultWSPort,
    53  	WSModules:        []string{"net", "web3"},
    54  	P2P: p2p.Config{
    55  		ListenAddr: ":30303",
    56  		MaxPeers:   25,
    57  		NAT:        nat.Any(),
    58  	},
    59  }
    60  
    61  //defaultdatadir是用于数据库和其他数据库的默认数据目录
    62  //持久性要求。
    63  func DefaultDataDir() string {
    64  //尝试将数据文件夹放在用户的home目录中
    65  	home := homeDir()
    66  	if home != "" {
    67  		if runtime.GOOS == "darwin" {
    68  			return filepath.Join(home, "Library", "Ethereum")
    69  		} else if runtime.GOOS == "windows" {
    70  			return filepath.Join(home, "AppData", "Roaming", "Ethereum")
    71  		} else {
    72  			return filepath.Join(home, ".ethereum")
    73  		}
    74  	}
    75  //因为我们无法猜测一个稳定的位置,所以返回空的,稍后再处理
    76  	return ""
    77  }
    78  
    79  func homeDir() string {
    80  	if home := os.Getenv("HOME"); home != "" {
    81  		return home
    82  	}
    83  	if usr, err := user.Current(); err == nil {
    84  		return usr.HomeDir
    85  	}
    86  	return ""
    87  }