New chains (#4720)
* Add Kovan chain. * Fix up --testnet. * Fix tests. * Fix test. * fix test * Fix test.
This commit is contained in:
		
							parent
							
								
									591eb76a93
								
							
						
					
					
						commit
						2862b3c21a
					
				
							
								
								
									
										58
									
								
								ethcore/res/ethereum/kovan.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								ethcore/res/ethereum/kovan.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | ||||
| { | ||||
|   "name": "Kovan", | ||||
|   "dataDir": "kovan", | ||||
|   "engine": { | ||||
|     "authorityRound": { | ||||
|       "params": { | ||||
|         "gasLimitBoundDivisor": "0x400", | ||||
|         "stepDuration": "4", | ||||
|         "blockReward": "0x4563918244F40000", | ||||
|         "validators" : { | ||||
|           "list": [ | ||||
|             "0x00D6Cc1BA9cf89BD2e58009741f4F7325BAdc0ED", | ||||
|             "0x00427feae2419c15b89d1c21af10d1b6650a4d3d", | ||||
|             "0x4Ed9B08e6354C70fE6F8CB0411b0d3246b424d6c", | ||||
|             "0x0020ee4Be0e2027d76603cB751eE069519bA81A1", | ||||
| 
 | ||||
|             "0x0010f94b296a852aaac52ea6c5ac72e03afd032d", | ||||
| 
 | ||||
|             "0x007733a1FE69CF3f2CF989F81C7b4cAc1693387A", | ||||
|             "0x00E6d2b931F55a3f1701c7389d592a7778897879", | ||||
|             "0x00e4a10650e5a6D6001C38ff8E64F97016a1645c", | ||||
| 
 | ||||
|             "0x00a0a24b9f0e5ec7aa4c7389b8302fd0123194de" | ||||
|           ] | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "params": { | ||||
|     "maximumExtraDataSize": "0x20", | ||||
|     "minGasLimit": "0x1388", | ||||
|     "networkID" : "0x2A" | ||||
|   }, | ||||
|   "genesis": { | ||||
|     "seal": { | ||||
|       "authorityRound": { | ||||
|         "step": "0x0", | ||||
|         "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" | ||||
|       } | ||||
|     }, | ||||
|     "difficulty": "0x20000", | ||||
|     "gasLimit": "0x5B8D80" | ||||
|   }, | ||||
|   "accounts": { | ||||
|     "0x0000000000000000000000000000000000000001": { "balance": "1", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } }, | ||||
|     "0x0000000000000000000000000000000000000002": { "balance": "1", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } }, | ||||
|     "0x0000000000000000000000000000000000000003": { "balance": "1", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } }, | ||||
|     "0x0000000000000000000000000000000000000004": { "balance": "1", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } }, | ||||
|     "0x00521965e7bd230323c423d96c657db5b79d099f": { "balance": "1606938044258990275541962092341162602522202993782792835301376" } | ||||
|   }, | ||||
|   "nodes": [ | ||||
|     "enode://c005dd308256c60fab247813d8bf6d6e81f9cd354287837eb1c2fcf294adaa913a3208e88900ef5c55a8cba7042c301d80503edec2ad3f92a72e241ee6743854@192.241.230.87:30303", | ||||
|     "enode://48caeceb2724f2f71406990aa81efe87f8c53f26441d891473da2ae50cc138f238addc0e46b5aee240db55de8c711daac53d7b32a3f13e30edb86a3ca7c2700b@138.68.143.220:30303", | ||||
|     "enode://85705212fd28ebdd56669fb55e958feb9d81f74fe76c82f867564b6c2995e69f596df0f588eba16f1a43b69ce06485d68231a0c83fed8469b41eba0e390c126f@139.59.146.42:30303", | ||||
|     "enode://2aa81bd0a761cd4f02c934dcf3f81c5b65953e51ab5ba03ceb1f125eb06418a1cdffb1c9d01871aa7bd456f3fce35e745608189ad1164f72b2161634b0c3f6ea@188.166.240.190:30303", | ||||
|     "enode://c5900cdd6d20795d58372f42dfbab9d664c27bb97e9c27972741942736e919122f9bac28e74cbc58e4ff195475ea90d9880b71a37af5b5a8cb41d843f765cff8@174.138.79.48:30303" | ||||
|   ] | ||||
| } | ||||
| @ -48,9 +48,12 @@ pub fn new_frontier() -> Spec { load(include_bytes!("../../res/ethereum/frontier | ||||
| /// Create a new Frontier mainnet chain spec without the DAO hardfork.
 | ||||
| pub fn new_classic() -> Spec { load(include_bytes!("../../res/ethereum/classic.json")) } | ||||
| 
 | ||||
| /// Create a new Frontier mainnet chain spec without the DAO hardfork.
 | ||||
| /// Create a new Expanse mainnet chain spec.
 | ||||
| pub fn new_expanse() -> Spec { load(include_bytes!("../../res/ethereum/expanse.json")) } | ||||
| 
 | ||||
| /// Create a new Kovan testnet chain spec.
 | ||||
| pub fn new_kovan() -> Spec { load(include_bytes!("../../res/ethereum/kovan.json")) } | ||||
| 
 | ||||
| /// Create a new Frontier chain spec as though it never changes to Homestead.
 | ||||
| pub fn new_frontier_test() -> Spec { load(include_bytes!("../../res/ethereum/frontier_test.json")) } | ||||
| 
 | ||||
|  | ||||
| @ -59,7 +59,7 @@ Operating Options: | ||||
|   --chain CHAIN                  Specify the blockchain type. CHAIN may be either a | ||||
|                                  JSON chain specification file or olympic, frontier, | ||||
|                                  homestead, mainnet, morden, ropsten, classic, expanse, | ||||
|                                  testnet or dev (default: {flag_chain}). | ||||
|                                  testnet, kovan or dev (default: {flag_chain}). | ||||
|   -d --base-path PATH            Specify the base data storage path. | ||||
|                                  (default: {flag_base_path}). | ||||
|   --db-path PATH                 Specify the database directory path | ||||
| @ -372,8 +372,7 @@ Legacy Options: | ||||
|                                  to be the same as Geth's. Overrides the --ipc-path | ||||
|                                  and --ipcpath options. Alters RPCs to reflect Geth | ||||
|                                  bugs. Includes the personal_ RPC by default. | ||||
|   --testnet                      Geth-compatible testnet mode. Equivalent to --chain | ||||
|                                  testnet --keys-path $HOME/parity/testnet-keys. | ||||
|   --testnet                      Testnet mode. Equivalent to --chain testnet. | ||||
|                                  Overrides the --keys-path option. | ||||
|   --import-geth-keys             Attempt to import keys from Geth client. | ||||
|   --datadir PATH                 Equivalent to --base-path PATH. | ||||
|  | ||||
| @ -438,7 +438,7 @@ impl Configuration { | ||||
| 
 | ||||
| 	fn chain(&self) -> String { | ||||
| 		if self.args.flag_testnet { | ||||
| 			"ropsten".to_owned() | ||||
| 			"testnet".to_owned() | ||||
| 		} else { | ||||
| 			self.args.flag_chain.clone() | ||||
| 		} | ||||
| @ -828,8 +828,8 @@ impl Configuration { | ||||
| 		let secretstore_path = replace_home(&data_path, &self.args.flag_secretstore_path); | ||||
| 		let ui_path = replace_home(&data_path, &self.args.flag_ui_path); | ||||
| 
 | ||||
| 		if self.args.flag_geth  && !cfg!(windows) { | ||||
| 			let geth_root  = if self.args.flag_testnet { path::ethereum::test() } else {  path::ethereum::default() }; | ||||
| 		if self.args.flag_geth && !cfg!(windows) { | ||||
| 			let geth_root  = if self.chain() == "testnet".to_owned() { path::ethereum::test() } else {  path::ethereum::default() }; | ||||
| 			::std::fs::create_dir_all(geth_root.as_path()).unwrap_or_else( | ||||
| 				|e| warn!("Failed to create '{}' for geth mode: {}", &geth_root.to_str().unwrap(), e)); | ||||
| 		} | ||||
| @ -1231,7 +1231,7 @@ mod tests { | ||||
| 		// then
 | ||||
| 		assert_eq!(conf.network_settings(), NetworkSettings { | ||||
| 			name: "testname".to_owned(), | ||||
| 			chain: "ropsten".to_owned(), | ||||
| 			chain: "testnet".to_owned(), | ||||
| 			network_port: 30303, | ||||
| 			rpc_enabled: true, | ||||
| 			rpc_interface: "local".to_owned(), | ||||
|  | ||||
| @ -29,6 +29,7 @@ pub enum SpecType { | ||||
| 	Mainnet, | ||||
| 	Morden, | ||||
| 	Ropsten, | ||||
| 	Kovan, | ||||
| 	Olympic, | ||||
| 	Classic, | ||||
| 	Expanse, | ||||
| @ -50,7 +51,8 @@ impl str::FromStr for SpecType { | ||||
| 			"frontier" | "homestead" | "mainnet" => SpecType::Mainnet, | ||||
| 			"frontier-dogmatic" | "homestead-dogmatic" | "classic" => SpecType::Classic, | ||||
| 			"morden" | "classic-testnet" => SpecType::Morden, | ||||
| 			"ropsten" | "testnet" => SpecType::Ropsten, | ||||
| 			"ropsten" => SpecType::Ropsten, | ||||
| 			"kovan" | "testnet" => SpecType::Kovan, | ||||
| 			"olympic" => SpecType::Olympic, | ||||
| 			"expanse" => SpecType::Expanse, | ||||
| 			"dev" => SpecType::Dev, | ||||
| @ -69,6 +71,7 @@ impl fmt::Display for SpecType { | ||||
| 			SpecType::Olympic => "olympic", | ||||
| 			SpecType::Classic => "classic", | ||||
| 			SpecType::Expanse => "expanse", | ||||
| 			SpecType::Kovan => "kovan", | ||||
| 			SpecType::Dev => "dev", | ||||
| 			SpecType::Custom(ref custom) => custom, | ||||
| 		}) | ||||
| @ -84,6 +87,7 @@ impl SpecType { | ||||
| 			SpecType::Olympic => Ok(ethereum::new_olympic()), | ||||
| 			SpecType::Classic => Ok(ethereum::new_classic()), | ||||
| 			SpecType::Expanse => Ok(ethereum::new_expanse()), | ||||
| 			SpecType::Kovan => Ok(ethereum::new_kovan()), | ||||
| 			SpecType::Dev => Ok(Spec::new_instant()), | ||||
| 			SpecType::Custom(ref filename) => { | ||||
| 				let file = fs::File::open(filename).map_err(|_| "Could not load specification file.")?; | ||||
| @ -320,7 +324,8 @@ mod tests { | ||||
| 		assert_eq!(SpecType::Mainnet, "frontier".parse().unwrap()); | ||||
| 		assert_eq!(SpecType::Mainnet, "homestead".parse().unwrap()); | ||||
| 		assert_eq!(SpecType::Mainnet, "mainnet".parse().unwrap()); | ||||
| 		assert_eq!(SpecType::Ropsten, "testnet".parse().unwrap()); | ||||
| 		assert_eq!(SpecType::Kovan, "testnet".parse().unwrap()); | ||||
| 		assert_eq!(SpecType::Kovan, "kovan".parse().unwrap()); | ||||
| 		assert_eq!(SpecType::Morden, "morden".parse().unwrap()); | ||||
| 		assert_eq!(SpecType::Ropsten, "ropsten".parse().unwrap()); | ||||
| 		assert_eq!(SpecType::Olympic, "olympic".parse().unwrap()); | ||||
| @ -341,6 +346,7 @@ mod tests { | ||||
| 		assert_eq!(format!("{}", SpecType::Olympic), "olympic"); | ||||
| 		assert_eq!(format!("{}", SpecType::Classic), "classic"); | ||||
| 		assert_eq!(format!("{}", SpecType::Expanse), "expanse"); | ||||
| 		assert_eq!(format!("{}", SpecType::Kovan), "kovan"); | ||||
| 		assert_eq!(format!("{}", SpecType::Dev), "dev"); | ||||
| 		assert_eq!(format!("{}", SpecType::Custom("foo/bar".into())), "foo/bar"); | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user