Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • tuxmain/fix-change-owner-key
  • fix_picked_up_file_in_runtime_release
  • network/gtest-1000 protected
  • upgradable-multisig
  • runtime/gtest-1000
  • network/gdev-800 protected
  • cgeek/issue-297-cpu
  • gdev-800-tests
  • update-docker-compose-rpc-squid-names
  • fix-252
  • 1000i100-test
  • hugo/tmp-0.9.1
  • network/gdev-803 protected
  • hugo/endpoint-gossip
  • network/gdev-802 protected
  • hugo/distance-precompute
  • network/gdev-900 protected
  • tuxmain/anonymous-tx
  • debug/podman
  • gtest-1000-0.11.1 protected
  • gtest-1000-0.11.0 protected
  • gtest-1000 protected
  • gdev-900-0.10.1 protected
  • gdev-900-0.10.0 protected
  • gdev-900-0.9.2 protected
  • gdev-800-0.8.0 protected
  • gdev-900-0.9.1 protected
  • gdev-900-0.9.0 protected
  • gdev-803 protected
  • gdev-802 protected
  • runtime-801 protected
  • gdev-800 protected
  • runtime-800-bis protected
  • runtime-800 protected
  • runtime-800-backup protected
  • runtime-701 protected
  • runtime-700 protected
  • runtime-600 protected
  • runtime-500 protected
40 results

pallet_grandpa.rs

  • pallet_grandpa.rs 2.24 KiB
    // Copyright 2021 Axiom-Team
    //
    // This file is part of Duniter-v2S.
    //
    // Duniter-v2S is free software: you can redistribute it and/or modify
    // it under the terms of the GNU Affero General Public License as published by
    // the Free Software Foundation, version 3 of the License.
    //
    // Duniter-v2S is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    // GNU Affero General Public License for more details.
    //
    // You should have received a copy of the GNU Affero General Public License
    // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
    
    //! Manual weights for the GRANDPA Pallet in duniter runtimes
    //! This file was not auto-generated.
    
    use frame_support::{
        traits::Get,
        weights::{
            constants::{WEIGHT_REF_TIME_PER_MICROS, WEIGHT_REF_TIME_PER_NANOS},
            Weight,
        },
    };
    use scale_info::prelude::marker::PhantomData;
    
    /// Weight functions for `pallet_grandpa`.
    pub struct WeightInfo<T>(PhantomData<T>);
    impl<T: frame_system::Config> pallet_grandpa::WeightInfo for WeightInfo<T> {
        fn report_equivocation(validator_count: u32, _p: u32) -> Weight {
            // we take the validator set count from the membership proof to
            // calculate the weight but we set a floor of 100 validators.
            let validator_count = validator_count.max(100) as u64;
    
            // checking membership proof
            (Weight::from_parts(WEIGHT_REF_TIME_PER_MICROS, 0) * 35)
                .saturating_add(Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS, 0) * 175)
                .saturating_mul(validator_count)
                .saturating_add(T::DbWeight::get().reads(5))
                // check equivocation proof
                .saturating_add(Weight::from_parts(WEIGHT_REF_TIME_PER_MICROS, 0) * 95)
                // report offence
                .saturating_add(Weight::from_parts(WEIGHT_REF_TIME_PER_MICROS, 0) * 110)
                .saturating_add(T::DbWeight::get().writes(3))
                // fetching set id -> session index mappings
                .saturating_add(T::DbWeight::get().reads(2))
        }
    
        fn note_stalled() -> Weight {
            (Weight::from_parts(WEIGHT_REF_TIME_PER_MICROS, 0) * 3)
                .saturating_add(T::DbWeight::get().writes(1))
        }
    }