Skip to content
Snippets Groups Projects
Select Git revision
  • e5d270073a6f7aef1ad72b98ec8e9037faf2b64f
  • dev default protected
  • release/1.9.1 protected
  • pini-1.8-docker
  • pini-sync-onlypeers
  • duniter-v2s-issue-123-industrialize-releases
  • feature/build-aarch64-nodejs16
  • release/1.8 protected
  • pini-docker
  • ci_tags
  • fix/1448/1.8/txs_not_stored
  • feature/node-20
  • fix/1441/node_summary_with_storage
  • fix/1442/improve_bma_tx_history
  • feature/wotwizard-1.8
  • release/1.9 protected
  • 1.7 protected
  • feature/docker-set-latest protected
  • feature/fast-docker-build-1.8.4
  • fast-docker-build protected
  • feature/dump-distance
  • v1.8.7 protected
  • v1.8.7-rc4 protected
  • v1.8.7-rc3 protected
  • v1.8.7-rc2 protected
  • v1.8.7-rc1 protected
  • v1.8.6 protected
  • v1.7.23 protected
  • v1.8.5 protected
  • v1.8.4 protected
  • v1.8.3 protected
  • v1.8.2 protected
  • v1.8.1 protected
  • v1.8.0 protected
  • v1.8.0-rc1 protected
  • v1.8.0-beta5 protected
  • v1.8.0-beta4 protected
  • v1.8.0-beta3 protected
  • v1.8.0-beta2 protected
  • v1.8.0-beta protected
  • v1.7.21 protected
41 results

server.ts

Blame
  • service.rs 26.34 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/>.
    
    //! Service and ServiceFactory implementation. Specialized wrapper over substrate service.
    
    pub mod client;
    
    use self::client::{Client, ClientHandle, RuntimeApiCollection};
    use async_io::Timer;
    use common_runtime::Block;
    use futures::{Stream, StreamExt};
    use sc_client_api::client::BlockBackend;
    use sc_consensus_grandpa::SharedVoterState;
    use sc_consensus_manual_seal::{run_manual_seal, EngineCommand, ManualSealParams};
    pub use sc_executor::NativeElseWasmExecutor;
    use sc_network_common::sync::warp::WarpSyncParams;
    use sc_service::{error::Error as ServiceError, Configuration, PartialComponents, TaskManager};
    use sc_telemetry::{Telemetry, TelemetryWorker};
    use sp_core::H256;
    use sp_runtime::traits::BlakeTwo256;
    use std::{path::PathBuf, sync::Arc, time::Duration};
    
    type FullClient<RuntimeApi, Executor> =
        sc_service::TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>;
    type FullBackend = sc_service::TFullBackend<Block>;
    type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;
    
    #[cfg(feature = "gdev")]
    pub struct GDevExecutor;
    #[cfg(feature = "gdev")]
    impl sc_executor::NativeExecutionDispatch for GDevExecutor {
        /// Only enable the benchmarking host functions when we actually want to benchmark.
        #[cfg(feature = "runtime-benchmarks")]
        type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;
        /// Otherwise we only use the default Substrate host functions.
        #[cfg(not(feature = "runtime-benchmarks"))]
        type ExtendHostFunctions = ();
    
        fn dispatch(method: &str, data: &[u8]) -> Option<Vec<u8>> {
            gdev_runtime::api::dispatch(method, data)
        }
    
        fn native_version() -> sc_executor::NativeVersion {
            gdev_runtime::native_version()
        }
    }
    
    #[cfg(feature = "gtest")]
    pub struct GTestExecutor;
    #[cfg(feature = "gtest")]
    impl sc_executor::NativeExecutionDispatch for GTestExecutor {
        /// Only enable the benchmarking host functions when we actually want to benchmark.
        #[cfg(feature = "runtime-benchmarks")]
        type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions;
        /// Otherwise we only use the default Substrate host functions.
        #[cfg(not(feature = "runtime-benchmarks"))]
        type ExtendHostFunctions = ();