diff --git a/Cargo.lock b/Cargo.lock index ffd5d7d5c..42714d28c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -368,8 +368,8 @@ dependencies = [ [[package]] name = "daemonize" -version = "0.2.3" -source = "git+https://github.com/paritytech/daemonize#df00295f03450326613f2d616059fd44434a0d74" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2007,7 +2007,7 @@ version = "1.12.0" dependencies = [ "jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "panic_hook 0.1.0", - "parity-ethereum 2.1.7", + "parity-ethereum 2.1.8", ] [[package]] @@ -2023,14 +2023,14 @@ dependencies = [ [[package]] name = "parity-ethereum" -version = "2.1.7" +version = "2.1.8" dependencies = [ "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)", "blooms-db 0.1.0", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)", - "daemonize 0.2.3 (git+https://github.com/paritytech/daemonize)", + "daemonize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "dir 0.1.2", "docopt 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2073,7 +2073,7 @@ dependencies = [ "parity-rpc 1.12.0", "parity-rpc-client 1.4.0", "parity-updater 1.12.0", - "parity-version 2.1.7", + "parity-version 2.1.8", "parity-whisper 0.1.0", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2238,7 +2238,7 @@ dependencies = [ "parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-reactor 0.1.0", "parity-updater 1.12.0", - "parity-version 2.1.7", + "parity-version 2.1.8", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "patricia-trie 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2328,7 +2328,7 @@ dependencies = [ "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-hash-fetch 1.12.0", "parity-path 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-version 2.1.7", + "parity-version 2.1.8", "parking_lot 0.6.4 (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)", @@ -2338,7 +2338,7 @@ dependencies = [ [[package]] name = "parity-version" -version = "2.1.7" +version = "2.1.8" dependencies = [ "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rlp 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3929,7 +3929,7 @@ dependencies = [ "checksum crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c240f247c278fa08a6d4820a6a222bfc6e0d999e51ba67be94f44c905b2161f2" "checksum ct-logs 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "61cd11fb222fecf889f4531855c614548e92e8bd2eb178e35296885df5ee9a7c" "checksum ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)" = "" -"checksum daemonize 0.2.3 (git+https://github.com/paritytech/daemonize)" = "" +"checksum daemonize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4093d27eb267d617f03c2ee25d4c3ca525b89a76154001954a11984508ffbde5" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum docopt 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d8acd393692c503b168471874953a2531df0e9ab77d0b6bbc582395743300a4a" "checksum edit-distance 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3bd26878c3d921f89797a4e1a1711919f999a9f6946bb6f5a4ffda126d297b7e" diff --git a/Cargo.toml b/Cargo.toml index e2a87ac9a..86e206fc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ description = "Parity Ethereum client" name = "parity-ethereum" # NOTE Make sure to update util/version/Cargo.toml as well -version = "2.1.7" +version = "2.1.8" license = "GPL-3.0" authors = ["Parity Technologies "] @@ -84,7 +84,7 @@ fake-fetch = { path = "util/fake-fetch" } winapi = { version = "0.3.4", features = ["winsock2", "winuser", "shellapi"] } [target.'cfg(not(windows))'.dependencies] -daemonize = { git = "https://github.com/paritytech/daemonize" } +daemonize = "0.3" [features] miner-debug = ["ethcore/miner-debug"] diff --git a/parity/db/rocksdb/blooms.rs b/parity/db/rocksdb/blooms.rs index eba8eb896..5c71fe956 100644 --- a/parity/db/rocksdb/blooms.rs +++ b/parity/db/rocksdb/blooms.rs @@ -23,6 +23,8 @@ use rlp; use super::kvdb_rocksdb::DatabaseConfig; use super::open_database; +const LOG_BLOOMS_ELEMENTS_PER_INDEX: u64 = 16; + pub fn migrate_blooms>(path: P, config: &DatabaseConfig) -> Result<(), Error> { // init let db = open_database(&path.as_ref().to_string_lossy(), config)?; @@ -41,11 +43,12 @@ pub fn migrate_blooms>(path: P, config: &DatabaseConfig) -> Resul key[0] == 3u8 && key[1] == 0u8 }) .map(|(key, group)| { - let number = + let index = (key[2] as u64) << 24 | (key[3] as u64) << 16 | (key[4] as u64) << 8 | (key[5] as u64); + let number = index * LOG_BLOOMS_ELEMENTS_PER_INDEX; let blooms = rlp::decode_list::(&group); (number, blooms) @@ -66,11 +69,12 @@ pub fn migrate_blooms>(path: P, config: &DatabaseConfig) -> Resul key[0] == 1u8 && key[1] == 0u8 }) .map(|(key, group)| { - let number = + let index = (key[2] as u64) | (key[3] as u64) << 8 | (key[4] as u64) << 16 | (key[5] as u64) << 24; + let number = index * LOG_BLOOMS_ELEMENTS_PER_INDEX; let blooms = rlp::decode_list::(&group); (number, blooms) diff --git a/parity/run.rs b/parity/run.rs index 2b1a5fd4e..94a4f72a2 100644 --- a/parity/run.rs +++ b/parity/run.rs @@ -455,6 +455,14 @@ fn execute_impl(cmd: RunCmd, logger: Arc, on_client_rq: let passwords = passwords_from_files(&cmd.acc_conf.password_files)?; + // Run in daemon mode. + // Note, that it should be called before we leave any file descriptor open, + // since `daemonize` will close them. + if let Some(pid_file) = cmd.daemon { + info!("Running as a daemon process!"); + daemonize(pid_file)?; + } + // prepare account provider let account_provider = Arc::new(prepare_account_provider(&cmd.spec, &cmd.dirs, &spec.data_dir, cmd.acc_conf, &passwords)?); @@ -795,12 +803,6 @@ fn execute_impl(cmd: RunCmd, logger: Arc, on_client_rq: client.set_exit_handler(on_client_rq); updater.set_exit_handler(on_updater_rq); - // run in daemon mode - if let Some(pid_file) = cmd.daemon { - info!("Running as a daemon process!"); - daemonize(pid_file)?; - } - Ok(RunningClient { inner: RunningClientInner::Full { rpc: rpc_direct, diff --git a/util/version/Cargo.toml b/util/version/Cargo.toml index 48882c842..2f062cf55 100644 --- a/util/version/Cargo.toml +++ b/util/version/Cargo.toml @@ -3,7 +3,7 @@ [package] name = "parity-version" # NOTE: this value is used for Parity Ethereum version string (via env CARGO_PKG_VERSION) -version = "2.1.7" +version = "2.1.8" authors = ["Parity Technologies "] build = "build.rs"