diff --git a/common/config/config.go b/common/config/config.go index a3f545051..24e3dd462 100644 --- a/common/config/config.go +++ b/common/config/config.go @@ -258,6 +258,7 @@ func GetDefaultParams() *Configuration { HttpRestPort: 20334, HttpWsPort: 20335, HttpJsonPort: 20336, + EnableRPC: true, PowConfiguration: PowConfiguration{ PowLimit: powLimit, PowLimitBits: 0x1f0008ff, @@ -821,9 +822,9 @@ type PowConfiguration struct { // RpcConfiguration defines the JSON-RPC authenticate parameters. type RpcConfiguration struct { - User string `json:"User"` - Pass string `json:"Pass"` - WhiteIPList []string `json:"WhiteIPList"` + User string `screw:"--rpcuser" usage:"username for JSON-RPC connections"` + Pass string `screw:"--rpcpassword" usage:"password for JSON-RPC connections"` + WhiteIPList []string `screw:"--rpcips" usage:"white IP list allowed to access RPC server"` } // InstantBlock returns the network parameters for generate instant block. diff --git a/common/config/settings/settings.go b/common/config/settings/settings.go index a89dd0501..4204e63b6 100644 --- a/common/config/settings/settings.go +++ b/common/config/settings/settings.go @@ -99,6 +99,13 @@ func (s *Settings) SetupConfig(withScrew bool, about string, version string) *co } conf.Configuration = conf.Sterilize() config.Parameters = conf.Configuration + + if len(conf.RpcConfiguration.WhiteIPList) > 1 { + ips := strings.Split(conf.RpcConfiguration.WhiteIPList[0], ",") + for i, ip := range ips { + conf.RpcConfiguration.WhiteIPList[i] = ip + } + } return conf.Configuration } diff --git a/main.go b/main.go index 7c2e02698..f3102a8ff 100644 --- a/main.go +++ b/main.go @@ -307,6 +307,8 @@ func startNode(cfg *config.Configuration) { log.Info("Start services") if cfg.EnableRPC { + log.Info("Start rpc server, user:", chain.GetParams().RpcConfiguration.User, + "whit ip list:", chain.GetParams().RpcConfiguration.WhiteIPList) go httpjsonrpc.StartRPCServer() } if cfg.HttpRestStart { diff --git a/pow/service.go b/pow/service.go index 3810b2ca6..9e0ce729d 100644 --- a/pow/service.go +++ b/pow/service.go @@ -440,6 +440,10 @@ func (pow *Service) DiscreteMining(n uint32) ([]*common.Uint256, error) { Block: msgBlock, }) if err != nil { + pow.mutex.Lock() + pow.started = false + pow.discreteMining = false + pow.mutex.Unlock() return blockHashes, nil } @@ -455,6 +459,11 @@ func (pow *Service) DiscreteMining(n uint32) ([]*common.Uint256, error) { } } } + + pow.mutex.Lock() + pow.started = false + pow.discreteMining = false + pow.mutex.Unlock() return blockHashes, nil } }