port network, sync, rpc
This commit is contained in:
parent
5dd56aa070
commit
d763664d16
3
Cargo.lock
generated
3
Cargo.lock
generated
@ -416,6 +416,7 @@ dependencies = [
|
|||||||
"mio 0.5.1 (git+https://github.com/ethcore/mio?branch=v0.5.x)",
|
"mio 0.5.1 (git+https://github.com/ethcore/mio?branch=v0.5.x)",
|
||||||
"parking_lot 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rlp 0.1.0",
|
||||||
"rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"slab 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"slab 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -442,6 +443,7 @@ dependencies = [
|
|||||||
"jsonrpc-core 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-http-server 6.1.0 (git+https://github.com/ethcore/jsonrpc-http-server.git)",
|
"jsonrpc-http-server 6.1.0 (git+https://github.com/ethcore/jsonrpc-http-server.git)",
|
||||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rlp 0.1.0",
|
||||||
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_codegen 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_codegen 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -588,6 +590,7 @@ dependencies = [
|
|||||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rlp 0.1.0",
|
||||||
"semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
@ -23,6 +23,7 @@ ethash = { path = "../ethash" }
|
|||||||
ethsync = { path = "../sync" }
|
ethsync = { path = "../sync" }
|
||||||
ethjson = { path = "../json" }
|
ethjson = { path = "../json" }
|
||||||
ethcore-devtools = { path = "../devtools" }
|
ethcore-devtools = { path = "../devtools" }
|
||||||
|
rlp = { path = "../util/rlp" }
|
||||||
rustc-serialize = "0.3"
|
rustc-serialize = "0.3"
|
||||||
transient-hashmap = "0.1"
|
transient-hashmap = "0.1"
|
||||||
serde_macros = { version = "0.7.0", optional = true }
|
serde_macros = { version = "0.7.0", optional = true }
|
||||||
|
@ -19,15 +19,12 @@
|
|||||||
#![cfg_attr(feature="nightly", feature(custom_derive, custom_attribute, plugin))]
|
#![cfg_attr(feature="nightly", feature(custom_derive, custom_attribute, plugin))]
|
||||||
#![cfg_attr(feature="nightly", plugin(serde_macros, clippy))]
|
#![cfg_attr(feature="nightly", plugin(serde_macros, clippy))]
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate log;
|
|
||||||
extern crate rustc_serialize;
|
extern crate rustc_serialize;
|
||||||
extern crate serde;
|
extern crate serde;
|
||||||
extern crate serde_json;
|
extern crate serde_json;
|
||||||
extern crate jsonrpc_core;
|
extern crate jsonrpc_core;
|
||||||
extern crate jsonrpc_http_server;
|
extern crate jsonrpc_http_server;
|
||||||
#[macro_use]
|
|
||||||
extern crate ethcore_util as util;
|
|
||||||
extern crate ethcore_io as io;
|
extern crate ethcore_io as io;
|
||||||
extern crate ethcore;
|
extern crate ethcore;
|
||||||
extern crate ethkey;
|
extern crate ethkey;
|
||||||
@ -37,6 +34,12 @@ extern crate transient_hashmap;
|
|||||||
extern crate json_ipc_server as ipc;
|
extern crate json_ipc_server as ipc;
|
||||||
extern crate ethcore_ipc;
|
extern crate ethcore_ipc;
|
||||||
extern crate time;
|
extern crate time;
|
||||||
|
extern crate rlp;
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate log;
|
||||||
|
#[macro_use]
|
||||||
|
extern crate ethcore_util as util;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
extern crate ethjson;
|
extern crate ethjson;
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
use util::{Address, H256, U256, Uint};
|
use util::{Address, H256, U256, Uint};
|
||||||
use util::rlp::encode;
|
|
||||||
use util::bytes::ToPretty;
|
use util::bytes::ToPretty;
|
||||||
use ethcore::miner::MinerService;
|
use ethcore::miner::MinerService;
|
||||||
use ethcore::client::MiningBlockChainClient;
|
use ethcore::client::MiningBlockChainClient;
|
||||||
@ -70,7 +69,7 @@ pub fn unlock_sign_and_dispatch<C, M>(client: &C, miner: &M, request: Transactio
|
|||||||
t.with_signature(signature)
|
t.with_signature(signature)
|
||||||
};
|
};
|
||||||
|
|
||||||
trace!(target: "miner", "send_transaction: dispatching tx: {}", encode(&signed_transaction).to_vec().pretty());
|
trace!(target: "miner", "send_transaction: dispatching tx: {}", ::rlp::encode(&signed_transaction).to_vec().pretty());
|
||||||
dispatch_transaction(&*client, &*miner, signed_transaction)
|
dispatch_transaction(&*client, &*miner, signed_transaction)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,7 +83,7 @@ pub fn sign_and_dispatch<C, M>(client: &C, miner: &M, request: TransactionReques
|
|||||||
t.with_signature(signature)
|
t.with_signature(signature)
|
||||||
};
|
};
|
||||||
|
|
||||||
trace!(target: "miner", "send_transaction: dispatching tx: {}", encode(&signed_transaction).to_vec().pretty());
|
trace!(target: "miner", "send_transaction: dispatching tx: {}", ::rlp::encode(&signed_transaction).to_vec().pretty());
|
||||||
dispatch_transaction(&*client, &*miner, signed_transaction)
|
dispatch_transaction(&*client, &*miner, signed_transaction)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ use ethcore::miner::{MinerService, ExternalMinerService};
|
|||||||
use jsonrpc_core::*;
|
use jsonrpc_core::*;
|
||||||
use util::{H256, Address, FixedHash, U256, H64, Uint};
|
use util::{H256, Address, FixedHash, U256, H64, Uint};
|
||||||
use util::sha3::*;
|
use util::sha3::*;
|
||||||
use util::rlp::{encode, decode, UntrustedRlp, View};
|
|
||||||
use util::{FromHex, Mutex};
|
use util::{FromHex, Mutex};
|
||||||
|
use rlp::{self, UntrustedRlp, View};
|
||||||
use ethcore::account_provider::AccountProvider;
|
use ethcore::account_provider::AccountProvider;
|
||||||
use ethcore::client::{MiningBlockChainClient, BlockID, TransactionID, UncleID};
|
use ethcore::client::{MiningBlockChainClient, BlockID, TransactionID, UncleID};
|
||||||
use ethcore::header::Header as BlockHeader;
|
use ethcore::header::Header as BlockHeader;
|
||||||
@ -123,7 +123,7 @@ impl<C, S: ?Sized, M, EM> EthClient<C, S, M, EM> where
|
|||||||
timestamp: view.timestamp().into(),
|
timestamp: view.timestamp().into(),
|
||||||
difficulty: view.difficulty().into(),
|
difficulty: view.difficulty().into(),
|
||||||
total_difficulty: total_difficulty.into(),
|
total_difficulty: total_difficulty.into(),
|
||||||
seal_fields: view.seal().into_iter().map(|f| decode(&f)).map(Bytes::new).collect(),
|
seal_fields: view.seal().into_iter().map(|f| rlp::decode(&f)).map(Bytes::new).collect(),
|
||||||
uncles: block_view.uncle_hashes().into_iter().map(Into::into).collect(),
|
uncles: block_view.uncle_hashes().into_iter().map(Into::into).collect(),
|
||||||
transactions: match include_txs {
|
transactions: match include_txs {
|
||||||
true => BlockTransactions::Full(block_view.localized_transactions().into_iter().map(Into::into).collect()),
|
true => BlockTransactions::Full(block_view.localized_transactions().into_iter().map(Into::into).collect()),
|
||||||
@ -147,7 +147,7 @@ impl<C, S: ?Sized, M, EM> EthClient<C, S, M, EM> where
|
|||||||
fn uncle(&self, id: UncleID) -> Result<Value, Error> {
|
fn uncle(&self, id: UncleID) -> Result<Value, Error> {
|
||||||
let client = take_weak!(self.client);
|
let client = take_weak!(self.client);
|
||||||
let uncle: BlockHeader = match client.uncle(id) {
|
let uncle: BlockHeader = match client.uncle(id) {
|
||||||
Some(rlp) => decode(&rlp),
|
Some(rlp) => rlp::decode(&rlp),
|
||||||
None => { return Ok(Value::Null); }
|
None => { return Ok(Value::Null); }
|
||||||
};
|
};
|
||||||
let parent_difficulty = match client.block_total_difficulty(BlockID::Hash(uncle.parent_hash().clone())) {
|
let parent_difficulty = match client.block_total_difficulty(BlockID::Hash(uncle.parent_hash().clone())) {
|
||||||
@ -173,7 +173,7 @@ impl<C, S: ?Sized, M, EM> EthClient<C, S, M, EM> where
|
|||||||
total_difficulty: (uncle.difficulty().clone() + parent_difficulty).into(),
|
total_difficulty: (uncle.difficulty().clone() + parent_difficulty).into(),
|
||||||
receipts_root: uncle.receipts_root().clone().into(),
|
receipts_root: uncle.receipts_root().clone().into(),
|
||||||
extra_data: uncle.extra_data().clone().into(),
|
extra_data: uncle.extra_data().clone().into(),
|
||||||
seal_fields: uncle.seal().clone().into_iter().map(|f| decode(&f)).map(Bytes::new).collect(),
|
seal_fields: uncle.seal().clone().into_iter().map(|f| rlp::decode(&f)).map(Bytes::new).collect(),
|
||||||
uncles: vec![],
|
uncles: vec![],
|
||||||
transactions: BlockTransactions::Hashes(vec![]),
|
transactions: BlockTransactions::Hashes(vec![]),
|
||||||
};
|
};
|
||||||
@ -566,7 +566,7 @@ impl<C, S: ?Sized, M, EM> Eth for EthClient<C, S, M, EM> where
|
|||||||
trace!(target: "miner", "submit_work: Decoded: nonce={}, pow_hash={}, mix_hash={}", nonce, pow_hash, mix_hash);
|
trace!(target: "miner", "submit_work: Decoded: nonce={}, pow_hash={}, mix_hash={}", nonce, pow_hash, mix_hash);
|
||||||
let miner = take_weak!(self.miner);
|
let miner = take_weak!(self.miner);
|
||||||
let client = take_weak!(self.client);
|
let client = take_weak!(self.client);
|
||||||
let seal = vec![encode(&mix_hash).to_vec(), encode(&nonce).to_vec()];
|
let seal = vec![rlp::encode(&mix_hash).to_vec(), rlp::encode(&nonce).to_vec()];
|
||||||
let r = miner.submit_seal(&*client, pow_hash, seal);
|
let r = miner.submit_seal(&*client, pow_hash, seal);
|
||||||
to_value(&r.is_ok())
|
to_value(&r.is_ok())
|
||||||
})
|
})
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
use std::sync::{Weak, Arc};
|
use std::sync::{Weak, Arc};
|
||||||
use jsonrpc_core::*;
|
use jsonrpc_core::*;
|
||||||
use util::rlp::{UntrustedRlp, View};
|
use rlp::{UntrustedRlp, View};
|
||||||
use ethcore::client::{BlockChainClient, CallAnalytics, TransactionID, TraceId};
|
use ethcore::client::{BlockChainClient, CallAnalytics, TransactionID, TraceId};
|
||||||
use ethcore::miner::MinerService;
|
use ethcore::miner::MinerService;
|
||||||
use ethcore::transaction::{Transaction as EthTransaction, SignedTransaction, Action};
|
use ethcore::transaction::{Transaction as EthTransaction, SignedTransaction, Action};
|
||||||
|
@ -364,7 +364,7 @@ fn rpc_eth_pending_transaction_by_hash() {
|
|||||||
|
|
||||||
let tester = EthTester::default();
|
let tester = EthTester::default();
|
||||||
{
|
{
|
||||||
let tx: SignedTransaction = decode(&FromHex::from_hex("f85f800182520894095e7baea6a6c7c4c2dfeb977efac326af552d870a801ba048b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353a0efffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804").unwrap());
|
let tx: SignedTransaction = ::rlp::decode(&FromHex::from_hex("f85f800182520894095e7baea6a6c7c4c2dfeb977efac326af552d870a801ba048b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353a0efffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804").unwrap());
|
||||||
tester.miner.pending_transactions.lock().insert(H256::zero(), tx);
|
tester.miner.pending_transactions.lock().insert(H256::zero(), tx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -705,7 +705,7 @@ fn rpc_eth_send_raw_transaction() {
|
|||||||
let signature = tester.accounts_provider.sign(address, t.hash()).unwrap();
|
let signature = tester.accounts_provider.sign(address, t.hash()).unwrap();
|
||||||
let t = t.with_signature(signature);
|
let t = t.with_signature(signature);
|
||||||
|
|
||||||
let rlp = ::util::rlp::encode(&t).to_vec().to_hex();
|
let rlp = ::rlp::encode(&t).to_vec().to_hex();
|
||||||
|
|
||||||
let req = r#"{
|
let req = r#"{
|
||||||
"jsonrpc": "2.0",
|
"jsonrpc": "2.0",
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
use util::rlp::encode;
|
|
||||||
use ethcore::contract_address;
|
use ethcore::contract_address;
|
||||||
use ethcore::transaction::{LocalizedTransaction, Action, SignedTransaction};
|
use ethcore::transaction::{LocalizedTransaction, Action, SignedTransaction};
|
||||||
use v1::types::{Bytes, H160, H256, U256};
|
use v1::types::{Bytes, H160, H256, U256};
|
||||||
@ -75,7 +74,7 @@ impl From<LocalizedTransaction> for Transaction {
|
|||||||
Action::Create => Some(contract_address(&t.sender().unwrap(), &t.nonce).into()),
|
Action::Create => Some(contract_address(&t.sender().unwrap(), &t.nonce).into()),
|
||||||
Action::Call(_) => None,
|
Action::Call(_) => None,
|
||||||
},
|
},
|
||||||
raw: encode(&t.signed).to_vec().into(),
|
raw: ::rlp::encode(&t.signed).to_vec().into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -101,7 +100,7 @@ impl From<SignedTransaction> for Transaction {
|
|||||||
Action::Create => Some(contract_address(&t.sender().unwrap(), &t.nonce).into()),
|
Action::Create => Some(contract_address(&t.sender().unwrap(), &t.nonce).into()),
|
||||||
Action::Call(_) => None,
|
Action::Call(_) => None,
|
||||||
},
|
},
|
||||||
raw: encode(&t).to_vec().into(),
|
raw: ::rlp::encode(&t).to_vec().into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ ethcore-util = { path = "../util" }
|
|||||||
ethcore-network = { path = "../util/network" }
|
ethcore-network = { path = "../util/network" }
|
||||||
ethcore-io = { path = "../util/io" }
|
ethcore-io = { path = "../util/io" }
|
||||||
ethcore = { path = "../ethcore" }
|
ethcore = { path = "../ethcore" }
|
||||||
|
rlp = { path = "../util/rlp" }
|
||||||
clippy = { version = "0.0.85", optional = true}
|
clippy = { version = "0.0.85", optional = true}
|
||||||
log = "0.3"
|
log = "0.3"
|
||||||
env_logger = "0.3"
|
env_logger = "0.3"
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
use util::*;
|
use util::*;
|
||||||
|
use rlp::*;
|
||||||
use network::NetworkError;
|
use network::NetworkError;
|
||||||
use ethcore::header::{ Header as BlockHeader};
|
use ethcore::header::{ Header as BlockHeader};
|
||||||
|
|
||||||
@ -283,11 +284,11 @@ impl BlockCollection {
|
|||||||
transactions_root: info.transactions_root().clone(),
|
transactions_root: info.transactions_root().clone(),
|
||||||
uncles: info.uncles_hash().clone(),
|
uncles: info.uncles_hash().clone(),
|
||||||
};
|
};
|
||||||
if header_id.transactions_root == rlp::SHA3_NULL_RLP && header_id.uncles == rlp::SHA3_EMPTY_LIST_RLP {
|
if header_id.transactions_root == sha3::SHA3_NULL_RLP && header_id.uncles == sha3::SHA3_EMPTY_LIST_RLP {
|
||||||
// empty body, just mark as downloaded
|
// empty body, just mark as downloaded
|
||||||
let mut body_stream = RlpStream::new_list(2);
|
let mut body_stream = RlpStream::new_list(2);
|
||||||
body_stream.append_raw(&rlp::EMPTY_LIST_RLP, 1);
|
body_stream.append_raw(&::rlp::EMPTY_LIST_RLP, 1);
|
||||||
body_stream.append_raw(&rlp::EMPTY_LIST_RLP, 1);
|
body_stream.append_raw(&::rlp::EMPTY_LIST_RLP, 1);
|
||||||
block.body = Some(body_stream.out());
|
block.body = Some(body_stream.out());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -337,6 +338,7 @@ mod test {
|
|||||||
use ethcore::views::HeaderView;
|
use ethcore::views::HeaderView;
|
||||||
use ethcore::header::BlockNumber;
|
use ethcore::header::BlockNumber;
|
||||||
use util::*;
|
use util::*;
|
||||||
|
use rlp::*;
|
||||||
|
|
||||||
fn is_empty(bc: &BlockCollection) -> bool {
|
fn is_empty(bc: &BlockCollection) -> bool {
|
||||||
bc.heads.is_empty() &&
|
bc.heads.is_empty() &&
|
||||||
|
@ -88,6 +88,7 @@
|
|||||||
///
|
///
|
||||||
|
|
||||||
use util::*;
|
use util::*;
|
||||||
|
use rlp::*;
|
||||||
use network::*;
|
use network::*;
|
||||||
use std::mem::{replace};
|
use std::mem::{replace};
|
||||||
use ethcore::views::{HeaderView, BlockView};
|
use ethcore::views::{HeaderView, BlockView};
|
||||||
@ -1531,6 +1532,7 @@ mod tests {
|
|||||||
use super::*;
|
use super::*;
|
||||||
use ::SyncConfig;
|
use ::SyncConfig;
|
||||||
use util::*;
|
use util::*;
|
||||||
|
use rlp::*;
|
||||||
use super::{PeerInfo, PeerAsking};
|
use super::{PeerInfo, PeerAsking};
|
||||||
use ethcore::views::BlockView;
|
use ethcore::views::BlockView;
|
||||||
use ethcore::header::*;
|
use ethcore::header::*;
|
||||||
@ -1548,8 +1550,8 @@ mod tests {
|
|||||||
|
|
||||||
let mut rlp = RlpStream::new_list(3);
|
let mut rlp = RlpStream::new_list(3);
|
||||||
rlp.append(&header);
|
rlp.append(&header);
|
||||||
rlp.append_raw(&rlp::EMPTY_LIST_RLP, 1);
|
rlp.append_raw(&::rlp::EMPTY_LIST_RLP, 1);
|
||||||
rlp.append_raw(&rlp::EMPTY_LIST_RLP, 1);
|
rlp.append_raw(&::rlp::EMPTY_LIST_RLP, 1);
|
||||||
rlp.out()
|
rlp.out()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,6 @@
|
|||||||
//! extern crate ethcore;
|
//! extern crate ethcore;
|
||||||
//! extern crate ethsync;
|
//! extern crate ethsync;
|
||||||
//! use std::env;
|
//! use std::env;
|
||||||
//! use std::sync::Arc;
|
|
||||||
//! use io::IoChannel;
|
//! use io::IoChannel;
|
||||||
//! use ethcore::client::{Client, ClientConfig};
|
//! use ethcore::client::{Client, ClientConfig};
|
||||||
//! use ethsync::{EthSync, SyncConfig, ManageNetwork, NetworkConfiguration};
|
//! use ethsync::{EthSync, SyncConfig, ManageNetwork, NetworkConfiguration};
|
||||||
@ -62,22 +61,24 @@
|
|||||||
//! }
|
//! }
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate log;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate ethcore_util as util;
|
|
||||||
extern crate ethcore_network as network;
|
extern crate ethcore_network as network;
|
||||||
extern crate ethcore_io as io;
|
extern crate ethcore_io as io;
|
||||||
extern crate ethcore;
|
extern crate ethcore;
|
||||||
extern crate env_logger;
|
extern crate env_logger;
|
||||||
extern crate time;
|
extern crate time;
|
||||||
extern crate rand;
|
extern crate rand;
|
||||||
|
extern crate semver;
|
||||||
|
extern crate parking_lot;
|
||||||
|
extern crate rlp;
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate log;
|
||||||
|
#[macro_use]
|
||||||
|
extern crate ethcore_util as util;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate heapsize;
|
extern crate heapsize;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate ethcore_ipc as ipc;
|
extern crate ethcore_ipc as ipc;
|
||||||
extern crate semver;
|
|
||||||
extern crate parking_lot;
|
|
||||||
|
|
||||||
mod chain;
|
mod chain;
|
||||||
mod blocks;
|
mod blocks;
|
||||||
|
@ -25,6 +25,7 @@ ethcore-util = { path = ".." }
|
|||||||
ethcore-devtools = { path = "../../devtools" }
|
ethcore-devtools = { path = "../../devtools" }
|
||||||
ethkey = { path = "../../ethkey" }
|
ethkey = { path = "../../ethkey" }
|
||||||
ethcrypto = { path = "../../ethcrypto" }
|
ethcrypto = { path = "../../ethcrypto" }
|
||||||
|
rlp = { path = "../rlp" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
|
@ -23,7 +23,7 @@ use mio::tcp::*;
|
|||||||
use util::hash::*;
|
use util::hash::*;
|
||||||
use util::sha3::*;
|
use util::sha3::*;
|
||||||
use util::bytes::*;
|
use util::bytes::*;
|
||||||
use util::rlp::*;
|
use rlp::*;
|
||||||
use std::io::{self, Cursor, Read, Write};
|
use std::io::{self, Cursor, Read, Write};
|
||||||
use error::*;
|
use error::*;
|
||||||
use io::{IoContext, StreamToken};
|
use io::{IoContext, StreamToken};
|
||||||
|
@ -24,7 +24,7 @@ use mio::udp::*;
|
|||||||
use util::sha3::*;
|
use util::sha3::*;
|
||||||
use time;
|
use time;
|
||||||
use util::hash::*;
|
use util::hash::*;
|
||||||
use util::rlp::*;
|
use rlp::*;
|
||||||
use node_table::*;
|
use node_table::*;
|
||||||
use error::NetworkError;
|
use error::NetworkError;
|
||||||
use io::{StreamToken, IoContext};
|
use io::{StreamToken, IoContext};
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
use io::IoError;
|
use io::IoError;
|
||||||
use util::rlp::*;
|
use rlp::*;
|
||||||
use util::UtilError;
|
use util::UtilError;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use ethkey::Error as KeyError;
|
use ethkey::Error as KeyError;
|
||||||
|
@ -18,9 +18,9 @@ use std::sync::Arc;
|
|||||||
use rand::random;
|
use rand::random;
|
||||||
use mio::tcp::*;
|
use mio::tcp::*;
|
||||||
use util::hash::*;
|
use util::hash::*;
|
||||||
use util::rlp::*;
|
|
||||||
use util::sha3::Hashable;
|
use util::sha3::Hashable;
|
||||||
use util::bytes::Bytes;
|
use util::bytes::Bytes;
|
||||||
|
use rlp::*;
|
||||||
use connection::{Connection};
|
use connection::{Connection};
|
||||||
use host::{HostInfo};
|
use host::{HostInfo};
|
||||||
use node_table::NodeId;
|
use node_table::NodeId;
|
||||||
|
@ -29,8 +29,8 @@ use mio::*;
|
|||||||
use mio::tcp::*;
|
use mio::tcp::*;
|
||||||
use util::hash::*;
|
use util::hash::*;
|
||||||
use util::Hashable;
|
use util::Hashable;
|
||||||
use util::rlp::*;
|
|
||||||
use util::version;
|
use util::version;
|
||||||
|
use rlp::*;
|
||||||
use session::{Session, SessionData};
|
use session::{Session, SessionData};
|
||||||
use error::*;
|
use error::*;
|
||||||
use io::*;
|
use io::*;
|
||||||
|
@ -54,9 +54,6 @@
|
|||||||
//! }
|
//! }
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate log;
|
|
||||||
extern crate ethcore_io as io;
|
extern crate ethcore_io as io;
|
||||||
extern crate ethcore_util as util;
|
extern crate ethcore_util as util;
|
||||||
extern crate parking_lot;
|
extern crate parking_lot;
|
||||||
@ -72,6 +69,11 @@ extern crate libc;
|
|||||||
extern crate slab;
|
extern crate slab;
|
||||||
extern crate ethkey;
|
extern crate ethkey;
|
||||||
extern crate ethcrypto as crypto;
|
extern crate ethcrypto as crypto;
|
||||||
|
extern crate rlp;
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate log;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
extern crate ethcore_devtools as devtools;
|
extern crate ethcore_devtools as devtools;
|
||||||
|
|
||||||
|
@ -26,8 +26,8 @@ use std::fmt;
|
|||||||
use std::fs;
|
use std::fs;
|
||||||
use std::io::{Read, Write};
|
use std::io::{Read, Write};
|
||||||
use util::hash::*;
|
use util::hash::*;
|
||||||
use util::rlp::*;
|
|
||||||
use util::UtilError;
|
use util::UtilError;
|
||||||
|
use rlp::*;
|
||||||
use time::Tm;
|
use time::Tm;
|
||||||
use error::NetworkError;
|
use error::NetworkError;
|
||||||
use discovery::{TableUpdates, NodeEntry};
|
use discovery::{TableUpdates, NodeEntry};
|
||||||
|
@ -19,8 +19,8 @@ use std::io;
|
|||||||
use std::sync::*;
|
use std::sync::*;
|
||||||
use mio::*;
|
use mio::*;
|
||||||
use mio::tcp::*;
|
use mio::tcp::*;
|
||||||
use util::rlp::*;
|
|
||||||
use util::hash::*;
|
use util::hash::*;
|
||||||
|
use rlp::*;
|
||||||
use connection::{EncryptedConnection, Packet, Connection};
|
use connection::{EncryptedConnection, Packet, Connection};
|
||||||
use handshake::Handshake;
|
use handshake::Handshake;
|
||||||
use io::{IoContext, StreamToken};
|
use io::{IoContext, StreamToken};
|
||||||
|
Loading…
Reference in New Issue
Block a user