Skip to content

Commit

Permalink
feat(server): implement average_difficulty function
Browse files Browse the repository at this point in the history
  • Loading branch information
shaojunda committed Jun 3, 2019
1 parent ab142a3 commit 5b40f05
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions server/app/models/statistic_info.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class StatisticInfo
def initialize(difficulty_interval: nil, block_time_interval: nil, statistical_interval: nil)
@difficulty_interval = difficulty_interval.presence || ENV["STATISTICAL_INTERVAL"]
@block_time_interval = block_time_interval.presence || ENV["STATISTICAL_INTERVAL"]
@statistical_interval = statistical_interval.presence || ENV["STATISTICAL_INTERVAL"]
def initialize(difficulty_interval: nil, block_time_interval: nil, hash_rate_statistical_interval: nil)
@difficulty_interval = difficulty_interval.presence || ENV["DIFFICULTY_INTERVAL"]
@block_time_interval = block_time_interval.presence || ENV["BLOCK_TIME_INTERVAL"]
@hash_rate_statistical_interval = hash_rate_statistical_interval.presence || ENV["HASH_RATE_STATISTICAL_INTERVAL"]
end

def id
Expand All @@ -14,7 +14,10 @@ def tip_block_number
end

def average_difficulty
blocks = Block.recent.take(difficulty_interval)
return if blocks.empty?

blocks.map { |block| block.difficulty.hex }.reduce(0, &:+) / blocks.size
end

def average_block_time
Expand All @@ -27,5 +30,5 @@ def hash_rate

private

attr_reader :difficulty_interval, :block_time_interval, :statistical_interval
attr_reader :difficulty_interval, :block_time_interval, :hash_rate_statistical_interval
end

0 comments on commit 5b40f05

Please sign in to comment.