Struct sc_cli::RuntimeVersion [−][src]
Runtime version.
This should not be thought of as classic Semver (major/minor/tiny).
This triplet have different semantics and mis-interpretation could cause problems.
In particular: bug fixes should result in an increment of spec_version and possibly authoring_version,
absolutely not impl_version since they change the semantics of the runtime.
Fields
spec_name: RuntimeStringIdentifies the different Substrate runtimes. There’ll be at least polkadot and node. A different on-chain spec_name to that of the native runtime would normally result in node not attempting to sync or author blocks.
impl_name: RuntimeStringName of the implementation of the spec. This is of little consequence for the node
and serves only to differentiate code of different implementation teams. For this
codebase, it will be parity-polkadot. If there were a non-Rust implementation of the
Polkadot runtime (e.g. C++), then it would identify itself with an accordingly different
impl_name.
authoring_version is the version of the authorship interface. An authoring node
will not attempt to author blocks unless this is equal to its native runtime.
spec_version: u32Version of the runtime specification. A full-node will not attempt to use its native
runtime in substitute for the on-chain Wasm runtime unless all of spec_name,
spec_version and authoring_version are the same between Wasm and native.
impl_version: u32Version of the implementation of the specification. Nodes are free to ignore this; it
serves only as an indication that the code is different; as long as the other two versions
are the same then while the actual code may be different, it is nonetheless required to
do the same thing.
Non-consensus-breaking optimizations are about the only changes that could be made which
would result in only the impl_version changing.
apis: Cow<'static, [([u8; 8], u32)]>List of supported API “features” along with their versions.
transaction_version: u32All existing dispatches are fully compatible when this number doesn’t change. If this
number changes, then spec_version must change, also.
This number must change when an existing dispatchable (module ID, dispatch ID) is changed, either through an alteration in its user-level semantics, a parameter added/removed/changed, a dispatchable being removed, a module being removed, or a dispatchable/module changing its index.
It need not change when a new module is added or when a dispatchable is added.
Implementations
impl RuntimeVersion[src]
pub fn can_call_with(&self, other: &RuntimeVersion) -> bool[src]
Check if this version matches other version for calling into runtime.
pub fn has_api_with<P>(&self, id: &[u8; 8], predicate: P) -> bool where
    P: Fn(u32) -> bool, [src]
P: Fn(u32) -> bool,
Check if the given api with api_id is implemented and the version passes the given
predicate.
Trait Implementations
impl Clone for RuntimeVersion[src]
pub fn clone(&self) -> RuntimeVersion[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Debug for RuntimeVersion[src]
impl Decode for RuntimeVersion[src]
pub fn decode<__CodecInputEdqy>(
    __codec_input_edqy: &mut __CodecInputEdqy
) -> Result<RuntimeVersion, Error> where
    __CodecInputEdqy: Input, [src]
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<RuntimeVersion, Error> where
__CodecInputEdqy: Input,
pub fn skip<I>(input: &mut I) -> Result<(), Error> where
    I: Input, [src]
I: Input,
pub fn encoded_fixed_size() -> Option<usize>[src]
impl Default for RuntimeVersion[src]
pub fn default() -> RuntimeVersion[src]
impl<'de> Deserialize<'de> for RuntimeVersion[src]
pub fn deserialize<__D>(
    __deserializer: __D
) -> Result<RuntimeVersion, <__D as Deserializer<'de>>::Error> where
    __D: Deserializer<'de>, [src]
__deserializer: __D
) -> Result<RuntimeVersion, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
impl Display for RuntimeVersion[src]
impl Encode for RuntimeVersion[src]
pub fn encode_to<__CodecOutputEdqy>(
    &self, 
    __codec_dest_edqy: &mut __CodecOutputEdqy
) where
    __CodecOutputEdqy: Output + ?Sized, [src]
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
) where
__CodecOutputEdqy: Output + ?Sized,
pub fn size_hint(&self) -> usize[src]
pub fn encode(&self) -> Vec<u8, Global>[src]
pub fn using_encoded<R, F>(&self, f: F) -> R where
    F: FnOnce(&[u8]) -> R, [src]
