@ -146,7 +146,7 @@ fn create_request_processor(
|
||||
let t_receiver = receiver(storage_socket.clone(), exit, s_reader, recycler, "archiver");
|
||||
thread_handles.push(t_receiver);
|
||||
|
||||
let t_responder = responder("archiver-responder", storage_socket.clone(), r_responder);
|
||||
let t_responder = responder("archiver-responder", storage_socket, r_responder);
|
||||
thread_handles.push(t_responder);
|
||||
|
||||
let exit = exit.clone();
|
||||
@ -428,7 +428,7 @@ impl Archiver {
|
||||
"collected mining rewards: Account balance {:?}",
|
||||
client.get_balance_with_commitment(
|
||||
&archiver_keypair.pubkey(),
|
||||
client_commitment.clone()
|
||||
client_commitment
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -493,7 +493,7 @@ impl Archiver {
|
||||
|
||||
let _sigverify_stage = SigVerifyStage::new(
|
||||
shred_fetch_receiver,
|
||||
verified_sender.clone(),
|
||||
verified_sender,
|
||||
DisabledSigVerifier::default(),
|
||||
);
|
||||
|
||||
@ -650,7 +650,7 @@ impl Archiver {
|
||||
let tx = Transaction::new_signed_instructions(&[keypair], ix, blockhash);
|
||||
let signature = client.async_send_transaction(tx)?;
|
||||
client
|
||||
.poll_for_signature_with_commitment(&signature, client_commitment.clone())
|
||||
.poll_for_signature_with_commitment(&signature, client_commitment)
|
||||
.map_err(|err| match err {
|
||||
TransportError::IoError(e) => e,
|
||||
TransportError::TransactionError(_) => io::Error::new(
|
||||
@ -866,7 +866,7 @@ impl Archiver {
|
||||
let t_receiver = receiver(
|
||||
repair_socket.clone(),
|
||||
&exit,
|
||||
s_reader.clone(),
|
||||
s_reader,
|
||||
Recycler::default(),
|
||||
"archiver_reeciver",
|
||||
);
|
||||
|
@ -203,8 +203,7 @@ impl ClusterInfo {
|
||||
|
||||
pub fn insert_self(&mut self, contact_info: ContactInfo) {
|
||||
if self.id() == contact_info.id {
|
||||
let value =
|
||||
CrdsValue::new_signed(CrdsData::ContactInfo(contact_info.clone()), &self.keypair);
|
||||
let value = CrdsValue::new_signed(CrdsData::ContactInfo(contact_info), &self.keypair);
|
||||
let _ = self.gossip.crds.insert(value, timestamp());
|
||||
}
|
||||
}
|
||||
@ -831,19 +830,19 @@ impl ClusterInfo {
|
||||
}
|
||||
|
||||
pub fn window_index_request_bytes(&self, slot: Slot, shred_index: u64) -> Result<Vec<u8>> {
|
||||
let req = Protocol::RequestWindowIndex(self.my_data().clone(), slot, shred_index);
|
||||
let req = Protocol::RequestWindowIndex(self.my_data(), slot, shred_index);
|
||||
let out = serialize(&req)?;
|
||||
Ok(out)
|
||||
}
|
||||
|
||||
fn window_highest_index_request_bytes(&self, slot: Slot, shred_index: u64) -> Result<Vec<u8>> {
|
||||
let req = Protocol::RequestHighestWindowIndex(self.my_data().clone(), slot, shred_index);
|
||||
let req = Protocol::RequestHighestWindowIndex(self.my_data(), slot, shred_index);
|
||||
let out = serialize(&req)?;
|
||||
Ok(out)
|
||||
}
|
||||
|
||||
fn orphan_bytes(&self, slot: Slot) -> Result<Vec<u8>> {
|
||||
let req = Protocol::RequestOrphan(self.my_data().clone(), slot);
|
||||
let req = Protocol::RequestOrphan(self.my_data(), slot);
|
||||
let out = serialize(&req)?;
|
||||
Ok(out)
|
||||
}
|
||||
@ -1501,7 +1500,7 @@ impl ClusterInfo {
|
||||
.gossip
|
||||
.crds
|
||||
.update_record_timestamp(&from.id, timestamp());
|
||||
let my_info = me.read().unwrap().my_data().clone();
|
||||
let my_info = me.read().unwrap().my_data();
|
||||
|
||||
let (res, label) = {
|
||||
match &request {
|
||||
|
@ -67,7 +67,7 @@ fn retransmit(
|
||||
.read()
|
||||
.unwrap()
|
||||
.sorted_retransmit_peers_and_stakes(stakes);
|
||||
let me = cluster_info.read().unwrap().my_data().clone();
|
||||
let me = cluster_info.read().unwrap().my_data();
|
||||
let mut discard_total = 0;
|
||||
let mut repair_total = 0;
|
||||
let mut retransmit_total = 0;
|
||||
|
@ -95,7 +95,7 @@ impl JsonRpcRequestProcessor {
|
||||
block_commitment_cache: Arc<RwLock<BlockCommitmentCache>>,
|
||||
blocktree: Arc<Blocktree>,
|
||||
storage_state: StorageState,
|
||||
validator_exit: &Arc<RwLock<Option<ValidatorExit>>>,
|
||||
validator_exit: Arc<RwLock<Option<ValidatorExit>>>,
|
||||
) -> Self {
|
||||
JsonRpcRequestProcessor {
|
||||
config,
|
||||
@ -103,7 +103,7 @@ impl JsonRpcRequestProcessor {
|
||||
block_commitment_cache,
|
||||
blocktree,
|
||||
storage_state,
|
||||
validator_exit: validator_exit.clone(),
|
||||
validator_exit,
|
||||
}
|
||||
}
|
||||
|
||||
@ -1207,7 +1207,7 @@ pub mod tests {
|
||||
block_commitment_cache.clone(),
|
||||
blocktree,
|
||||
StorageState::default(),
|
||||
&validator_exit,
|
||||
validator_exit,
|
||||
)));
|
||||
let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair(
|
||||
ContactInfo::default(),
|
||||
@ -1259,7 +1259,7 @@ pub mod tests {
|
||||
block_commitment_cache,
|
||||
Arc::new(blocktree),
|
||||
StorageState::default(),
|
||||
&validator_exit,
|
||||
validator_exit,
|
||||
);
|
||||
thread::spawn(move || {
|
||||
let blockhash = bank.confirmed_last_blockhash().0;
|
||||
@ -1756,7 +1756,7 @@ pub mod tests {
|
||||
block_commitment_cache,
|
||||
Arc::new(blocktree),
|
||||
StorageState::default(),
|
||||
&validator_exit,
|
||||
validator_exit,
|
||||
);
|
||||
Arc::new(RwLock::new(request_processor))
|
||||
},
|
||||
@ -1854,7 +1854,7 @@ pub mod tests {
|
||||
block_commitment_cache,
|
||||
Arc::new(blocktree),
|
||||
StorageState::default(),
|
||||
&validator_exit,
|
||||
validator_exit,
|
||||
);
|
||||
assert_eq!(request_processor.validator_exit(), Ok(false));
|
||||
assert_eq!(exit.load(Ordering::Relaxed), false);
|
||||
@ -1875,7 +1875,7 @@ pub mod tests {
|
||||
block_commitment_cache,
|
||||
Arc::new(blocktree),
|
||||
StorageState::default(),
|
||||
&validator_exit,
|
||||
validator_exit,
|
||||
);
|
||||
assert_eq!(request_processor.validator_exit(), Ok(true));
|
||||
assert_eq!(exit.load(Ordering::Relaxed), true);
|
||||
@ -1928,7 +1928,7 @@ pub mod tests {
|
||||
block_commitment_cache,
|
||||
Arc::new(blocktree),
|
||||
StorageState::default(),
|
||||
&validator_exit,
|
||||
validator_exit,
|
||||
);
|
||||
assert_eq!(
|
||||
request_processor.get_block_commitment(0),
|
||||
|
@ -345,7 +345,10 @@ mod tests {
|
||||
let expected_res: Option<transaction::Result<()>> = Some(Ok(()));
|
||||
let expected_res_str =
|
||||
serde_json::to_string(&serde_json::to_value(expected_res).unwrap()).unwrap();
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","method":"signatureNotification","params":{{"result":{},"subscription":0}}}}"#, expected_res_str);
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","method":"signatureNotification","params":{{"result":{},"subscription":0}}}}"#,
|
||||
expected_res_str
|
||||
);
|
||||
assert_eq!(expected, response);
|
||||
}
|
||||
}
|
||||
@ -389,7 +392,9 @@ mod tests {
|
||||
let req =
|
||||
format!(r#"{{"jsonrpc":"2.0","id":1,"method":"signatureUnsubscribe","params":[1]}}"#);
|
||||
let res = io.handle_request_sync(&req, session.clone());
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","error":{{"code":-32602,"message":"Invalid Request: Subscription id does not exist"}},"id":1}}"#);
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","error":{{"code":-32602,"message":"Invalid Request: Subscription id does not exist"}},"id":1}}"#
|
||||
);
|
||||
let expected: Response = serde_json::from_str(&expected).unwrap();
|
||||
|
||||
let result: Response = serde_json::from_str(&res.unwrap()).unwrap();
|
||||
@ -529,7 +534,9 @@ mod tests {
|
||||
let req =
|
||||
format!(r#"{{"jsonrpc":"2.0","id":1,"method":"accountUnsubscribe","params":[1]}}"#);
|
||||
let res = io.handle_request_sync(&req, session.clone());
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","error":{{"code":-32602,"message":"Invalid Request: Subscription id does not exist"}},"id":1}}"#);
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","error":{{"code":-32602,"message":"Invalid Request: Subscription id does not exist"}},"id":1}}"#
|
||||
);
|
||||
let expected: Response = serde_json::from_str(&expected).unwrap();
|
||||
|
||||
let result: Response = serde_json::from_str(&res.unwrap()).unwrap();
|
||||
@ -640,7 +647,10 @@ mod tests {
|
||||
};
|
||||
let expected_res_str =
|
||||
serde_json::to_string(&serde_json::to_value(expected_res).unwrap()).unwrap();
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","method":"slotNotification","params":{{"result":{},"subscription":0}}}}"#, expected_res_str);
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","method":"slotNotification","params":{{"result":{},"subscription":0}}}}"#,
|
||||
expected_res_str
|
||||
);
|
||||
assert_eq!(expected, response);
|
||||
}
|
||||
}
|
||||
@ -662,7 +672,10 @@ mod tests {
|
||||
};
|
||||
let expected_res_str =
|
||||
serde_json::to_string(&serde_json::to_value(expected_res).unwrap()).unwrap();
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","method":"slotNotification","params":{{"result":{},"subscription":0}}}}"#, expected_res_str);
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","method":"slotNotification","params":{{"result":{},"subscription":0}}}}"#,
|
||||
expected_res_str
|
||||
);
|
||||
assert_eq!(expected, response);
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ impl PubSubService {
|
||||
|
||||
let server = ServerBuilder::with_meta_extractor(io, |context: &RequestContext| {
|
||||
info!("New pubsub connection");
|
||||
let session = Arc::new(Session::new(context.sender().clone()));
|
||||
let session = Arc::new(Session::new(context.sender()));
|
||||
session.on_drop(|| {
|
||||
info!("Pubsub connection dropped");
|
||||
});
|
||||
|
@ -92,11 +92,11 @@ impl JsonRpcService {
|
||||
bank_forks: Arc<RwLock<BankForks>>,
|
||||
block_commitment_cache: Arc<RwLock<BlockCommitmentCache>>,
|
||||
blocktree: Arc<Blocktree>,
|
||||
cluster_info: &Arc<RwLock<ClusterInfo>>,
|
||||
cluster_info: Arc<RwLock<ClusterInfo>>,
|
||||
genesis_hash: Hash,
|
||||
ledger_path: &Path,
|
||||
storage_state: StorageState,
|
||||
validator_exit: &Arc<RwLock<Option<ValidatorExit>>>,
|
||||
validator_exit: Arc<RwLock<Option<ValidatorExit>>>,
|
||||
) -> Self {
|
||||
info!("rpc bound to {:?}", rpc_addr);
|
||||
info!("rpc configuration: {:?}", config);
|
||||
@ -106,11 +106,12 @@ impl JsonRpcService {
|
||||
block_commitment_cache,
|
||||
blocktree,
|
||||
storage_state,
|
||||
validator_exit,
|
||||
validator_exit.clone(),
|
||||
)));
|
||||
let request_processor_ = request_processor.clone();
|
||||
|
||||
let cluster_info = cluster_info.clone();
|
||||
#[cfg(test)]
|
||||
let test_request_processor = request_processor.clone();
|
||||
|
||||
let ledger_path = ledger_path.to_path_buf();
|
||||
|
||||
let (close_handle_sender, close_handle_receiver) = channel();
|
||||
@ -123,7 +124,7 @@ impl JsonRpcService {
|
||||
|
||||
let server =
|
||||
ServerBuilder::with_meta_extractor(io, move |_req: &hyper::Request<hyper::Body>| Meta {
|
||||
request_processor: request_processor_.clone(),
|
||||
request_processor: request_processor.clone(),
|
||||
cluster_info: cluster_info.clone(),
|
||||
genesis_hash
|
||||
}).threads(4)
|
||||
@ -153,7 +154,7 @@ impl JsonRpcService {
|
||||
Self {
|
||||
thread_hdl,
|
||||
#[cfg(test)]
|
||||
request_processor,
|
||||
request_processor: test_request_processor,
|
||||
close_handle: Some(close_handle),
|
||||
}
|
||||
}
|
||||
@ -210,11 +211,11 @@ mod tests {
|
||||
bank_forks,
|
||||
block_commitment_cache,
|
||||
Arc::new(blocktree),
|
||||
&cluster_info,
|
||||
cluster_info,
|
||||
Hash::default(),
|
||||
&PathBuf::from("farf"),
|
||||
StorageState::default(),
|
||||
&validator_exit,
|
||||
validator_exit,
|
||||
);
|
||||
let thread = rpc_service.thread_hdl.thread();
|
||||
assert_eq!(thread.name().unwrap(), "solana-jsonrpc");
|
||||
|
@ -375,7 +375,9 @@ mod tests {
|
||||
subscriptions.check_account(&alice.pubkey(), 0, &bank_forks);
|
||||
let string = transport_receiver.poll();
|
||||
if let Async::Ready(Some(response)) = string.unwrap() {
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","method":"accountNotification","params":{{"result":{{"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"executable":false,"lamports":1,"owner":[2,203,81,223,225,24,34,35,203,214,138,130,144,208,35,77,63,16,87,51,47,198,115,123,98,188,19,160,0,0,0,0],"rent_epoch":1}},"subscription":0}}}}"#);
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","method":"accountNotification","params":{{"result":{{"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"executable":false,"lamports":1,"owner":[2,203,81,223,225,24,34,35,203,214,138,130,144,208,35,77,63,16,87,51,47,198,115,123,98,188,19,160,0,0,0,0],"rent_epoch":1}},"subscription":0}}}}"#
|
||||
);
|
||||
assert_eq!(expected, response);
|
||||
}
|
||||
|
||||
@ -430,7 +432,10 @@ mod tests {
|
||||
subscriptions.check_program(&solana_budget_program::id(), 0, &bank_forks);
|
||||
let string = transport_receiver.poll();
|
||||
if let Async::Ready(Some(response)) = string.unwrap() {
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","method":"programNotification","params":{{"result":["{:?}",{{"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"executable":false,"lamports":1,"owner":[2,203,81,223,225,24,34,35,203,214,138,130,144,208,35,77,63,16,87,51,47,198,115,123,98,188,19,160,0,0,0,0],"rent_epoch":1}}],"subscription":0}}}}"#, alice.pubkey());
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","method":"programNotification","params":{{"result":["{:?}",{{"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"executable":false,"lamports":1,"owner":[2,203,81,223,225,24,34,35,203,214,138,130,144,208,35,77,63,16,87,51,47,198,115,123,98,188,19,160,0,0,0,0],"rent_epoch":1}}],"subscription":0}}}}"#,
|
||||
alice.pubkey()
|
||||
);
|
||||
assert_eq!(expected, response);
|
||||
}
|
||||
|
||||
@ -481,7 +486,10 @@ mod tests {
|
||||
let expected_res: Option<transaction::Result<()>> = Some(Ok(()));
|
||||
let expected_res_str =
|
||||
serde_json::to_string(&serde_json::to_value(expected_res).unwrap()).unwrap();
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","method":"signatureNotification","params":{{"result":{},"subscription":0}}}}"#, expected_res_str);
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","method":"signatureNotification","params":{{"result":{},"subscription":0}}}}"#,
|
||||
expected_res_str
|
||||
);
|
||||
assert_eq!(expected, response);
|
||||
}
|
||||
|
||||
@ -517,7 +525,10 @@ mod tests {
|
||||
};
|
||||
let expected_res_str =
|
||||
serde_json::to_string(&serde_json::to_value(expected_res).unwrap()).unwrap();
|
||||
let expected = format!(r#"{{"jsonrpc":"2.0","method":"slotNotification","params":{{"result":{},"subscription":0}}}}"#, expected_res_str);
|
||||
let expected = format!(
|
||||
r#"{{"jsonrpc":"2.0","method":"slotNotification","params":{{"result":{},"subscription":0}}}}"#,
|
||||
expected_res_str
|
||||
);
|
||||
assert_eq!(expected, response);
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ impl ShredFetchStage {
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
let sender = sender.clone();
|
||||
|
||||
let modifier_hdl = Builder::new()
|
||||
.name("solana-tvu-fetch-stage-packet-modifier".to_string())
|
||||
.spawn(|| Self::modify_packets(packet_receiver, sender, modify))
|
||||
|
@ -59,10 +59,10 @@ impl Tpu {
|
||||
|
||||
let sigverify_stage = if !sigverify_disabled {
|
||||
let verifier = TransactionSigVerifier::default();
|
||||
SigVerifyStage::new(packet_receiver, verified_sender.clone(), verifier)
|
||||
SigVerifyStage::new(packet_receiver, verified_sender, verifier)
|
||||
} else {
|
||||
let verifier = DisabledSigVerifier::default();
|
||||
SigVerifyStage::new(packet_receiver, verified_sender.clone(), verifier)
|
||||
SigVerifyStage::new(packet_receiver, verified_sender, verifier)
|
||||
};
|
||||
|
||||
let (verified_vote_sender, verified_vote_receiver) = unbounded();
|
||||
|
@ -119,13 +119,13 @@ impl Tvu {
|
||||
let sigverify_stage = if !sigverify_disabled {
|
||||
SigVerifyStage::new(
|
||||
fetch_receiver,
|
||||
verified_sender.clone(),
|
||||
verified_sender,
|
||||
ShredSigVerifier::new(bank_forks.clone(), leader_schedule_cache.clone()),
|
||||
)
|
||||
} else {
|
||||
SigVerifyStage::new(
|
||||
fetch_receiver,
|
||||
verified_sender.clone(),
|
||||
verified_sender,
|
||||
DisabledSigVerifier::default(),
|
||||
)
|
||||
};
|
||||
|
@ -225,11 +225,11 @@ impl Validator {
|
||||
bank_forks.clone(),
|
||||
block_commitment_cache.clone(),
|
||||
blocktree.clone(),
|
||||
&cluster_info,
|
||||
cluster_info.clone(),
|
||||
genesis_hash,
|
||||
ledger_path,
|
||||
storage_state.clone(),
|
||||
&validator_exit,
|
||||
validator_exit.clone(),
|
||||
))
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user