Exemplo n.º 1
0
def test_slowly_mined_block():
    last_block = Block.mine_block(Block.genesis(), 'foo')
    time.sleep(
        MINE_RATE / SECONDS
    )  # Delay to ensure it is mined slower than mine_rate, takes argument in second
    mined_block = Block.mine_block(last_block, 'bar')

    assert mined_block.difficulty == last_block.difficulty - 1
Exemplo n.º 2
0
def test_mined_block_difficulty_limits_at_1():
    last_block = Block(time.time_ns(), 'test_last_hash', 'test_hash',
                       'test_data', 1, 0)
    time.sleep(MINE_RATE / SECONDS)
    mined_block = Block.mine_block(last_block, 'bar')

    assert mined_block.difficulty == 1
Exemplo n.º 3
0
def test_mine_block():
    last_block = Block.genesis()
    data = 'test-data'
    block = Block.mine_block(last_block, data)

    assert isinstance(
        block, Block
    )  # Check if the block we created became an instance or object of Block class
    assert block.data == data
    assert block.last_hash == last_block.hash
    assert hex_to_binary(
        block.hash)[0:block.difficulty] == '0' * block.difficulty
Exemplo n.º 4
0
def block(last_block):
    return Block.mine_block(last_block, 'test_data')
Exemplo n.º 5
0
def test_quickly_mined_block():
    last_block = Block.mine_block(Block.genesis(), 'foo')
    mined_block = Block.mine_block(last_block, 'bar')

    assert mined_block.difficulty == last_block.difficulty + 1
Exemplo n.º 6
0
 def add_block(self, data):
     self.chain.append(Block.mine_block(self.chain[-1], data))