diff options
Diffstat (limited to 'src/util.h')
-rw-r--r-- | src/util.h | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/src/util.h b/src/util.h deleted file mode 100644 index 42c0135..0000000 --- a/src/util.h +++ /dev/null @@ -1,119 +0,0 @@ -#ifndef _HOTSTUFF_UTIL_H -#define _HOTSTUFF_UTIL_H - -#include "salticidae/util.h" - -namespace hotstuff { - -class Logger: public salticidae::Logger { - public: - using salticidae::Logger::Logger; -}; - -extern Logger logger; - -#ifdef HOTSTUFF_DEBUG_LOG -#define HOTSTUFF_NORMAL_LOG -#define HOTSTUFF_ENABLE_LOG_DEBUG -#endif - -#ifdef HOTSTUFF_NORMAL_LOG -#define HOTSTUFF_ENABLE_LOG_INFO -#define HOTSTUFF_ENABLE_LOG_WARN -#endif - -#ifdef HOTSTUFF_ENABLE_LOG_INFO -#define HOTSTUFF_LOG_INFO(...) hotstuff::logger.info(__VA_ARGS__) -#else -#define HOTSTUFF_LOG_INFO(...) ((void)0) -#endif - -#ifdef HOTSTUFF_ENABLE_LOG_DEBUG -#define HOTSTUFF_LOG_DEBUG(...) hotstuff::logger.debug(__VA_ARGS__) -#else -#define HOTSTUFF_LOG_DEBUG(...) ((void)0) -#endif - -#ifdef HOTSTUFF_ENABLE_LOG_WARN -#define HOTSTUFF_LOG_WARN(...) hotstuff::logger.warning(__VA_ARGS__) -#else -#define HOTSTUFF_LOG_WARN(...) ((void)0) -#endif - -#define HOTSTUFF_LOG_ERROR(...) hotstuff::logger.error(__VA_ARGS__) - -#ifdef HOTSTUFF_ENABLE_BLK_PROFILE -class BlockProfiler { - enum BlockState { - BLK_SEEN, - BLK_FETCH, - BLK_CC - }; - - struct BlockProfile { - bool is_local; /* is the block proposed by the replica itself? */ - BlockState state; - double hash_seen_time; /* the first time to see block hash */ - double full_fetch_time; /* the first time to get full block content */ - double cc_time; /* the time when it receives cc */ - double commit_time; /* the time when it commits */ - }; - - std::unordered_map<const uint256, BlockProfile> blocks; - ElapsedTime timer; - - public: - BlockProfiler() { timer.start(); } - - auto rec_blk(const uint256 &blk_hash, bool is_local) { - auto it = blocks.find(blk_hash); - assert(it == blocks.end()); - timer.stop(false); - return blocks.insert(std::make_pair(blk_hash, - BlockProfile{is_local, BLK_SEEN, timer.elapsed_sec, 0, 0, 0})).first; - } - - void get_blk(const uint256 &blk_hash) { - auto it = blocks.find(blk_hash); - if (it == blocks.end()) - it = rec_blk(blk_hash, false); - BlockProfile &blkp = it->second; - assert(blkp.state == BLK_SEEN); - timer.stop(false); - blkp.full_fetch_time = timer.elapsed_sec; - blkp.state = BLK_FETCH; - } - - void have_cc(const uint256 &blk_hash) { - auto it = blocks.find(blk_hash); - assert(it != blocks.end()); - BlockProfile &blkp = it->second; - assert(blkp.state == BLK_FETCH); - timer.stop(false); - blkp.polling_start_time = timer.elapsed_sec; - blkp.state = BLK_CC; - } - - const char *decide_blk(const uint256 &blk_hash) { - static char buff[1024]; - auto it = blocks.find(blk_hash); - assert(it != blocks.end()); - BlockProfile &blkp = it->second; - assert(blkp.state == BLK_CC); - timer.stop(false); - blkp.commit_time = timer.elapsed_sec; - snprintf(buff, sizeof buff, "(%d,%.4f,%.4f,%.4f,%.4f,%.4f)", - blkp.is_local, - blkp.hash_seen_time, blkp.full_fetch_time, - blkp.polling_start_time, blkp.polling_end_time, - blkp.commit_time); - blocks.erase(it); - return buff; - } -}; - -#endif - -} - -#endif |