Dynamic erasure set configuration (#5018)

* Use local erasure session to create/broadcast coding blobs

* Individual session for each recovery (as the config might be different)

* address review comments

* new constructors for session and coding generator

* unit test for dynamic erasure config
This commit is contained in:
Pankaj Garg
2019-07-11 13:58:33 -07:00
committed by GitHub
parent a191f3fd90
commit 4c90898f0b
10 changed files with 314 additions and 84 deletions

View File

@@ -6,6 +6,7 @@ use crate::blocktree_processor::{self, BankForksInfo};
use crate::broadcast_stage::BroadcastStageType;
use crate::cluster_info::{ClusterInfo, Node};
use crate::contact_info::ContactInfo;
use crate::erasure::ErasureConfig;
use crate::gossip_service::{discover_cluster, GossipService};
use crate::leader_schedule_cache::LeaderScheduleCache;
use crate::poh_recorder::PohRecorder;
@@ -40,6 +41,7 @@ pub struct ValidatorConfig {
pub rpc_config: JsonRpcConfig,
pub snapshot_path: Option<String>,
pub broadcast_stage_type: BroadcastStageType,
pub erasure_config: ErasureConfig,
}
impl Default for ValidatorConfig {
@@ -53,6 +55,7 @@ impl Default for ValidatorConfig {
rpc_config: JsonRpcConfig::default(),
snapshot_path: None,
broadcast_stage_type: BroadcastStageType::Standard,
erasure_config: ErasureConfig::default(),
}
}
}
@@ -264,6 +267,7 @@ impl Validator {
config.sigverify_disabled,
&blocktree,
&config.broadcast_stage_type,
&config.erasure_config,
&exit,
);