pub struct AddChainConfig<'a, TChain, TRelays> {
pub user_data: TChain,
pub specification: &'a str,
pub database_content: &'a str,
pub potential_relay_chains: TRelays,
pub json_rpc: AddChainConfigJsonRpc,
pub statement_protocol_config: Option<StatementProtocolConfig>,
pub max_pending_transactions: NonZero<u32>,
}Expand description
See Client::add_chain.
Fields§
§user_data: TChainOpaque user data that the Client will hold for this chain. Can later be accessed using
the Index and IndexMut trait implementations on the Client.
specification: &'a strJSON text containing the specification of the chain (the so-called “chain spec”).
database_content: &'a strOpaque data containing the database content that was retrieved by calling
the chainHead_unstable_finalizedDatabase JSON-RPC function in the past.
Pass an empty string if no database content exists or is known.
No error is generated if this data is invalid and/or can’t be decoded. The implementation reserves the right to break the format of this data at any point.
potential_relay_chains: TRelaysIf AddChainConfig defines a parachain, contains the list of relay chains to choose
from. Ignored if not a parachain.
This field is necessary because multiple different chain can have the same identity. If
the client tried to find the corresponding relay chain in all the previously-spawned
chains, it means that a call to Client::add_chain could influence the outcome of a
subsequent call to Client::add_chain.
For example: if user A adds a chain named “Kusama”, then user B adds a different chain also named “Kusama”, then user B adds a parachain whose relay chain is “Kusama”, it would be wrong to connect to the “Kusama” created by user A.
json_rpc: AddChainConfigJsonRpcConfiguration for the JSON-RPC endpoint.
statement_protocol_config: Option<StatementProtocolConfig>If Some, enables the statement store networking protocol.
max_pending_transactions: NonZero<u32>Maximum number of transactions that the client holds at the same time for this chain.
A transaction submitted through the JSON-RPC API (transactionWatch_v1_submitAndWatch,
transaction_v1_broadcast, author_submitExtrinsic, author_submitAndWatchExtrinsic) is
held from its submission until it is finalized, found invalid, or dropped. A transaction
submitted while this many are held is dropped immediately, without being broadcast.
Every transaction held costs memory, validations (through call proofs) and announcements to peers, as each one is periodically re-announced until it leaves the pool.
The chain’s services are shared between all the chains added with the same specification. If such a chain is already running, the value of the addition that started it applies.
The wasm node uses 64 by default. Embedders whose JSON-RPC clients are entirely trusted and that need to submit more transactions per finality delay can raise it.
Trait Implementations§
Source§impl<'a, TChain: Clone, TRelays: Clone> Clone for AddChainConfig<'a, TChain, TRelays>
impl<'a, TChain: Clone, TRelays: Clone> Clone for AddChainConfig<'a, TChain, TRelays>
Source§fn clone(&self) -> AddChainConfig<'a, TChain, TRelays>
fn clone(&self) -> AddChainConfig<'a, TChain, TRelays>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<'a, TChain, TRelays> Freeze for AddChainConfig<'a, TChain, TRelays>
impl<'a, TChain, TRelays> RefUnwindSafe for AddChainConfig<'a, TChain, TRelays>where
TChain: RefUnwindSafe,
TRelays: RefUnwindSafe,
impl<'a, TChain, TRelays> Send for AddChainConfig<'a, TChain, TRelays>
impl<'a, TChain, TRelays> Sync for AddChainConfig<'a, TChain, TRelays>
impl<'a, TChain, TRelays> Unpin for AddChainConfig<'a, TChain, TRelays>
impl<'a, TChain, TRelays> UnwindSafe for AddChainConfig<'a, TChain, TRelays>where
TChain: UnwindSafe,
TRelays: UnwindSafe,
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more