Shared instance of ExternalMiner

This commit is contained in:
Tomasz Drwięga
2016-04-21 17:32:53 +02:00
parent 3e280a3386
commit f5c2bea134
10 changed files with 77 additions and 91 deletions

View File

@@ -69,7 +69,7 @@ use util::*;
use util::panics::{MayPanic, ForwardPanic, PanicHandler};
use ethcore::service::ClientService;
use ethsync::EthSync;
use ethminer::{Miner, MinerService};
use ethminer::{Miner, MinerService, ExternalMiner};
use daemonize::Daemonize;
use die::*;
@@ -153,6 +153,8 @@ fn execute_client(conf: Configuration) {
miner.set_minimal_gas_price(conf.gas_price());
miner.set_transactions_limit(conf.args.flag_tx_limit);
let external_miner = Arc::new(ExternalMiner::default());
// Sync
let sync = EthSync::register(service.network(), sync_config, client.clone(), miner.clone());
@@ -168,6 +170,7 @@ fn execute_client(conf: Configuration) {
sync: sync.clone(),
secret_store: account_service.clone(),
miner: miner.clone(),
external_miner: external_miner.clone(),
logger: logger.clone()
});
@@ -182,6 +185,7 @@ fn execute_client(conf: Configuration) {
sync: sync.clone(),
secret_store: account_service.clone(),
miner: miner.clone(),
external_miner: external_miner.clone(),
logger: logger.clone()
});

View File

@@ -20,7 +20,7 @@ use std::sync::Arc;
use std::net::SocketAddr;
use ethcore::client::Client;
use ethsync::EthSync;
use ethminer::Miner;
use ethminer::{Miner, ExternalMiner};
use util::RotatingLogger;
use util::keys::store::{AccountService};
use die::*;
@@ -45,6 +45,7 @@ pub struct Dependencies {
pub sync: Arc<EthSync>,
pub secret_store: Arc<AccountService>,
pub miner: Arc<Miner>,
pub external_miner: Arc<ExternalMiner>,
pub logger: Arc<RotatingLogger>,
}
@@ -90,7 +91,7 @@ pub fn setup_rpc_server(
"web3" => server.add_delegate(Web3Client::new().to_delegate()),
"net" => server.add_delegate(NetClient::new(&deps.sync).to_delegate()),
"eth" => {
server.add_delegate(EthClient::new(&deps.client, &deps.sync, &deps.secret_store, &deps.miner).to_delegate());
server.add_delegate(EthClient::new(&deps.client, &deps.sync, &deps.secret_store, &deps.miner, &deps.external_miner).to_delegate());
server.add_delegate(EthFilterClient::new(&deps.client, &deps.miner).to_delegate());
},
"personal" => server.add_delegate(PersonalClient::new(&deps.secret_store).to_delegate()),

View File

@@ -19,7 +19,7 @@ use std::str::FromStr;
use std::net::SocketAddr;
use ethcore::client::Client;
use ethsync::EthSync;
use ethminer::Miner;
use ethminer::{Miner, ExternalMiner};
use util::RotatingLogger;
use util::keys::store::{AccountService};
use die::*;
@@ -42,6 +42,7 @@ pub struct Dependencies {
pub sync: Arc<EthSync>,
pub secret_store: Arc<AccountService>,
pub miner: Arc<Miner>,
pub external_miner: Arc<ExternalMiner>,
pub logger: Arc<RotatingLogger>,
}
@@ -93,7 +94,7 @@ pub fn setup_webapp_server(
let server = webapp::ServerBuilder::new();
server.add_delegate(Web3Client::new().to_delegate());
server.add_delegate(NetClient::new(&deps.sync).to_delegate());
server.add_delegate(EthClient::new(&deps.client, &deps.sync, &deps.secret_store, &deps.miner).to_delegate());
server.add_delegate(EthClient::new(&deps.client, &deps.sync, &deps.secret_store, &deps.miner, &deps.external_miner).to_delegate());
server.add_delegate(EthFilterClient::new(&deps.client, &deps.miner).to_delegate());
server.add_delegate(PersonalClient::new(&deps.secret_store).to_delegate());
server.add_delegate(EthcoreClient::new(&deps.miner, deps.logger).to_delegate());