set CHAIN_ID for Classic (#3934)

* configurable CHAIN_ID

* set CHAIN_ID for Ethereum Classic
This commit is contained in:
Igor Artamonov 2016-12-22 18:10:58 +06:00 committed by Gav Wood
parent b44cd7b1db
commit be75cbfaaa
5 changed files with 12 additions and 2 deletions

View File

@ -27,6 +27,7 @@
"maximumExtraDataSize": "0x20", "maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388", "minGasLimit": "0x1388",
"networkID" : "0x1", "networkID" : "0x1",
"chainID": "0x3d",
"forkBlock": "0x1d4c00", "forkBlock": "0x1d4c00",
"forkCanonHash": "0x94365e3a8c0b35089c1d1195081fe7489b528a84b22199c916180db8b28ade7f" "forkCanonHash": "0x94365e3a8c0b35089c1d1195081fe7489b528a84b22199c916180db8b28ade7f"
}, },

View File

@ -27,6 +27,7 @@
"maximumExtraDataSize": "0x20", "maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388", "minGasLimit": "0x1388",
"networkID" : "0x2", "networkID" : "0x2",
"chainID": "0x3e",
"forkBlock": "0x1b34d8", "forkBlock": "0x1b34d8",
"forkCanonHash": "0xf376243aeff1f256d970714c3de9fd78fa4e63cf63e32a51fe1169e375d98145" "forkCanonHash": "0xf376243aeff1f256d970714c3de9fd78fa4e63cf63e32a51fe1169e375d98145"
}, },

View File

@ -167,7 +167,7 @@ impl Engine for Ethash {
fn signing_network_id(&self, env_info: &EnvInfo) -> Option<u64> { fn signing_network_id(&self, env_info: &EnvInfo) -> Option<u64> {
if env_info.number >= self.ethash_params.eip155_transition { if env_info.number >= self.ethash_params.eip155_transition {
Some(self.params().network_id) Some(self.params().chain_id)
} else { } else {
None None
} }
@ -316,7 +316,7 @@ impl Engine for Ethash {
} }
if let Some(n) = t.network_id() { if let Some(n) = t.network_id() {
if header.number() < self.ethash_params.eip155_transition || n != self.params().network_id { if header.number() < self.ethash_params.eip155_transition || n != self.params().chain_id {
return Err(TransactionError::InvalidNetworkId.into()) return Err(TransactionError::InvalidNetworkId.into())
} }
} }

View File

@ -38,6 +38,8 @@ pub struct CommonParams {
pub maximum_extra_data_size: usize, pub maximum_extra_data_size: usize,
/// Network id. /// Network id.
pub network_id: u64, pub network_id: u64,
/// Chain id.
pub chain_id: u64,
/// Main subprotocol name. /// Main subprotocol name.
pub subprotocol_name: String, pub subprotocol_name: String,
/// Minimum gas limit. /// Minimum gas limit.
@ -52,6 +54,7 @@ impl From<ethjson::spec::Params> for CommonParams {
account_start_nonce: p.account_start_nonce.into(), account_start_nonce: p.account_start_nonce.into(),
maximum_extra_data_size: p.maximum_extra_data_size.into(), maximum_extra_data_size: p.maximum_extra_data_size.into(),
network_id: p.network_id.into(), network_id: p.network_id.into(),
chain_id: if let Some(n) = p.chain_id { n.into() } else { p.network_id.into() },
subprotocol_name: p.subprotocol_name.unwrap_or_else(|| "eth".to_owned()), subprotocol_name: p.subprotocol_name.unwrap_or_else(|| "eth".to_owned()),
min_gas_limit: p.min_gas_limit.into(), min_gas_limit: p.min_gas_limit.into(),
fork_block: if let (Some(n), Some(h)) = (p.fork_block, p.fork_hash) { Some((n.into(), h.into())) } else { None }, fork_block: if let (Some(n), Some(h)) = (p.fork_block, p.fork_hash) { Some((n.into(), h.into())) } else { None },

View File

@ -35,6 +35,10 @@ pub struct Params {
/// Network id. /// Network id.
#[serde(rename="networkID")] #[serde(rename="networkID")]
pub network_id: Uint, pub network_id: Uint,
/// Chain id.
#[serde(rename="chainID")]
pub chain_id: Option<Uint>,
/// Name of the main ("eth") subprotocol. /// Name of the main ("eth") subprotocol.
#[serde(rename="subprotocolName")] #[serde(rename="subprotocolName")]
pub subprotocol_name: Option<String>, pub subprotocol_name: Option<String>,
@ -58,6 +62,7 @@ mod tests {
"homesteadTransition": "0x118c30", "homesteadTransition": "0x118c30",
"maximumExtraDataSize": "0x20", "maximumExtraDataSize": "0x20",
"networkID" : "0x1", "networkID" : "0x1",
"chainID" : "0x15",
"subprotocolName" : "exp", "subprotocolName" : "exp",
"minGasLimit": "0x1388", "minGasLimit": "0x1388",
"accountStartNonce": "0x00" "accountStartNonce": "0x00"