def test_for_mining_block(): last_block = Block.genesis_block_generator() data = 'test-data' block = Block.mine_the_block(last_block, data) assert isinstance(block, Block) assert block.data == data assert block.last_hash == last_block.hash assert convert_hex_to_binary(block.hash)[0:block.difficulty] == '0' * block.difficulty
def test_for_mined_block_diffuculty_limit_at_1(): last_block = Block( time.time_ns(), 'test_last_hash', 'test_hash', 'test_data', 1, 0 ) time.sleep(MINE_RATE / SECS) mined_block = Block.mine_the_block(last_block, 'bar') assert mined_block.difficulty == 1
def block(last_block): return Block.mine_the_block(last_block, 'test_data')
def test_for_slowly_mined_blocks(): last_block = Block.mine_the_block(Block.genesis_block_generator(), 'foo') time.sleep(MINE_RATE / SECS) mined_block = Block.mine_the_block(last_block, 'bar') assert mined_block.difficulty == last_block.difficulty - 1
def test_for_quickly_mined_blocks(): last_block = Block.mine_the_block(Block.genesis_block_generator(), 'foo') mined_block = Block.mine_the_block(last_block, 'bar') assert mined_block.difficulty == last_block.difficulty + 1
def add_block(self, data): self.chain.append(Block.mine_the_block(self.chain[-1], data))