aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/utils
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-06-16 01:28:48 +0800
committerobscuren <geffobscura@gmail.com>2015-06-16 01:28:48 +0800
commit5daf8729be88eca87b302ebf7a46fc69cad0f6d0 (patch)
tree0053cb5b84978645b3c83895a651c512e081a183 /cmd/utils
parentbac9a94ddf20dc530966cbf6cd384aaf94aedc77 (diff)
parent4673b04503742de9b1622557b44135d6a4934ad6 (diff)
downloadgo-tangerine-5daf8729be88eca87b302ebf7a46fc69cad0f6d0.tar
go-tangerine-5daf8729be88eca87b302ebf7a46fc69cad0f6d0.tar.gz
go-tangerine-5daf8729be88eca87b302ebf7a46fc69cad0f6d0.tar.bz2
go-tangerine-5daf8729be88eca87b302ebf7a46fc69cad0f6d0.tar.lz
go-tangerine-5daf8729be88eca87b302ebf7a46fc69cad0f6d0.tar.xz
go-tangerine-5daf8729be88eca87b302ebf7a46fc69cad0f6d0.tar.zst
go-tangerine-5daf8729be88eca87b302ebf7a46fc69cad0f6d0.zip
Merge branch 'release/0.9.30'v0.9.30
Diffstat (limited to 'cmd/utils')
-rw-r--r--cmd/utils/flags.go144
1 files changed, 116 insertions, 28 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index ab7eaf023..696dbd142 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -23,6 +23,9 @@ import (
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/p2p/nat"
"github.com/ethereum/go-ethereum/rpc"
+ "github.com/ethereum/go-ethereum/rpc/api"
+ "github.com/ethereum/go-ethereum/rpc/codec"
+ "github.com/ethereum/go-ethereum/rpc/comms"
"github.com/ethereum/go-ethereum/xeth"
)
@@ -129,7 +132,7 @@ var (
GasPriceFlag = cli.StringFlag{
Name: "gasprice",
Usage: "Sets the minimal gasprice when mining transactions",
- Value: new(big.Int).Mul(big.NewInt(10), common.Szabo).String(),
+ Value: new(big.Int).Mul(big.NewInt(1), common.Szabo).String(),
}
UnlockedAccountFlag = cli.StringFlag{
@@ -206,6 +209,20 @@ var (
Usage: "Domain on which to send Access-Control-Allow-Origin header",
Value: "",
}
+ IPCDisabledFlag = cli.BoolFlag{
+ Name: "ipcdisable",
+ Usage: "Disable the IPC-RPC server",
+ }
+ IPCApiFlag = cli.StringFlag{
+ Name: "ipcapi",
+ Usage: "Specify the API's which are offered over this interface",
+ Value: api.DefaultIpcApis,
+ }
+ IPCPathFlag = DirectoryFlag{
+ Name: "ipcpath",
+ Usage: "Filename for IPC socket/pipe",
+ Value: DirectoryString{common.DefaultIpcPath()},
+ }
// Network Settings
MaxPeersFlag = cli.IntFlag{
Name: "maxpeers",
@@ -259,6 +276,36 @@ var (
Usage: "solidity compiler to be used",
Value: "solc",
}
+ GpoMinGasPriceFlag = cli.StringFlag{
+ Name: "gpomin",
+ Usage: "Minimum suggested gas price",
+ Value: new(big.Int).Mul(big.NewInt(1), common.Szabo).String(),
+ }
+ GpoMaxGasPriceFlag = cli.StringFlag{
+ Name: "gpomax",
+ Usage: "Maximum suggested gas price",
+ Value: new(big.Int).Mul(big.NewInt(100), common.Szabo).String(),
+ }
+ GpoFullBlockRatioFlag = cli.IntFlag{
+ Name: "gpofull",
+ Usage: "Full block threshold for gas price calculation (%)",
+ Value: 80,
+ }
+ GpobaseStepDownFlag = cli.IntFlag{
+ Name: "gpobasedown",
+ Usage: "Suggested gas price base step down ratio (1/1000)",
+ Value: 10,
+ }
+ GpobaseStepUpFlag = cli.IntFlag{
+ Name: "gpobaseup",
+ Usage: "Suggested gas price base step up ratio (1/1000)",
+ Value: 100,
+ }
+ GpobaseCorrectionFactorFlag = cli.IntFlag{
+ Name: "gpobasecf",
+ Usage: "Suggested gas price base correction factor (%)",
+ Value: 110,
+ }
)
// MakeNAT creates a port mapper from set command line flags.
@@ -296,33 +343,39 @@ func MakeEthConfig(clientID, version string, ctx *cli.Context) *eth.Config {
clientID += "/" + customName
}
return &eth.Config{
- Name: common.MakeName(clientID, version),
- DataDir: ctx.GlobalString(DataDirFlag.Name),
- ProtocolVersion: ctx.GlobalInt(ProtocolVersionFlag.Name),
- GenesisNonce: ctx.GlobalInt(GenesisNonceFlag.Name),
- BlockChainVersion: ctx.GlobalInt(BlockchainVersionFlag.Name),
- SkipBcVersionCheck: false,
- NetworkId: ctx.GlobalInt(NetworkIdFlag.Name),
- LogFile: ctx.GlobalString(LogFileFlag.Name),
- Verbosity: ctx.GlobalInt(VerbosityFlag.Name),
- LogJSON: ctx.GlobalString(LogJSONFlag.Name),
- Etherbase: ctx.GlobalString(EtherbaseFlag.Name),
- MinerThreads: ctx.GlobalInt(MinerThreadsFlag.Name),
- AccountManager: MakeAccountManager(ctx),
- VmDebug: ctx.GlobalBool(VMDebugFlag.Name),
- MaxPeers: ctx.GlobalInt(MaxPeersFlag.Name),
- MaxPendingPeers: ctx.GlobalInt(MaxPendingPeersFlag.Name),
- Port: ctx.GlobalString(ListenPortFlag.Name),
- NAT: MakeNAT(ctx),
- NatSpec: ctx.GlobalBool(NatspecEnabledFlag.Name),
- Discovery: !ctx.GlobalBool(NoDiscoverFlag.Name),
- NodeKey: MakeNodeKey(ctx),
- Shh: ctx.GlobalBool(WhisperEnabledFlag.Name),
- Dial: true,
- BootNodes: ctx.GlobalString(BootnodesFlag.Name),
- GasPrice: common.String2Big(ctx.GlobalString(GasPriceFlag.Name)),
- SolcPath: ctx.GlobalString(SolcPathFlag.Name),
- AutoDAG: ctx.GlobalBool(AutoDAGFlag.Name) || ctx.GlobalBool(MiningEnabledFlag.Name),
+ Name: common.MakeName(clientID, version),
+ DataDir: ctx.GlobalString(DataDirFlag.Name),
+ ProtocolVersion: ctx.GlobalInt(ProtocolVersionFlag.Name),
+ GenesisNonce: ctx.GlobalInt(GenesisNonceFlag.Name),
+ BlockChainVersion: ctx.GlobalInt(BlockchainVersionFlag.Name),
+ SkipBcVersionCheck: false,
+ NetworkId: ctx.GlobalInt(NetworkIdFlag.Name),
+ LogFile: ctx.GlobalString(LogFileFlag.Name),
+ Verbosity: ctx.GlobalInt(VerbosityFlag.Name),
+ LogJSON: ctx.GlobalString(LogJSONFlag.Name),
+ Etherbase: ctx.GlobalString(EtherbaseFlag.Name),
+ MinerThreads: ctx.GlobalInt(MinerThreadsFlag.Name),
+ AccountManager: MakeAccountManager(ctx),
+ VmDebug: ctx.GlobalBool(VMDebugFlag.Name),
+ MaxPeers: ctx.GlobalInt(MaxPeersFlag.Name),
+ MaxPendingPeers: ctx.GlobalInt(MaxPendingPeersFlag.Name),
+ Port: ctx.GlobalString(ListenPortFlag.Name),
+ NAT: MakeNAT(ctx),
+ NatSpec: ctx.GlobalBool(NatspecEnabledFlag.Name),
+ Discovery: !ctx.GlobalBool(NoDiscoverFlag.Name),
+ NodeKey: MakeNodeKey(ctx),
+ Shh: ctx.GlobalBool(WhisperEnabledFlag.Name),
+ Dial: true,
+ BootNodes: ctx.GlobalString(BootnodesFlag.Name),
+ GasPrice: common.String2Big(ctx.GlobalString(GasPriceFlag.Name)),
+ GpoMinGasPrice: common.String2Big(ctx.GlobalString(GpoMinGasPriceFlag.Name)),
+ GpoMaxGasPrice: common.String2Big(ctx.GlobalString(GpoMaxGasPriceFlag.Name)),
+ GpoFullBlockRatio: ctx.GlobalInt(GpoFullBlockRatioFlag.Name),
+ GpobaseStepDown: ctx.GlobalInt(GpobaseStepDownFlag.Name),
+ GpobaseStepUp: ctx.GlobalInt(GpobaseStepUpFlag.Name),
+ GpobaseCorrectionFactor: ctx.GlobalInt(GpobaseCorrectionFactorFlag.Name),
+ SolcPath: ctx.GlobalString(SolcPathFlag.Name),
+ AutoDAG: ctx.GlobalBool(AutoDAGFlag.Name) || ctx.GlobalBool(MiningEnabledFlag.Name),
}
}
@@ -368,6 +421,41 @@ func MakeAccountManager(ctx *cli.Context) *accounts.Manager {
return accounts.NewManager(ks)
}
+func IpcSocketPath(ctx *cli.Context) (ipcpath string) {
+ if common.IsWindows() {
+ ipcpath = common.DefaultIpcPath()
+ if ipcpath != ctx.GlobalString(IPCPathFlag.Name) {
+ ipcpath = ctx.GlobalString(IPCPathFlag.Name)
+ }
+ } else {
+ ipcpath = common.DefaultIpcPath()
+ if ctx.GlobalString(IPCPathFlag.Name) != common.DefaultIpcPath() {
+ ipcpath = ctx.GlobalString(IPCPathFlag.Name)
+ } else if ctx.GlobalString(DataDirFlag.Name) != "" &&
+ ctx.GlobalString(DataDirFlag.Name) != common.DefaultDataDir() {
+ ipcpath = filepath.Join(ctx.GlobalString(DataDirFlag.Name), "geth.ipc")
+ }
+ }
+
+ return
+}
+
+func StartIPC(eth *eth.Ethereum, ctx *cli.Context) error {
+ config := comms.IpcConfig{
+ Endpoint: IpcSocketPath(ctx),
+ }
+
+ xeth := xeth.New(eth, nil)
+ codec := codec.JSON
+
+ apis, err := api.ParseApiString(ctx.GlobalString(IPCApiFlag.Name), codec, xeth, eth)
+ if err != nil {
+ return err
+ }
+
+ return comms.StartIpc(config, codec, apis...)
+}
+
func StartRPC(eth *eth.Ethereum, ctx *cli.Context) error {
config := rpc.RpcConfig{
ListenAddress: ctx.GlobalString(RPCListenAddrFlag.Name),