Beta Backports 2.3.1 (#10225)

* version: bump beta to 2.3.1

* Fix _cannot recursively call into `Core`_ issue (#10144)

* Change igd to github:maufl/rust-igd

* Run `igd::search_gateway_from_timeout` from own thread

* Update for Android cross-compilation. (#10180)

* build-unix update

* .gitlab-ci update

* Update build-unix.sh

add android postprocessing

* path to android lib

libparity.so

* fix path to libparity

* add android lib to artifacts

* Run all `igd` methods in its own thread (#10195)

* Cancel Constantinople HF on POA Core (#10198)

* Add EIP-1283 disable transition (#10214)

* Enable St-Peters-Fork ("Constantinople Fix") (#10223)

* ethcore: disable eip-1283 on kovan block 10255201

* ethcore: disable eip-1283 on ropsten block 4939394

* ethcore: enable st-peters-fork on mainnet block 7280000

* ethcore: fix kovan chain spec

* version: update fork blocks

* ethcore: disable eip-1283 on sokol block 7026400
This commit is contained in:
Afri Schoedon 2019-01-22 12:33:45 +01:00 committed by GitHub
parent 10657d96c4
commit 3aefa2b960
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 88 additions and 76 deletions

View File

@ -146,8 +146,9 @@ build-android:
script: script:
- scripts/gitlab/build-unix.sh - scripts/gitlab/build-unix.sh
tags: tags:
- rust-arm - linux-docker
allow_failure: true allow_failure: true
<<: *collect_artifacts
test-beta: test-beta:
stage: optional stage: optional

12
Cargo.lock generated
View File

@ -2351,7 +2351,7 @@ dependencies = [
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
"jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
"panic_hook 0.1.0", "panic_hook 0.1.0",
"parity-ethereum 2.3.0", "parity-ethereum 2.3.1",
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
"tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -2369,7 +2369,7 @@ dependencies = [
[[package]] [[package]]
name = "parity-ethereum" name = "parity-ethereum"
version = "2.3.0" version = "2.3.1"
dependencies = [ dependencies = [
"ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2419,7 +2419,7 @@ dependencies = [
"parity-rpc 1.12.0", "parity-rpc 1.12.0",
"parity-runtime 0.1.0", "parity-runtime 0.1.0",
"parity-updater 1.12.0", "parity-updater 1.12.0",
"parity-version 2.3.0", "parity-version 2.3.1",
"parity-whisper 0.1.0", "parity-whisper 0.1.0",
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2571,7 +2571,7 @@ dependencies = [
"parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"parity-runtime 0.1.0", "parity-runtime 0.1.0",
"parity-updater 1.12.0", "parity-updater 1.12.0",
"parity-version 2.3.0", "parity-version 2.3.1",
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"patricia-trie 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "patricia-trie 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2669,7 +2669,7 @@ dependencies = [
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"parity-hash-fetch 1.12.0", "parity-hash-fetch 1.12.0",
"parity-path 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-path 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"parity-version 2.3.0", "parity-version 2.3.1",
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2679,7 +2679,7 @@ dependencies = [
[[package]] [[package]]
name = "parity-version" name = "parity-version"
version = "2.3.0" version = "2.3.1"
dependencies = [ dependencies = [
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rlp 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rlp 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",

View File

@ -2,7 +2,7 @@
description = "Parity Ethereum client" description = "Parity Ethereum client"
name = "parity-ethereum" name = "parity-ethereum"
# NOTE Make sure to update util/version/Cargo.toml as well # NOTE Make sure to update util/version/Cargo.toml as well
version = "2.3.0" version = "2.3.1"
license = "GPL-3.0" license = "GPL-3.0"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]

View File

@ -9,7 +9,8 @@
"durationLimit": "0xd", "durationLimit": "0xd",
"blockReward": { "blockReward": {
"0x0": "0x4563918244f40000", "0x0": "0x4563918244f40000",
"0x42ae50": "0x29a2241af62c0000" "0x42ae50": "0x29a2241af62c0000",
"0x6f1580": "0x1bc16d674ec80000"
}, },
"homesteadTransition": "0x118c30", "homesteadTransition": "0x118c30",
"daoHardforkTransition": "0x1d4c00", "daoHardforkTransition": "0x1d4c00",
@ -134,7 +135,8 @@
], ],
"eip100bTransition": "0x42ae50", "eip100bTransition": "0x42ae50",
"difficultyBombDelays": { "difficultyBombDelays": {
"0x42ae50": "0x2dc6c0" "0x42ae50": "0x2dc6c0",
"0x6f1580": "0x1e8480"
} }
} }
} }
@ -158,7 +160,10 @@
"eip140Transition": "0x42ae50", "eip140Transition": "0x42ae50",
"eip211Transition": "0x42ae50", "eip211Transition": "0x42ae50",
"eip214Transition": "0x42ae50", "eip214Transition": "0x42ae50",
"eip658Transition": "0x42ae50" "eip658Transition": "0x42ae50",
"eip145Transition": "0x6f1580",
"eip1014Transition": "0x6f1580",
"eip1052Transition": "0x6f1580"
}, },
"genesis": { "genesis": {
"seal": { "seal": {

View File

@ -49,6 +49,7 @@
"eip1014Transition": "0x8c6180", "eip1014Transition": "0x8c6180",
"eip1052Transition": "0x8c6180", "eip1052Transition": "0x8c6180",
"eip1283Transition": "0x8c6180", "eip1283Transition": "0x8c6180",
"eip1283DisableTransition": "0x9c7b61",
"kip4Transition": "0x8c6180", "kip4Transition": "0x8c6180",
"kip6Transition": "0x8c6180" "kip6Transition": "0x8c6180"
}, },

View File

@ -34,11 +34,7 @@
"eip140Transition": "0x0", "eip140Transition": "0x0",
"eip211Transition": "0x0", "eip211Transition": "0x0",
"eip214Transition": "0x0", "eip214Transition": "0x0",
"eip658Transition": "0x0", "eip658Transition": "0x0"
"eip145Transition": 6843780,
"eip1014Transition": 6843780,
"eip1052Transition": 6843780,
"eip1283Transition": 6843780
}, },
"genesis": { "genesis": {
"seal": { "seal": {

View File

@ -41,7 +41,8 @@
"eip145Transition": 6464300, "eip145Transition": 6464300,
"eip1014Transition": 6464300, "eip1014Transition": 6464300,
"eip1052Transition": 6464300, "eip1052Transition": 6464300,
"eip1283Transition": 6464300 "eip1283Transition": 6464300,
"eip1283DisableTransition": 7026400
}, },
"genesis": { "genesis": {
"seal": { "seal": {

View File

@ -44,7 +44,8 @@
"eip145Transition": "0x408b70", "eip145Transition": "0x408b70",
"eip1014Transition": "0x408b70", "eip1014Transition": "0x408b70",
"eip1052Transition": "0x408b70", "eip1052Transition": "0x408b70",
"eip1283Transition": "0x408b70" "eip1283Transition": "0x408b70",
"eip1283DisableTransition": "0x4b5e82"
}, },
"genesis": { "genesis": {
"seal": { "seal": {

View File

@ -121,6 +121,8 @@ pub struct CommonParams {
pub eip1052_transition: BlockNumber, pub eip1052_transition: BlockNumber,
/// Number of first block where EIP-1283 rules begin. /// Number of first block where EIP-1283 rules begin.
pub eip1283_transition: BlockNumber, pub eip1283_transition: BlockNumber,
/// Number of first block where EIP-1283 rules end.
pub eip1283_disable_transition: BlockNumber,
/// Number of first block where EIP-1014 rules begin. /// Number of first block where EIP-1014 rules begin.
pub eip1014_transition: BlockNumber, pub eip1014_transition: BlockNumber,
/// Number of first block where dust cleanup rules (EIP-168 and EIP169) begin. /// Number of first block where dust cleanup rules (EIP-168 and EIP169) begin.
@ -189,7 +191,7 @@ impl CommonParams {
schedule.have_return_data = block_number >= self.eip211_transition; schedule.have_return_data = block_number >= self.eip211_transition;
schedule.have_bitwise_shifting = block_number >= self.eip145_transition; schedule.have_bitwise_shifting = block_number >= self.eip145_transition;
schedule.have_extcodehash = block_number >= self.eip1052_transition; schedule.have_extcodehash = block_number >= self.eip1052_transition;
schedule.eip1283 = block_number >= self.eip1283_transition; schedule.eip1283 = block_number >= self.eip1283_transition && !(block_number >= self.eip1283_disable_transition);
if block_number >= self.eip210_transition { if block_number >= self.eip210_transition {
schedule.blockhash_gas = 800; schedule.blockhash_gas = 800;
} }
@ -300,6 +302,10 @@ impl From<ethjson::spec::Params> for CommonParams {
BlockNumber::max_value, BlockNumber::max_value,
Into::into, Into::into,
), ),
eip1283_disable_transition: p.eip1283_disable_transition.map_or_else(
BlockNumber::max_value,
Into::into,
),
eip1014_transition: p.eip1014_transition.map_or_else( eip1014_transition: p.eip1014_transition.map_or_else(
BlockNumber::max_value, BlockNumber::max_value,
Into::into, Into::into,

View File

@ -89,6 +89,9 @@ pub struct Params {
pub eip1052_transition: Option<Uint>, pub eip1052_transition: Option<Uint>,
/// See `CommonParams` docs. /// See `CommonParams` docs.
pub eip1283_transition: Option<Uint>, pub eip1283_transition: Option<Uint>,
/// See `CommonParams` docs.
pub eip1283_disable_transition: Option<Uint>,
/// See `CommonParams` docs.
pub eip1014_transition: Option<Uint>, pub eip1014_transition: Option<Uint>,
/// See `CommonParams` docs. /// See `CommonParams` docs.
pub dust_protection_transition: Option<Uint>, pub dust_protection_transition: Option<Uint>,

View File

@ -10,38 +10,36 @@ echo "CARGO_TARGET: " $CARGO_TARGET
echo "CC: " $CC echo "CC: " $CC
echo "CXX: " $CXX echo "CXX: " $CXX
echo "__________CARGO CONFIG__________" echo "_____ Building target: "$CARGO_TARGET" _____"
if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ] if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
then then
# use build container's cargo config # only thing we need for android
cat /.cargo/config time cargo build --target $CARGO_TARGET --release -p parity-clib --features final
else else
mkdir -p .cargo time cargo build --target $CARGO_TARGET --release --features final
rm -f .cargo/config time cargo build --target $CARGO_TARGET --release -p evmbin
echo "[target.$CARGO_TARGET]" >> .cargo/config time cargo build --target $CARGO_TARGET --release -p ethstore-cli
echo "linker= \"$CC\"" >> .cargo/config time cargo build --target $CARGO_TARGET --release -p ethkey-cli
cat .cargo/config time cargo build --target $CARGO_TARGET --release -p whisper-cli
fi fi
echo "_____ Building target: "$CARGO_TARGET" _____"
time cargo build --target $CARGO_TARGET --release --features final
time cargo build --target $CARGO_TARGET --release -p evmbin
time cargo build --target $CARGO_TARGET --release -p ethstore-cli
time cargo build --target $CARGO_TARGET --release -p ethkey-cli
time cargo build --target $CARGO_TARGET --release -p whisper-cli
echo "_____ Post-processing binaries _____" echo "_____ Post-processing binaries _____"
rm -rf artifacts rm -rf artifacts
mkdir -p artifacts mkdir -p artifacts
cd artifacts cd artifacts
mkdir -p $CARGO_TARGET mkdir -p $CARGO_TARGET
cd $CARGO_TARGET cd $CARGO_TARGET
cp -v ../../target/$CARGO_TARGET/release/parity ./parity if [ "${CARGO_TARGET}" = "armv7-linux-androideabi" ]
cp -v ../../target/$CARGO_TARGET/release/parity-evm ./parity-evm then
cp -v ../../target/$CARGO_TARGET/release/ethstore ./ethstore # only thing we need for android
cp -v ../../target/$CARGO_TARGET/release/ethkey ./ethkey cp -v ../../target/$CARGO_TARGET/release/libparity.so ./libparity.so
cp -v ../../target/$CARGO_TARGET/release/whisper ./whisper else
cp -v ../../target/$CARGO_TARGET/release/parity ./parity
cp -v ../../target/$CARGO_TARGET/release/parity-evm ./parity-evm
cp -v ../../target/$CARGO_TARGET/release/ethstore ./ethstore
cp -v ../../target/$CARGO_TARGET/release/ethkey ./ethkey
cp -v ../../target/$CARGO_TARGET/release/whisper ./whisper
fi
# stripping can also be done on release build time # stripping can also be done on release build time

View File

@ -309,40 +309,40 @@ pub fn select_public_address(port: u16) -> SocketAddr {
pub fn map_external_address(local: &NodeEndpoint) -> Option<NodeEndpoint> { pub fn map_external_address(local: &NodeEndpoint) -> Option<NodeEndpoint> {
if let SocketAddr::V4(ref local_addr) = local.address { if let SocketAddr::V4(ref local_addr) = local.address {
let local_ip = *local_addr.ip(); let local_ip = *local_addr.ip();
let local_port = local_addr.port();
let local_udp_port = local.udp_port;
let search_gateway_child = ::std::thread::spawn(move || { let search_gateway_child = ::std::thread::spawn(move || {
search_gateway_from_timeout(local_ip, Duration::new(5, 0)) match search_gateway_from_timeout(local_ip, Duration::new(5, 0)) {
Err(ref err) => debug!("Gateway search error: {}", err),
Ok(gateway) => {
match gateway.get_external_ip() {
Err(ref err) => {
debug!("IP request error: {}", err);
},
Ok(external_addr) => {
match gateway.add_any_port(PortMappingProtocol::TCP, SocketAddrV4::new(local_ip, local_port), 0, "Parity Node/TCP") {
Err(ref err) => {
debug!("Port mapping error: {}", err);
},
Ok(tcp_port) => {
match gateway.add_any_port(PortMappingProtocol::UDP, SocketAddrV4::new(local_ip, local_udp_port), 0, "Parity Node/UDP") {
Err(ref err) => {
debug!("Port mapping error: {}", err);
},
Ok(udp_port) => {
return Some(NodeEndpoint { address: SocketAddr::V4(SocketAddrV4::new(external_addr, tcp_port)), udp_port });
},
}
},
}
},
}
},
}
None
}); });
let gateway_result = match search_gateway_child.join() { return search_gateway_child.join().ok()?;
Err(_) => return None,
Ok(gateway_result) => gateway_result,
};
match gateway_result {
Err(ref err) => debug!("Gateway search error: {}", err),
Ok(gateway) => {
match gateway.get_external_ip() {
Err(ref err) => {
debug!("IP request error: {}", err);
},
Ok(external_addr) => {
match gateway.add_any_port(PortMappingProtocol::TCP, SocketAddrV4::new(*local_addr.ip(), local_addr.port()), 0, "Parity Node/TCP") {
Err(ref err) => {
debug!("Port mapping error: {}", err);
},
Ok(tcp_port) => {
match gateway.add_any_port(PortMappingProtocol::UDP, SocketAddrV4::new(*local_addr.ip(), local.udp_port), 0, "Parity Node/UDP") {
Err(ref err) => {
debug!("Port mapping error: {}", err);
},
Ok(udp_port) => {
return Some(NodeEndpoint { address: SocketAddr::V4(SocketAddrV4::new(external_addr, tcp_port)), udp_port });
},
}
},
}
},
}
},
}
} }
None None
} }

View File

@ -3,7 +3,7 @@
[package] [package]
name = "parity-version" name = "parity-version"
# NOTE: this value is used for Parity Ethereum version string (via env CARGO_PKG_VERSION) # NOTE: this value is used for Parity Ethereum version string (via env CARGO_PKG_VERSION)
version = "2.3.0" version = "2.3.1"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
build = "build.rs" build = "build.rs"
@ -16,9 +16,9 @@ track = "beta"
# Latest supported fork blocks. # Latest supported fork blocks.
# Indicates a critical release in this track (i.e. consensus issue). # Indicates a critical release in this track (i.e. consensus issue).
[package.metadata.networks] [package.metadata.networks]
foundation = { forkBlock = 4370000, critical = true } foundation = { forkBlock = 7280000, critical = false }
ropsten = { forkBlock = 4230000, critical = false } ropsten = { forkBlock = 4939394, critical = false }
kovan = { forkBlock = 9200000, critical = true } kovan = { forkBlock = 10255201, critical = false }
[dependencies] [dependencies]
parity-bytes = "0.1" parity-bytes = "0.1"