-
Notifications
You must be signed in to change notification settings - Fork 47
feat: benchmarks #585
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: benchmarks #585
Conversation
d0e5609 to
69ad8e4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I have one concern, which may not be related to this PR. I believe the benchmarks might not currently work for the template. The dip-consumer template is currently using KiltVersionedSiblingProviderVerifier as ProofVerifier. The derive_verification_key_relationship function would return None for the call defined in the benchmark (frame_support::call::remark). As a result, the check_call_origin_info returns an error.
I would argue that the template should demonstrate how to benchmark the consumer pallet. In the pallet-dip-consumer pallet, the call is currently excluded based on feature guidance. So maybe adding a feature guided match arm in derive_verification_key_relationship is for the moment a good solution? If it is not important, ignore this comment.
| use pallet_did_lookup::linkable_account::LinkableAccountId; | ||
| use pallet_web3_names::web3_name::AsciiWeb3Name; | ||
| use parity_scale_codec::{Decode, Encode}; | ||
| use scale_info::TypeInfo; | ||
| pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; | ||
| pub use sp_runtime::{MultiAddress, Perbill, Permill}; | ||
|
|
||
| use cumulus_pallet_parachain_system::{ | ||
| register_validate_block, ParachainSetCode, RelayChainStateProof, RelayNumberStrictlyIncreases, | ||
| }; | ||
| use cumulus_primitives_core::CollationInfo; | ||
| use cumulus_primitives_timestamp::InherentDataProvider; | ||
| use did::{DidRawOrigin, EnsureDidOrigin}; | ||
| use frame_support::{ | ||
| construct_runtime, | ||
| dispatch::DispatchClass, | ||
| parameter_types, | ||
| traits::{ConstU32, ConstU64, ConstU8, Everything}, | ||
| weights::{ | ||
| constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND}, | ||
| IdentityFee, Weight, | ||
| }, | ||
| PalletId, | ||
| }; | ||
| use frame_system::{ | ||
| limits::{BlockLength, BlockWeights}, | ||
| ChainContext, EnsureRoot, | ||
| }; | ||
| use pallet_balances::AccountData; | ||
| use pallet_collator_selection::IdentityCollator; | ||
| use pallet_dip_provider::{traits::IdentityProvider, IdentityProviderOf}; | ||
| use pallet_session::{FindAccountFromAuthorIndex, PeriodicSessions}; | ||
| use pallet_transaction_payment::{CurrencyAdapter, FeeDetails, RuntimeDispatchInfo}; | ||
| use runtime_common::dip::merkle::{CompleteMerkleProof, DidMerkleProofOf, DidMerkleRootGenerator}; | ||
| use sp_api::impl_runtime_apis; | ||
| use sp_consensus_aura::SlotDuration; | ||
| use sp_core::{crypto::KeyTypeId, ConstBool, ConstU128, ConstU16, OpaqueMetadata}; | ||
| use sp_inherents::{CheckInherentsResult, InherentData}; | ||
| use sp_runtime::{ | ||
| create_runtime_str, generic, impl_opaque_keys, | ||
| traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, OpaqueKeys}, | ||
| transaction_validity::{TransactionSource, TransactionValidity}, | ||
| AccountId32, ApplyExtrinsicResult, MultiSignature, OpaqueExtrinsic, | ||
| }; | ||
| use sp_std::{prelude::*, time::Duration}; | ||
| use sp_version::RuntimeVersion; | ||
|
|
||
| #[cfg(any(feature = "std", test))] | ||
| pub use sp_runtime::BuildStorage; | ||
|
|
||
| #[cfg(feature = "std")] | ||
| use sp_version::NativeVersion; | ||
|
|
||
| mod dip; | ||
| pub use crate::dip::*; | ||
|
|
||
| pub type AccountId = AccountId32; | ||
| pub type Address = MultiAddress<AccountId, ()>; | ||
| pub type Balance = u128; | ||
| pub type Block = generic::Block<Header, UncheckedExtrinsic>; | ||
| pub type BlockNumber = u32; | ||
| pub type DidIdentifier = AccountId; | ||
| pub type Hash = sp_core::H256; | ||
| pub type Header = generic::Header<BlockNumber, BlakeTwo256>; | ||
| pub type Nonce = u32; | ||
| pub type Signature = MultiSignature; | ||
|
|
||
| pub type SignedExtra = ( | ||
| frame_system::CheckNonZeroSender<Runtime>, | ||
| frame_system::CheckSpecVersion<Runtime>, | ||
| frame_system::CheckTxVersion<Runtime>, | ||
| frame_system::CheckGenesis<Runtime>, | ||
| frame_system::CheckEra<Runtime>, | ||
| frame_system::CheckNonce<Runtime>, | ||
| frame_system::CheckWeight<Runtime>, | ||
| pallet_transaction_payment::ChargeTransactionPayment<Runtime>, | ||
| ); | ||
| pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, RuntimeCall, SignedExtra>; | ||
| pub type Executive = frame_executive::Executive<Runtime, Block, ChainContext<Runtime>, Runtime, AllPalletsWithSystem>; | ||
| pub type NodeBlock = generic::Block<Header, OpaqueExtrinsic>; | ||
| pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>; | ||
|
|
||
| pub const MILLISECS_PER_BLOCK: u64 = 12000; | ||
| pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); | ||
| pub const HOURS: BlockNumber = MINUTES * 60; | ||
|
|
||
| pub const UNIT: Balance = 1_000_000_000_000; | ||
| pub const MILLIUNIT: Balance = UNIT / 1_000; | ||
|
|
||
| construct_runtime!( | ||
| pub enum Runtime | ||
| { | ||
| // System | ||
| System: frame_system = 0, | ||
| ParachainSystem: cumulus_pallet_parachain_system = 1, | ||
| Timestamp: pallet_timestamp = 2, | ||
| ParachainInfo: parachain_info = 3, | ||
| Sudo: pallet_sudo = 4, | ||
| Utility: pallet_utility = 5, | ||
|
|
||
| // Money | ||
| Balances: pallet_balances = 10, | ||
| TransactionPayment: pallet_transaction_payment = 11, | ||
|
|
||
| // Collators | ||
| Authorship: pallet_authorship = 20, | ||
| CollatorSelection: pallet_collator_selection = 21, | ||
| Session: pallet_session = 22, | ||
| Aura: pallet_aura = 23, | ||
| AuraExt: cumulus_pallet_aura_ext = 24, | ||
|
|
||
| // DID | ||
| Did: did = 30, | ||
| DidLookup: pallet_did_lookup = 31, | ||
| Web3Names: pallet_web3_names = 32, | ||
|
|
||
| // DIP | ||
| DepositStorage: pallet_deposit_storage = 40, | ||
| DipProvider: pallet_dip_provider = 41, | ||
| } | ||
| ); | ||
|
|
||
| #[sp_version::runtime_version] | ||
| pub const VERSION: RuntimeVersion = RuntimeVersion { | ||
| spec_name: create_runtime_str!("dip-provider-runtime-template"), | ||
| impl_name: create_runtime_str!("dip-provider-runtime-template"), | ||
| authoring_version: 1, | ||
| spec_version: 11100, | ||
| impl_version: 0, | ||
| apis: RUNTIME_API_VERSIONS, | ||
| transaction_version: 1, | ||
| state_version: 1, | ||
| }; | ||
|
|
||
| #[cfg(feature = "std")] | ||
| pub fn native_version() -> NativeVersion { | ||
| NativeVersion { | ||
| runtime_version: VERSION, | ||
| can_author_with: Default::default(), | ||
| } | ||
| } | ||
|
|
||
| struct CheckInherents; | ||
|
|
||
| impl cumulus_pallet_parachain_system::CheckInherents<Block> for CheckInherents { | ||
| fn check_inherents(block: &Block, relay_state_proof: &RelayChainStateProof) -> CheckInherentsResult { | ||
| let relay_chain_slot = relay_state_proof | ||
| .read_slot() | ||
| .expect("Could not read the relay chain slot from the proof"); | ||
|
|
||
| let inherent_data = | ||
| InherentDataProvider::from_relay_chain_slot_and_duration(relay_chain_slot, Duration::from_secs(6)) | ||
| .create_inherent_data() | ||
| .expect("Could not create the timestamp inherent data"); | ||
|
|
||
| inherent_data.check_extrinsics(block) | ||
| } | ||
| } | ||
|
|
||
| register_validate_block! { | ||
| Runtime = Runtime, | ||
| BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::<Runtime, Executive>, | ||
| CheckInherents = CheckInherents, | ||
| } | ||
|
|
||
| // Same as official KILT prefix. | ||
| pub const SS58_PREFIX: u16 = 38; | ||
| const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); | ||
| const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); | ||
| const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( | ||
| WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), | ||
| cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, | ||
| ); | ||
|
|
||
| parameter_types! { | ||
| pub const Version: RuntimeVersion = VERSION; | ||
| pub RuntimeBlockLength: BlockLength = | ||
| BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); | ||
| pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() | ||
| .base_block(BlockExecutionWeight::get()) | ||
| .for_class(DispatchClass::all(), |weights| { | ||
| weights.base_extrinsic = ExtrinsicBaseWeight::get(); | ||
| }) | ||
| .for_class(DispatchClass::Normal, |weights| { | ||
| weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); | ||
| }) | ||
| .for_class(DispatchClass::Operational, |weights| { | ||
| weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); | ||
| weights.reserved = Some( | ||
| MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT | ||
| ); | ||
| }) | ||
| .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) | ||
| .build_or_panic(); | ||
| } | ||
|
|
||
| impl frame_system::Config for Runtime { | ||
| type AccountData = AccountData<Balance>; | ||
| type AccountId = AccountId; | ||
| type BaseCallFilter = Everything; | ||
| type BlockHashCount = ConstU32<256>; | ||
| type BlockLength = RuntimeBlockLength; | ||
| type Block = Block; | ||
| type BlockWeights = RuntimeBlockWeights; | ||
| type DbWeight = RocksDbWeight; | ||
| type Hash = Hash; | ||
| type Hashing = BlakeTwo256; | ||
| type Lookup = AccountIdLookup<AccountId, ()>; | ||
| type MaxConsumers = ConstU32<16>; | ||
| type Nonce = u32; | ||
| type OnKilledAccount = (); | ||
| type OnNewAccount = (); | ||
| type OnSetCode = ParachainSetCode<Self>; | ||
| type PalletInfo = PalletInfo; | ||
| type RuntimeCall = RuntimeCall; | ||
| type RuntimeEvent = RuntimeEvent; | ||
| type RuntimeOrigin = RuntimeOrigin; | ||
| type SS58Prefix = ConstU16<SS58_PREFIX>; | ||
| type SystemWeightInfo = (); | ||
| type Version = Version; | ||
| } | ||
|
|
||
| impl cumulus_pallet_parachain_system::Config for Runtime { | ||
| type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; | ||
| type DmpMessageHandler = (); | ||
| type OnSystemEvent = (); | ||
| type OutboundXcmpMessageSource = (); | ||
| type ReservedDmpWeight = (); | ||
| type ReservedXcmpWeight = (); | ||
| type RuntimeEvent = RuntimeEvent; | ||
| type SelfParaId = ParachainInfo; | ||
| type XcmpMessageHandler = (); | ||
| } | ||
|
|
||
| impl pallet_timestamp::Config for Runtime { | ||
| type MinimumPeriod = ConstU64<{ MILLISECS_PER_BLOCK / 2 }>; | ||
| type Moment = u64; | ||
| type OnTimestampSet = Aura; | ||
| type WeightInfo = (); | ||
| } | ||
|
|
||
| impl parachain_info::Config for Runtime {} | ||
|
|
||
| impl pallet_sudo::Config for Runtime { | ||
| type RuntimeCall = RuntimeCall; | ||
| type RuntimeEvent = RuntimeEvent; | ||
| type WeightInfo = (); | ||
| } | ||
|
|
||
| impl pallet_utility::Config for Runtime { | ||
| type PalletsOrigin = OriginCaller; | ||
| type RuntimeCall = RuntimeCall; | ||
| type RuntimeEvent = RuntimeEvent; | ||
| type WeightInfo = (); | ||
| } | ||
|
|
||
| pub const EXISTENTIAL_DEPOSIT: Balance = MILLIUNIT; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps I made a mistake. I compiled the branch using: cargo build --features runtime-benchmarks.
When I run: ./target/debug/dip-provider-node-template -h, the benchmark command is not appearing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mhh, I might have missed some dependency when the benchmark feature is enabled. I will investigate that
Yes, you are correct. I feel this PR needs some further polishing. The feature in the pallet is for now good enough, since the call never needs to be included in the computed weight. As for the benchmarks, I will probably add a feature flag that returns true if the verifier is being called upon benchmarks. We would have caught this issue if the benchmarking command would actually work for the templates. But since that is not the case, the tests are not run for that. Fixing the benchmarking command first will highlight this issue, which can then be fixed accordingly. |
Feature branch for everything DIP. It will collect other PRs until we are happy with the features, and will add the DIP to some of our runtimes and merge this into `develop`. ## WIP Checklist for the open tasks for v1 - [x] Basic structure -> #489 - [x] Merkleization of DID Documents -> #492 - [x] `RuntimeCall` verification logic -> #502 - [x] DID signature verification -> #516 - [x] Add support for linked accounts and web3name -> #525 - [x] Configurable origin for `commit_identity` -> #526 - [x] Proper fee management -> #528 - [x] Update to Polkadot 0.9.43 -> c18a6ce - [x] Replace XCM with state proofs -> #543 - [x] Add support for relaychain consumer -> #553 (part of #543) - [x] Proper error handling -> #572 - [x] Add support for versioning -> #573 - [x] Take deposits for identity commitments -> #574 - [x] Expose common definitions usable by consumers -> #577 - [x] Change ensure_signed! to configurable origin also for the `dispatch_as` function -> #577 - [x] Proper benchmarking and weights -> #585 - [x] Comments and docs -> #584 - [x] Revert Dockerfile changes in #587 - [x] [OPTIONAL] Add support for Zombienet -> #587 - [x] [OPTIONAL] Add chain spec loading from file for template runtimes -> #587 - [x] Big, final review -> #494 (review) - [x] Improvements n.1 PR -> #591 - [x] Improvements n.2 PR -> #592 - [x] Add to Peregrine runtime -> #594 - [ ] Deploy on Peregrine - [ ] Unit tests - [ ] Add to Spiritnet runtime - [ ] Deploy on Spiritnet - [ ] [OPTIONAL] Move DIP-related stuff into its own repo --------- Co-authored-by: Adel Golghalyani <[email protected]> Co-authored-by: Chris Chinchilla <[email protected]> Co-authored-by: Albrecht <[email protected]>
Feature branch for everything DIP. It will collect other PRs until we are happy with the features, and will add the DIP to some of our runtimes and merge this into `develop`. ## WIP Checklist for the open tasks for v1 - [x] Basic structure -> KILTprotocol/kilt-node#489 - [x] Merkleization of DID Documents -> KILTprotocol/kilt-node#492 - [x] `RuntimeCall` verification logic -> KILTprotocol/kilt-node#502 - [x] DID signature verification -> KILTprotocol/kilt-node#516 - [x] Add support for linked accounts and web3name -> KILTprotocol/kilt-node#525 - [x] Configurable origin for `commit_identity` -> KILTprotocol/kilt-node#526 - [x] Proper fee management -> KILTprotocol/kilt-node#528 - [x] Update to Polkadot 0.9.43 -> KILTprotocol/kilt-node@c18a6ce - [x] Replace XCM with state proofs -> KILTprotocol/kilt-node#543 - [x] Add support for relaychain consumer -> KILTprotocol/kilt-node#553 (part of KILTprotocol/kilt-node#543) - [x] Proper error handling -> KILTprotocol/kilt-node#572 - [x] Add support for versioning -> KILTprotocol/kilt-node#573 - [x] Take deposits for identity commitments -> KILTprotocol/kilt-node#574 - [x] Expose common definitions usable by consumers -> KILTprotocol/kilt-node#577 - [x] Change ensure_signed! to configurable origin also for the `dispatch_as` function -> KILTprotocol/kilt-node#577 - [x] Proper benchmarking and weights -> KILTprotocol/kilt-node#585 - [x] Comments and docs -> KILTprotocol/kilt-node#584 - [x] Revert Dockerfile changes in KILTprotocol/kilt-node#587 - [x] [OPTIONAL] Add support for Zombienet -> KILTprotocol/kilt-node#587 - [x] [OPTIONAL] Add chain spec loading from file for template runtimes -> KILTprotocol/kilt-node#587 - [x] Big, final review -> KILTprotocol/kilt-node#494 (review) - [x] Improvements n.1 PR -> KILTprotocol/kilt-node#591 - [x] Improvements n.2 PR -> KILTprotocol/kilt-node#592 - [x] Add to Peregrine runtime -> KILTprotocol/kilt-node#594 - [ ] Deploy on Peregrine - [ ] Unit tests - [ ] Add to Spiritnet runtime - [ ] Deploy on Spiritnet - [ ] [OPTIONAL] Move DIP-related stuff into its own repo --------- Co-authored-by: Adel Golghalyani <[email protected]> Co-authored-by: Chris Chinchilla <[email protected]> Co-authored-by: Albrecht <[email protected]>
Feature branch for everything DIP. It will collect other PRs until we are happy with the features, and will add the DIP to some of our runtimes and merge this into `develop`. ## WIP Checklist for the open tasks for v1 - [x] Basic structure -> #489 - [x] Merkleization of DID Documents -> #492 - [x] `RuntimeCall` verification logic -> #502 - [x] DID signature verification -> #516 - [x] Add support for linked accounts and web3name -> #525 - [x] Configurable origin for `commit_identity` -> #526 - [x] Proper fee management -> #528 - [x] Update to Polkadot 0.9.43 -> c18a6ce - [x] Replace XCM with state proofs -> #543 - [x] Add support for relaychain consumer -> #553 (part of #543) - [x] Proper error handling -> #572 - [x] Add support for versioning -> #573 - [x] Take deposits for identity commitments -> #574 - [x] Expose common definitions usable by consumers -> #577 - [x] Change ensure_signed! to configurable origin also for the `dispatch_as` function -> #577 - [x] Proper benchmarking and weights -> #585 - [x] Comments and docs -> #584 - [x] Revert Dockerfile changes in #587 - [x] [OPTIONAL] Add support for Zombienet -> #587 - [x] [OPTIONAL] Add chain spec loading from file for template runtimes -> #587 - [x] Big, final review -> #494 (review) - [x] Improvements n.1 PR -> #591 - [x] Improvements n.2 PR -> #592 - [x] Add to Peregrine runtime -> #594 - [ ] Deploy on Peregrine - [ ] Unit tests - [ ] Add to Spiritnet runtime - [ ] Deploy on Spiritnet - [ ] [OPTIONAL] Move DIP-related stuff into its own repo --------- Co-authored-by: Adel Golghalyani <[email protected]> Co-authored-by: Chris Chinchilla <[email protected]> Co-authored-by: Albrecht <[email protected]>
Feature branch for everything DIP. It will collect other PRs until we are happy with the features, and will add the DIP to some of our runtimes and merge this into `develop`. ## WIP Checklist for the open tasks for v1 - [x] Basic structure -> #489 - [x] Merkleization of DID Documents -> #492 - [x] `RuntimeCall` verification logic -> #502 - [x] DID signature verification -> #516 - [x] Add support for linked accounts and web3name -> #525 - [x] Configurable origin for `commit_identity` -> #526 - [x] Proper fee management -> #528 - [x] Update to Polkadot 0.9.43 -> c18a6ce - [x] Replace XCM with state proofs -> #543 - [x] Add support for relaychain consumer -> #553 (part of #543) - [x] Proper error handling -> #572 - [x] Add support for versioning -> #573 - [x] Take deposits for identity commitments -> #574 - [x] Expose common definitions usable by consumers -> #577 - [x] Change ensure_signed! to configurable origin also for the `dispatch_as` function -> #577 - [x] Proper benchmarking and weights -> #585 - [x] Comments and docs -> #584 - [x] Revert Dockerfile changes in #587 - [x] [OPTIONAL] Add support for Zombienet -> #587 - [x] [OPTIONAL] Add chain spec loading from file for template runtimes -> #587 - [x] Big, final review -> #494 (review) - [x] Improvements n.1 PR -> #591 - [x] Improvements n.2 PR -> #592 - [x] Add to Peregrine runtime -> #594 - [ ] Deploy on Peregrine - [ ] Unit tests - [ ] Add to Spiritnet runtime - [ ] Deploy on Spiritnet - [ ] [OPTIONAL] Move DIP-related stuff into its own repo --------- Co-authored-by: Adel Golghalyani <[email protected]> Co-authored-by: Chris Chinchilla <[email protected]> Co-authored-by: Albrecht <[email protected]>
* moved the `deposit_event(Event::AttestationRemoved)` to the
`remove_attestation` so that the event shall never be forgotten to be
deposited.
* restructured Attestation event
* added authorized_by to revoked and removed, added ctype
* test attestation events
* removed unused `DepositReclaimed` events
* deposit `W3nReleased` event when governance bans an already used w3n
<details>
<summary>Peregrine Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
<details>
<summary>Spiritnet Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
- [x] I have verified that the code works
- [ ] No panics! (checked arithmetic ops, no indexing `array[3]` use
`get(3)`, ...)
- [x] I have verified that the code is easy to understand
- [ ] If not, I have left a well-balanced amount of inline comments
- [x] I have [left the code in a better
state](https://deviq.com/principles/boy-scout-rule)
- [x] I have documented the changes (where applicable)
* Either PR or Ticket to update [the
Docs](https://github.com/KILTprotocol/docs)
* Link the PR/Ticket here
* moved the `deposit_event(Event::AttestationRemoved)` to the
`remove_attestation` so that the event shall never be forgotten to be
deposited.
* restructured Attestation event
* added authorized_by to revoked and removed, added ctype
* test attestation events
* removed unused `DepositReclaimed` events
* deposit `W3nReleased` event when governance bans an already used w3n
<details>
<summary>Peregrine Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
<details>
<summary>Spiritnet Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
- [x] I have verified that the code works
- [ ] No panics! (checked arithmetic ops, no indexing `array[3]` use
`get(3)`, ...)
- [x] I have verified that the code is easy to understand
- [ ] If not, I have left a well-balanced amount of inline comments
- [x] I have [left the code in a better
state](https://deviq.com/principles/boy-scout-rule)
- [x] I have documented the changes (where applicable)
* Either PR or Ticket to update [the
Docs](https://github.com/KILTprotocol/docs)
* Link the PR/Ticket here
* moved the `deposit_event(Event::AttestationRemoved)` to the
`remove_attestation` so that the event shall never be forgotten to be
deposited.
* restructured Attestation event
* added authorized_by to revoked and removed, added ctype
* test attestation events
* removed unused `DepositReclaimed` events
* deposit `W3nReleased` event when governance bans an already used w3n
<details>
<summary>Peregrine Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
<details>
<summary>Spiritnet Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
- [x] I have verified that the code works
- [ ] No panics! (checked arithmetic ops, no indexing `array[3]` use
`get(3)`, ...)
- [x] I have verified that the code is easy to understand
- [ ] If not, I have left a well-balanced amount of inline comments
- [x] I have [left the code in a better
state](https://deviq.com/principles/boy-scout-rule)
- [x] I have documented the changes (where applicable)
* Either PR or Ticket to update [the
Docs](https://github.com/KILTprotocol/docs)
* Link the PR/Ticket here
* moved the `deposit_event(Event::AttestationRemoved)` to the
`remove_attestation` so that the event shall never be forgotten to be
deposited.
* restructured Attestation event
* added authorized_by to revoked and removed, added ctype
* test attestation events
* removed unused `DepositReclaimed` events
* deposit `W3nReleased` event when governance bans an already used w3n
<details>
<summary>Peregrine Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
<details>
<summary>Spiritnet Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
- [x] I have verified that the code works
- [ ] No panics! (checked arithmetic ops, no indexing `array[3]` use
`get(3)`, ...)
- [x] I have verified that the code is easy to understand
- [ ] If not, I have left a well-balanced amount of inline comments
- [x] I have [left the code in a better
state](https://deviq.com/principles/boy-scout-rule)
- [x] I have documented the changes (where applicable)
* Either PR or Ticket to update [the
Docs](https://github.com/KILTprotocol/docs)
* Link the PR/Ticket here
* moved the `deposit_event(Event::AttestationRemoved)` to the
`remove_attestation` so that the event shall never be forgotten to be
deposited.
* restructured Attestation event
* added authorized_by to revoked and removed, added ctype
* test attestation events
* removed unused `DepositReclaimed` events
* deposit `W3nReleased` event when governance bans an already used w3n
<details>
<summary>Peregrine Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
<details>
<summary>Spiritnet Diff</summary>
```
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 62: Attestation -> 4 change(s)
- events changes:
[≠] 0: AttestationCreated ( : AttesterOf<T>, : ClaimHashOf<T>, : CtypeHashOf<T>, : Option<AuthorizationIdOf<T>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "attester"))]), Changed(1, [Name(StringChange("", "claim_hash"))]), Changed(2, [Name(StringChange("", "ctype_hash"))]), Changed(3, [Name(StringChange("", "authorization"))])] })]
[≠] 1: AttestationRevoked ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[≠] 2: AttestationRemoved ( : AttesterOf<T>, : ClaimHashOf<T>, ) )
[Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "authorized_by")), Ty(StringChange("AttesterOf<T>", "AuthorizedByOf<T>"))]), Changed(1, [Name(StringChange("", "attester")), Ty(StringChange("ClaimHashOf<T>", "AttesterOf<T>"))]), Added(2, ArgDesc { name: "claim_hash", ty: "ClaimHashOf<T>" })] })]
[-] "DepositReclaimed"
[≠] pallet 63: Delegation -> 1 change(s)
- events changes:
[-] "DepositReclaimed"
SUMMARY:
- Compatible.......................: true
- Require transaction_version bump.: false
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
```
</details>
- [x] I have verified that the code works
- [ ] No panics! (checked arithmetic ops, no indexing `array[3]` use
`get(3)`, ...)
- [x] I have verified that the code is easy to understand
- [ ] If not, I have left a well-balanced amount of inline comments
- [x] I have [left the code in a better
state](https://deviq.com/principles/boy-scout-rule)
- [x] I have documented the changes (where applicable)
* Either PR or Ticket to update [the
Docs](https://github.com/KILTprotocol/docs)
* Link the PR/Ticket here
Feature branch for everything DIP. It will collect other PRs until we are happy with the features, and will add the DIP to some of our runtimes and merge this into `develop`. ## WIP Checklist for the open tasks for v1 - [x] Basic structure -> KILTprotocol/kilt-node#489 - [x] Merkleization of DID Documents -> KILTprotocol/kilt-node#492 - [x] `RuntimeCall` verification logic -> KILTprotocol/kilt-node#502 - [x] DID signature verification -> KILTprotocol/kilt-node#516 - [x] Add support for linked accounts and web3name -> KILTprotocol/kilt-node#525 - [x] Configurable origin for `commit_identity` -> KILTprotocol/kilt-node#526 - [x] Proper fee management -> KILTprotocol/kilt-node#528 - [x] Update to Polkadot 0.9.43 -> KILTprotocol/kilt-node@c18a6ce - [x] Replace XCM with state proofs -> KILTprotocol/kilt-node#543 - [x] Add support for relaychain consumer -> KILTprotocol/kilt-node#553 (part of KILTprotocol/kilt-node#543) - [x] Proper error handling -> KILTprotocol/kilt-node#572 - [x] Add support for versioning -> KILTprotocol/kilt-node#573 - [x] Take deposits for identity commitments -> KILTprotocol/kilt-node#574 - [x] Expose common definitions usable by consumers -> KILTprotocol/kilt-node#577 - [x] Change ensure_signed! to configurable origin also for the `dispatch_as` function -> KILTprotocol/kilt-node#577 - [x] Proper benchmarking and weights -> KILTprotocol/kilt-node#585 - [x] Comments and docs -> KILTprotocol/kilt-node#584 - [x] Revert Dockerfile changes in KILTprotocol/kilt-node#587 - [x] [OPTIONAL] Add support for Zombienet -> KILTprotocol/kilt-node#587 - [x] [OPTIONAL] Add chain spec loading from file for template runtimes -> KILTprotocol/kilt-node#587 - [x] Big, final review -> KILTprotocol/kilt-node#494 (review) - [x] Improvements n.1 PR -> KILTprotocol/kilt-node#591 - [x] Improvements n.2 PR -> KILTprotocol/kilt-node#592 - [x] Add to Peregrine runtime -> KILTprotocol/kilt-node#594 - [ ] Deploy on Peregrine - [ ] Unit tests - [ ] Add to Spiritnet runtime - [ ] Deploy on Spiritnet - [ ] [OPTIONAL] Move DIP-related stuff into its own repo --------- Co-authored-by: Adel Golghalyani <[email protected]> Co-authored-by: Chris Chinchilla <[email protected]> Co-authored-by: Albrecht <[email protected]>
Feature branch for everything DIP. It will collect other PRs until we are happy with the features, and will add the DIP to some of our runtimes and merge this into `develop`. ## WIP Checklist for the open tasks for v1 - [x] Basic structure -> KILTprotocol/kilt-node#489 - [x] Merkleization of DID Documents -> KILTprotocol/kilt-node#492 - [x] `RuntimeCall` verification logic -> KILTprotocol/kilt-node#502 - [x] DID signature verification -> KILTprotocol/kilt-node#516 - [x] Add support for linked accounts and web3name -> KILTprotocol/kilt-node#525 - [x] Configurable origin for `commit_identity` -> KILTprotocol/kilt-node#526 - [x] Proper fee management -> KILTprotocol/kilt-node#528 - [x] Update to Polkadot 0.9.43 -> KILTprotocol/kilt-node@c18a6ce - [x] Replace XCM with state proofs -> KILTprotocol/kilt-node#543 - [x] Add support for relaychain consumer -> KILTprotocol/kilt-node#553 (part of KILTprotocol/kilt-node#543) - [x] Proper error handling -> KILTprotocol/kilt-node#572 - [x] Add support for versioning -> KILTprotocol/kilt-node#573 - [x] Take deposits for identity commitments -> KILTprotocol/kilt-node#574 - [x] Expose common definitions usable by consumers -> KILTprotocol/kilt-node#577 - [x] Change ensure_signed! to configurable origin also for the `dispatch_as` function -> KILTprotocol/kilt-node#577 - [x] Proper benchmarking and weights -> KILTprotocol/kilt-node#585 - [x] Comments and docs -> KILTprotocol/kilt-node#584 - [x] Revert Dockerfile changes in KILTprotocol/kilt-node#587 - [x] [OPTIONAL] Add support for Zombienet -> KILTprotocol/kilt-node#587 - [x] [OPTIONAL] Add chain spec loading from file for template runtimes -> KILTprotocol/kilt-node#587 - [x] Big, final review -> KILTprotocol/kilt-node#494 (review) - [x] Improvements n.1 PR -> KILTprotocol/kilt-node#591 - [x] Improvements n.2 PR -> KILTprotocol/kilt-node#592 - [x] Add to Peregrine runtime -> KILTprotocol/kilt-node#594 - [ ] Deploy on Peregrine - [ ] Unit tests - [ ] Add to Spiritnet runtime - [ ] Deploy on Spiritnet - [ ] [OPTIONAL] Move DIP-related stuff into its own repo --------- Co-authored-by: Adel Golghalyani <[email protected]> Co-authored-by: Chris Chinchilla <[email protected]> Co-authored-by: Albrecht <[email protected]>
fixes KILTProtocol/ticket#2551
This pull request introduces benchmark logic for the DIP templates. To calculate default weights, a dummy implementation of the pallets in the Peregrine runtime is defined. After the PR is approved, I will remove the dummy implementation.
Leftover tasks
VersionedSiblingParachainDipStateProoftype does not implement theWorstCasetrait, which is a blocker to use it in benchmarksDipProofVerifierlogic to allow any calls to be dispatched when being benchmarked