F: FnOnce(&[u8]) -> R,
pub fn encoded_size(&self) -> usize[src]
impl EncodeLike<RuntimeVersion> for RuntimeVersion[src]
impl Eq for RuntimeVersion[src]
impl From<OldRuntimeVersion> for RuntimeVersion[src]
pub fn from(x: OldRuntimeVersion) -> RuntimeVersion[src]
impl PartialEq<RuntimeVersion> for RuntimeVersion[src]
pub fn eq(&self, other: &RuntimeVersion) -> bool[src]
pub fn ne(&self, other: &RuntimeVersion) -> bool[src]
impl Serialize for RuntimeVersion[src]
pub fn serialize<__S>(
    &self, 
    __serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
    __S: Serializer, [src]
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
impl StructuralEq for RuntimeVersion[src]
impl StructuralPartialEq for RuntimeVersion[src]
Auto Trait Implementations
impl RefUnwindSafe for RuntimeVersion
impl Send for RuntimeVersion
impl Sync for RuntimeVersion
impl Unpin for RuntimeVersion
impl UnwindSafe for RuntimeVersion
Blanket Implementations
impl<T> Any for T where
    T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
    T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
    T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> CheckedConversion for T[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
    Self: TryFrom<T>, [src]
Self: TryFrom<T>,
pub fn checked_into<T>(self) -> Option<T> where
    Self: TryInto<T>, [src]
Self: TryInto<T>,
impl<T> Clear for T where
    T: Default + Eq + PartialEq<T>, [src]
T: Default + Eq + PartialEq<T>,
impl<S> Codec for S where
    S: Decode + Encode, [src]
S: Decode + Encode,
impl<T> DecodeAll for T where
    T: Decode, [src]
T: Decode,
impl<T> DecodeLimit for T where
    T: Decode, [src]
T: Decode,
pub fn decode_all_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>[src]
pub fn decode_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>[src]
impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, [src]
T: for<'de> Deserialize<'de>,
impl<T> DynClone for T where
    T: Clone, [src]
T: Clone,
pub fn __clone_box(&self, Private) -> *mut ()[src]
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
    T: Encode, [src]
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
    T: Encode, [src]
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
    T: Encode, [src]
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
    T: Encode, [src]
T: Encode,
impl<T> EncodeLike<Box<T, Global>> for T where
    T: Encode, [src]
T: Encode,
impl<'a, T> EncodeLike<Cow<'a, T>> for T where
    T: ToOwned + Encode, [src]
T: ToOwned + Encode,
impl<T> EncodeLike<Rc<T>> for T where
    T: Encode, [src]
T: Encode,
impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized, [src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
pub fn equivalent(&self, key: &K) -> bool[src]
impl<T> Erased for T[src]
impl<T> Error for T where
    T: 'static + Debug + Display + Send + Sync, [src]
T: 'static + Debug + Display + Send + Sync,
impl<T> From<T> for T[src]
impl<S> FullCodec for S where
    S: Decode + FullEncode, [src]
S: Decode + FullEncode,
impl<S> FullEncode for S where
    S: Encode + EncodeLike<S>, [src]
S: Encode + EncodeLike<S>,
impl<T> Instrument for T[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>[src]
pub fn in_current_span(self) -> Instrumented<Self>[src]
impl<T> Instrument for T[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>[src]
pub fn in_current_span(self) -> Instrumented<Self>[src]
impl<T, U> Into<U> for T where
    U: From<T>, [src]
U: From<T>,
impl<T, Outer> IsWrappedBy<Outer> for T where
    T: From<Outer>,
    Outer: AsRef<T> + AsMut<T> + From<T>, [src]
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
pub fn from_ref(outer: &Outer) -> &T[src]
Get a reference to the inner from the outer.
pub fn from_mut(outer: &mut Outer) -> &mut T[src]
Get a mutable reference to the inner from the outer.
impl<T> KeyedVec for T where
    T: Codec, [src]
T: Codec,
impl<T> MaybeDebug for T where
    T: Debug, [src]
T: Debug,
impl<T> MaybeDebug for T where
    T: Debug, [src]
T: Debug,
impl<T> MaybeDisplay for T where
    T: Display, [src]
T: Display,
impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe, [src]
T: RefUnwindSafe,
impl<T> MaybeSerialize for T where
    T: Serialize, [src]
T: Serialize,
impl<T> MaybeSerializeDeserialize for T where
    T: DeserializeOwned + Serialize, [src]
T: DeserializeOwned + Serialize,
impl<T> Member for T where
    T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone, [src]
T: 'static + Send + Sync + Debug + Eq + PartialEq<T> + Clone,
impl<T> Pointable for T[src]
pub const ALIGN: usize[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T[src]
pub unsafe fn drop(ptr: usize)[src]
impl<T> Same<T> for T[src]
type Output = T
Should always be Self
impl<T> SaturatedConversion for T[src]
pub fn saturated_from<T>(t: T) -> Self where
    Self: UniqueSaturatedFrom<T>, [src]
Self: UniqueSaturatedFrom<T>,
pub fn saturated_into<T>(self) -> T where
    Self: UniqueSaturatedInto<T>, [src]
Self: UniqueSaturatedInto<T>,
impl<T> ToOwned for T where
    T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T> ToString for T where
    T: Display + ?Sized, [src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
    U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, [src]
T: UncheckedFrom<S>,
pub fn unchecked_into(self) -> T[src]
impl<T, S> UniqueSaturatedInto<T> for S where
    T: Bounded,
    S: TryInto<T>, [src]
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T[src]
impl<V, T> VZip<V> for T where
    V: MultiLane<T>, [src]
V: MultiLane<T>,
impl<T> WithSubscriber for T[src]
pub fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
    S: Into<Dispatch>, [src]
S: Into<Dispatch>,