class Lapidar::Assessment
Public Class Methods
first?(block)
click to toggle source
# File lib/lapidar/assessment.rb, line 15 def self.first?(block) block.number.zero? end
genesis?(block)
click to toggle source
# File lib/lapidar/assessment.rb, line 11 def self.genesis?(block) first?(block) && valid_link?(nil, block) end
hash(previous_hash, nonce, data)
click to toggle source
# File lib/lapidar/assessment.rb, line 19 def self.hash(previous_hash, nonce, data) Digest::SHA256.hexdigest("#{previous_hash}-#{nonce}-#{data}") end
meets_difficulty?(block)
click to toggle source
# File lib/lapidar/assessment.rb, line 7 def self.meets_difficulty?(block) block.hash.start_with?("0000") end
valid_link?(previous_block, block)
click to toggle source
# File lib/lapidar/assessment.rb, line 3 def self.valid_link?(previous_block, block) hash(previous_block&.hash, block.nonce, block.data) == block.hash end