review comments
This commit is contained in:
committed by
Greg Fitzgerald
parent
6a1b5a222a
commit
d531b9645d
@ -187,7 +187,7 @@ fn main() {
|
|||||||
|
|
||||||
let leader: ReplicatedData;
|
let leader: ReplicatedData;
|
||||||
if let Some(l) = matches.value_of("leader") {
|
if let Some(l) = matches.value_of("leader") {
|
||||||
leader = read_leader(l.to_string()).network;
|
leader = read_leader(l.to_string()).node_info;
|
||||||
} else {
|
} else {
|
||||||
let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 8000);
|
let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 8000);
|
||||||
leader = ReplicatedData::new_leader(&server_addr);
|
leader = ReplicatedData::new_leader(&server_addr);
|
||||||
|
@ -62,7 +62,7 @@ fn main() {
|
|||||||
|
|
||||||
let leader: ReplicatedData;
|
let leader: ReplicatedData;
|
||||||
if let Some(l) = matches.value_of("leader") {
|
if let Some(l) = matches.value_of("leader") {
|
||||||
leader = read_leader(l.to_string()).network;
|
leader = read_leader(l.to_string()).node_info;
|
||||||
} else {
|
} else {
|
||||||
let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 8000);
|
let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 8000);
|
||||||
leader = ReplicatedData::new_leader(&server_addr);
|
leader = ReplicatedData::new_leader(&server_addr);
|
||||||
|
@ -59,7 +59,7 @@ fn main() -> () {
|
|||||||
let parse: serde_json::Result<Config> = serde_json::from_reader(file);
|
let parse: serde_json::Result<Config> = serde_json::from_reader(file);
|
||||||
if let Ok(data) = parse {
|
if let Ok(data) = parse {
|
||||||
keypair = data.keypair();
|
keypair = data.keypair();
|
||||||
repl_data = data.network;
|
repl_data = data.node_info;
|
||||||
} else {
|
} else {
|
||||||
eprintln!("failed to parse {}", path);
|
eprintln!("failed to parse {}", path);
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -143,7 +143,7 @@ fn parse_args() -> Result<WalletConfig, Box<error::Error>> {
|
|||||||
|
|
||||||
let leader: ReplicatedData;
|
let leader: ReplicatedData;
|
||||||
if let Some(l) = matches.value_of("leader") {
|
if let Some(l) = matches.value_of("leader") {
|
||||||
leader = read_leader(l.to_string()).network;
|
leader = read_leader(l.to_string()).node_info;
|
||||||
} else {
|
} else {
|
||||||
let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 8000);
|
let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 8000);
|
||||||
leader = ReplicatedData::new_leader(&server_addr);
|
leader = ReplicatedData::new_leader(&server_addr);
|
||||||
|
@ -44,7 +44,7 @@ pub enum OutFile {
|
|||||||
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
/// Fullnode configuration to be stored in file
|
/// Fullnode configuration to be stored in file
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
pub network: ReplicatedData,
|
pub node_info: ReplicatedData,
|
||||||
pkcs8: Vec<u8>,
|
pkcs8: Vec<u8>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,11 +58,8 @@ impl Config {
|
|||||||
let keypair =
|
let keypair =
|
||||||
KeyPair::from_pkcs8(Input::from(&pkcs8)).expect("from_pkcs8 in fullnode::Config new");
|
KeyPair::from_pkcs8(Input::from(&pkcs8)).expect("from_pkcs8 in fullnode::Config new");
|
||||||
let pubkey = keypair.pubkey();
|
let pubkey = keypair.pubkey();
|
||||||
let network = ReplicatedData::new_leader_with_pubkey(pubkey, bind_addr);
|
let node_info = ReplicatedData::new_leader_with_pubkey(pubkey, bind_addr);
|
||||||
Config {
|
Config { node_info, pkcs8 }
|
||||||
network: network,
|
|
||||||
pkcs8: pkcs8,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
pub fn keypair(&self) -> KeyPair {
|
pub fn keypair(&self) -> KeyPair {
|
||||||
KeyPair::from_pkcs8(Input::from(&self.pkcs8))
|
KeyPair::from_pkcs8(Input::from(&self.pkcs8))
|
||||||
@ -108,7 +105,7 @@ impl FullNode {
|
|||||||
let testnet_addr = network_entry_for_validator.expect("validator requires entry");
|
let testnet_addr = network_entry_for_validator.expect("validator requires entry");
|
||||||
|
|
||||||
let network_entry_point = ReplicatedData::new_entry_point(testnet_addr);
|
let network_entry_point = ReplicatedData::new_entry_point(testnet_addr);
|
||||||
let keypair = keypair_for_validator.expect("validastor requires keypair");
|
let keypair = keypair_for_validator.expect("validator requires keypair");
|
||||||
let server = FullNode::new_validator(
|
let server = FullNode::new_validator(
|
||||||
keypair,
|
keypair,
|
||||||
bank,
|
bank,
|
||||||
@ -319,7 +316,7 @@ impl FullNode {
|
|||||||
).expect("Ncp::new");
|
).expect("Ncp::new");
|
||||||
|
|
||||||
let tvu = Tvu::new(
|
let tvu = Tvu::new(
|
||||||
Arc::new(keypair),
|
keypair,
|
||||||
bank.clone(),
|
bank.clone(),
|
||||||
entry_height,
|
entry_height,
|
||||||
crdt.clone(),
|
crdt.clone(),
|
||||||
|
@ -60,9 +60,8 @@ impl ReplicateStage {
|
|||||||
wcrdt.insert_votes(votes);
|
wcrdt.insert_votes(votes);
|
||||||
//TODO: doesn't seem like there is a synchronous call to get height and id
|
//TODO: doesn't seem like there is a synchronous call to get height and id
|
||||||
info!("replicate_stage {} {:?}", height, &last_id[..8]);
|
info!("replicate_stage {} {:?}", height, &last_id[..8]);
|
||||||
let (vote, addr) = wcrdt.new_vote(height, last_id)?;
|
wcrdt.new_vote(height, last_id)
|
||||||
(vote, addr)
|
}?;
|
||||||
};
|
|
||||||
{
|
{
|
||||||
let mut blob = shared_blob.write().unwrap();
|
let mut blob = shared_blob.write().unwrap();
|
||||||
let tx = Transaction::new_vote(&keypair, vote, last_id, 0);
|
let tx = Transaction::new_vote(&keypair, vote, last_id, 0);
|
||||||
@ -81,7 +80,7 @@ impl ReplicateStage {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
pub fn new(
|
pub fn new(
|
||||||
keypair: Arc<KeyPair>,
|
keypair: KeyPair,
|
||||||
bank: Arc<Bank>,
|
bank: Arc<Bank>,
|
||||||
crdt: Arc<RwLock<Crdt>>,
|
crdt: Arc<RwLock<Crdt>>,
|
||||||
blob_recycler: BlobRecycler,
|
blob_recycler: BlobRecycler,
|
||||||
@ -90,6 +89,7 @@ impl ReplicateStage {
|
|||||||
let (vote_blob_sender, vote_blob_receiver) = channel();
|
let (vote_blob_sender, vote_blob_receiver) = channel();
|
||||||
let send = UdpSocket::bind("0.0.0.0:0").expect("bind");
|
let send = UdpSocket::bind("0.0.0.0:0").expect("bind");
|
||||||
let t_responder = responder(send, blob_recycler.clone(), vote_blob_receiver);
|
let t_responder = responder(send, blob_recycler.clone(), vote_blob_receiver);
|
||||||
|
let skeypair = Arc::new(keypair);
|
||||||
|
|
||||||
let t_replicate = Builder::new()
|
let t_replicate = Builder::new()
|
||||||
.name("solana-replicate-stage".to_string())
|
.name("solana-replicate-stage".to_string())
|
||||||
@ -97,7 +97,7 @@ impl ReplicateStage {
|
|||||||
let mut timestamp: u64 = 0;
|
let mut timestamp: u64 = 0;
|
||||||
loop {
|
loop {
|
||||||
if let Err(e) = Self::replicate_requests(
|
if let Err(e) = Self::replicate_requests(
|
||||||
&keypair,
|
&skeypair,
|
||||||
&bank,
|
&bank,
|
||||||
&crdt,
|
&crdt,
|
||||||
&blob_recycler,
|
&blob_recycler,
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
//! 3-stage transaction validation pipeline in software.
|
//! 3-stage transaction validation pipeline in software.
|
||||||
//!
|
//!
|
||||||
//! ```text
|
//! ```text
|
||||||
//! +<------------------------------------------<+
|
//! .--------------------------------------------.
|
||||||
//! | |
|
//! | |
|
||||||
//! | .--------------------------------+---------.
|
//! | .--------------------------------+---------.
|
||||||
//! | | TVU | |
|
//! | | TVU | |
|
||||||
//! | | | |
|
//! | | | |
|
||||||
//! | | | | .------------.
|
//! | | | | .------------.
|
||||||
//! | | .------------+----------->| Validators |
|
//! | | .------------+----------->| Validators |
|
||||||
//! | | .-------. | | | `------------`
|
//! v | .-------. | | | `------------`
|
||||||
//! .----+---. | | | .----+---. .----+------. |
|
//! .----+---. | | | .----+---. .----+------. |
|
||||||
//! | Leader |--------->| Blob | | Window | | Replicate | |
|
//! | Leader |--------->| Blob | | Window | | Replicate | |
|
||||||
//! `--------` | | Fetch |-->| Stage |-->| Stage | |
|
//! `--------` | | Fetch |-->| Stage |-->| Stage | |
|
||||||
@ -69,7 +69,7 @@ impl Tvu {
|
|||||||
/// * `retransmit_socket` - my retransmit socket
|
/// * `retransmit_socket` - my retransmit socket
|
||||||
/// * `exit` - The exit signal.
|
/// * `exit` - The exit signal.
|
||||||
pub fn new(
|
pub fn new(
|
||||||
keypair: Arc<KeyPair>,
|
keypair: KeyPair,
|
||||||
bank: Arc<Bank>,
|
bank: Arc<Bank>,
|
||||||
entry_height: u64,
|
entry_height: u64,
|
||||||
crdt: Arc<RwLock<Crdt>>,
|
crdt: Arc<RwLock<Crdt>>,
|
||||||
@ -220,7 +220,7 @@ pub mod tests {
|
|||||||
let dr_1 = new_ncp(cref1.clone(), target1.sockets.gossip, exit.clone()).unwrap();
|
let dr_1 = new_ncp(cref1.clone(), target1.sockets.gossip, exit.clone()).unwrap();
|
||||||
|
|
||||||
let tvu = Tvu::new(
|
let tvu = Tvu::new(
|
||||||
Arc::new(target1_kp),
|
target1_kp,
|
||||||
bank.clone(),
|
bank.clone(),
|
||||||
0,
|
0,
|
||||||
cref1,
|
cref1,
|
||||||
|
Reference in New Issue
Block a user