在 substrate 中,宝贝配置中的模棱两可处理系统和 KeyOwnerProof/Identification/ProofSystem 是什么?
In substrate, what is the equivocation handling system and KeyOwnerProof/Identification/ProofSystem in babe config?
// The proof of key ownership, used for validating equivocation reports.
/// The proof must include the session index and validator count of the
/// session at which the equivocation occurred.
type KeyOwnerProof: Parameter + GetSessionNumber + GetValidatorCount;
/// The identification of a key owner, used when reporting equivocations.
type KeyOwnerIdentification: Parameter;
/// A system for proving ownership of keys, i.e. that a given key was part
/// of a validator set, needed for validating equivocation reports.
type KeyOwnerProofSystem: KeyOwnerProofSystem<
(KeyTypeId, AuthorityId),
Proof = Self::KeyOwnerProof,
IdentificationTuple = Self::KeyOwnerIdentification,
>;
/// The equivocation handling subsystem, defines methods to report an
/// offence (after the equivocation has been validated) and for submitting a
/// transaction to report an equivocation (from an offchain context).
/// NOTE: when enabling equivocation handling (i.e. this type isn't set to
/// `()`) you must use this pallet's `ValidateUnsigned` in the runtime
/// definition.
type HandleEquivocation: HandleEquivocation<Self>;
这些类型是什么意思,它们有什么用?我想一个更好的问题是这些类型属于什么 equivocation reports
?
模棱两可的报告表明有人检测到 Babe 当局在同一高度建造了两个街区。所以,如果有人检测到一个 Babe 权威在同一高度建造了两个街区,它就会发出这样一个模棱两可的报告。这取决于如何处理它。例如,Polkadot 将削减违规权限。
// The proof of key ownership, used for validating equivocation reports.
/// The proof must include the session index and validator count of the
/// session at which the equivocation occurred.
type KeyOwnerProof: Parameter + GetSessionNumber + GetValidatorCount;
/// The identification of a key owner, used when reporting equivocations.
type KeyOwnerIdentification: Parameter;
/// A system for proving ownership of keys, i.e. that a given key was part
/// of a validator set, needed for validating equivocation reports.
type KeyOwnerProofSystem: KeyOwnerProofSystem<
(KeyTypeId, AuthorityId),
Proof = Self::KeyOwnerProof,
IdentificationTuple = Self::KeyOwnerIdentification,
>;
/// The equivocation handling subsystem, defines methods to report an
/// offence (after the equivocation has been validated) and for submitting a
/// transaction to report an equivocation (from an offchain context).
/// NOTE: when enabling equivocation handling (i.e. this type isn't set to
/// `()`) you must use this pallet's `ValidateUnsigned` in the runtime
/// definition.
type HandleEquivocation: HandleEquivocation<Self>;
这些类型是什么意思,它们有什么用?我想一个更好的问题是这些类型属于什么 equivocation reports
?
模棱两可的报告表明有人检测到 Babe 当局在同一高度建造了两个街区。所以,如果有人检测到一个 Babe 权威在同一高度建造了两个街区,它就会发出这样一个模棱两可的报告。这取决于如何处理它。例如,Polkadot 将削减违规权限。