hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
consensus_init.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_CONSENSUS_INIT_HPP
7 #define IROHA_CONSENSUS_INIT_HPP
8 
9 #include <memory>
10 
16 #include "consensus/yac/timer.hpp"
21 #include "cryptography/keypair.hpp"
23 #include "network/block_loader.hpp"
26 
27 namespace iroha {
28  namespace consensus {
29  namespace yac {
30 
31  class YacInit {
32  public:
33  std::shared_ptr<YacGate> initConsensusGate(
34  Round initial_round,
35  // TODO 30.01.2019 lebdron: IR-262 Remove PeerQueryFactory
36  std::shared_ptr<ametsuchi::PeerQueryFactory> peer_query_factory,
37  boost::optional<shared_model::interface::types::PeerList>
38  alternative_peers,
39  std::shared_ptr<simulator::BlockCreator> block_creator,
40  std::shared_ptr<network::BlockLoader> block_loader,
41  const shared_model::crypto::Keypair &keypair,
42  std::shared_ptr<consensus::ConsensusResultCache> block_cache,
43  std::chrono::milliseconds vote_delay_milliseconds,
44  std::shared_ptr<
46  async_call,
47  ConsistencyModel consistency_model,
48  const logger::LoggerManagerTreePtr &consensus_log_manager,
49  std::chrono::milliseconds delay);
50 
51  std::shared_ptr<NetworkImpl> getConsensusNetwork() const;
52 
53  private:
54  auto createTimer(std::chrono::milliseconds delay_milliseconds);
55 
56  bool initialized_{false};
57  std::shared_ptr<NetworkImpl> consensus_network_;
58  };
59  } // namespace yac
60  } // namespace consensus
61 } // namespace iroha
62 
63 #endif // IROHA_CONSENSUS_INIT_HPP
Definition: consensus_init.hpp:31
Definition: keypair.hpp:19
Definition: block_query.hpp:15
std::shared_ptr< LoggerManagerTree > LoggerManagerTreePtr
Definition: logger_manager_fwd.hpp:14
ConsistencyModel
Definition: consistency_model.hpp:13
std::shared_ptr< YacGate > initConsensusGate(Round initial_round, std::shared_ptr< ametsuchi::PeerQueryFactory > peer_query_factory, boost::optional< shared_model::interface::types::PeerList > alternative_peers, std::shared_ptr< simulator::BlockCreator > block_creator, std::shared_ptr< network::BlockLoader > block_loader, const shared_model::crypto::Keypair &keypair, std::shared_ptr< consensus::ConsensusResultCache > block_cache, std::chrono::milliseconds vote_delay_milliseconds, std::shared_ptr< iroha::network::AsyncGrpcClient< google::protobuf::Empty >> async_call, ConsistencyModel consistency_model, const logger::LoggerManagerTreePtr &consensus_log_manager, std::chrono::milliseconds delay)
Definition: consensus_init.cpp:86
Definition: round.hpp:31
Definition: async_grpc_client.hpp:25
std::shared_ptr< NetworkImpl > getConsensusNetwork() const
Definition: consensus_init.cpp:72