pub struct PowerShapingParameters {
pub top_n: u32,
pub validators_power_cap: u32,
pub validator_set_cap: u32,
pub allowlist: Vec<String>,
pub denylist: Vec<String>,
pub min_stake: u64,
pub allow_inactive_vals: bool,
}
Expand description
PowerShapingParameters contains parameters that shape the validator set that we send to the consumer chain
Fields§
§top_n: u32
Corresponds to the percentage of validators that have to validate the chain under the Top N case. For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain.
validators_power_cap: u32
Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if
validators_power_cap
is set to 32, it means that no validator can have more than 32% of the voting power on the
consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only
5 validators and with validators_power_cap
set to 10%. In such a scenario, at least one validator would need
to have more than 20% of the total voting power. Therefore, validators_power_cap
operates on a best-effort basis.
validator_set_cap: u32
Corresponds to the maximum number of validators that can validate a consumer chain.
Only applicable to Opt In chains. Setting validator_set_cap
on a Top N chain is a no-op.
allowlist: Vec<String>
corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate the consumer chain
denylist: Vec<String>
corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain
min_stake: u64
Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain.
allow_inactive_vals: bool
Corresponds to whether inactive validators are allowed to validate the consumer chain.
Trait Implementations§
Source§impl Clone for PowerShapingParameters
impl Clone for PowerShapingParameters
Source§fn clone(&self) -> PowerShapingParameters
fn clone(&self) -> PowerShapingParameters
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for PowerShapingParameters
impl Debug for PowerShapingParameters
Source§impl Default for PowerShapingParameters
impl Default for PowerShapingParameters
Source§impl Message for PowerShapingParameters
impl Message for PowerShapingParameters
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.Source§impl Name for PowerShapingParameters
impl Name for PowerShapingParameters
Source§const NAME: &'static str = "PowerShapingParameters"
const NAME: &'static str = "PowerShapingParameters"
Message
.
This name is the same as it appears in the source .proto file, e.g. FooBar
.Source§const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"
const PACKAGE: &'static str = "interchain_security.ccv.provider.v1"
.
, e.g. google.protobuf
.Source§fn full_name() -> String
fn full_name() -> String
Message
.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation
.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.Source§impl PartialEq for PowerShapingParameters
impl PartialEq for PowerShapingParameters
impl StructuralPartialEq for PowerShapingParameters
Auto Trait Implementations§
impl Freeze for PowerShapingParameters
impl RefUnwindSafe for PowerShapingParameters
impl Send for PowerShapingParameters
impl Sync for PowerShapingParameters
impl Unpin for PowerShapingParameters
impl UnwindSafe for PowerShapingParameters
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request