Esempio n. 1
0
def validators(b, node_keys):
    from bigchaindb.backend import query

    height = get_block_height(b)

    original_validators = b.get_validators()

    (public_key, private_key) = list(node_keys.items())[0]

    validator_set = [{
        'address': 'F5426F0980E36E03044F74DD414248D29ABCBDB2',
        'pub_key': {
            'data': public_key,
            'type': 'ed25519'
        },
        'voting_power': 10
    }]

    validator_update = {'validators': validator_set, 'height': height + 1}

    query.store_validator_set(b.connection, validator_update)

    yield

    height = get_block_height(b)

    validator_update = {'validators': original_validators, 'height': height}

    query.store_validator_set(b.connection, validator_update)
Esempio n. 2
0
def validators(b, node_keys):
    from bigchaindb.backend import query
    import time

    def timestamp():  # we need this to force unique election_ids for setup and teardown of fixtures
        return str(time.time())

    height = get_block_height(b)

    original_validators = b.get_validators()

    (public_key, private_key) = list(node_keys.items())[0]

    validator_set = [{'address': 'F5426F0980E36E03044F74DD414248D29ABCBDB2',
                      'public_key': {'value': public_key,
                                     'type': 'ed25519-base64'},
                      'voting_power': 10}]

    validator_update = {'validators': validator_set,
                        'height': height + 1,
                        'election_id': f'setup_at_{timestamp()}'}

    query.store_validator_set(b.connection, validator_update)

    yield

    height = get_block_height(b)

    validator_update = {'validators': original_validators,
                        'height': height,
                        'election_id': f'teardown_at_{timestamp()}'}

    query.store_validator_set(b.connection, validator_update)
Esempio n. 3
0
def ongoing_validator_election_2(b, valid_upsert_validator_election_2, ed25519_node_keys):
    validators = b.get_validators(height=1)
    genesis_validators = {'validators': validators,
                          'height': 0,
                          'election_id': None}
    query.store_validator_set(b.connection, genesis_validators)

    b.store_bulk_transactions([valid_upsert_validator_election_2])
    block_1 = Block(app_hash='hash_2', height=1, transactions=[valid_upsert_validator_election_2.id])
    b.store_block(block_1._asdict())
    return valid_upsert_validator_election_2
Esempio n. 4
0
def ongoing_validator_election(b, valid_upsert_validator_election, ed25519_node_keys):
    validators = b.get_validators(height=1)
    genesis_validators = {'validators': validators,
                          'height': 0}
    query.store_validator_set(b.connection, genesis_validators)
    b.store_bulk_transactions([valid_upsert_validator_election])
    query.store_election(b.connection, valid_upsert_validator_election.id, 1,
                         is_concluded=False)
    block_1 = Block(app_hash='hash_1', height=1,
                    transactions=[valid_upsert_validator_election.id])
    b.store_block(block_1._asdict())
    return valid_upsert_validator_election
Esempio n. 5
0
def ongoing_validator_election(b, valid_upsert_validator_election,
                               ed25519_node_keys):
    validators = b.get_validators(height=1)
    genesis_validators = {'validators': validators, 'height': 0}
    query.store_validator_set(b.connection, genesis_validators)
    b.store_bulk_transactions([valid_upsert_validator_election])
    query.store_election(b.connection,
                         valid_upsert_validator_election.id,
                         1,
                         is_concluded=False)
    block_1 = Block(app_hash='hash_1',
                    height=1,
                    transactions=[valid_upsert_validator_election.id])
    b.store_block(block_1._asdict())
    return valid_upsert_validator_election
Esempio n. 6
0
def ongoing_validator_election_2(b, valid_upsert_validator_election_2,
                                 ed25519_node_keys):
    validators = b.get_validators(height=1)
    genesis_validators = {
        'validators': validators,
        'height': 0,
        'election_id': None
    }
    query.store_validator_set(b.connection, genesis_validators)

    b.store_bulk_transactions([valid_upsert_validator_election_2])
    block_1 = Block(app_hash='hash_2',
                    height=1,
                    transactions=[valid_upsert_validator_election_2.id])
    b.store_block(block_1._asdict())
    return valid_upsert_validator_election_2
Esempio n. 7
0
def validators(b, node_keys):
    from bigchaindb.backend import query
    import time

    def timestamp(
    ):  # we need this to force unique election_ids for setup and teardown of fixtures
        return str(time.time())

    height = get_block_height(b)

    original_validators = b.get_validators()

    (public_key, private_key) = list(node_keys.items())[0]

    validator_set = [{
        'address': 'F5426F0980E36E03044F74DD414248D29ABCBDB2',
        'public_key': {
            'value': public_key,
            'type': 'ed25519-base64'
        },
        'voting_power': 10
    }]

    validator_update = {
        'validators': validator_set,
        'height': height + 1,
        'election_id': f'setup_at_{timestamp()}'
    }

    query.store_validator_set(b.connection, validator_update)

    yield

    height = get_block_height(b)

    validator_update = {
        'validators': original_validators,
        'height': height,
        'election_id': f'teardown_at_{timestamp()}'
    }

    query.store_validator_set(b.connection, validator_update)
Esempio n. 8
0
def test_validator_update():
    from bigchaindb.backend import connect, query

    conn = connect()

    def gen_validator_update(height):
        return {'data': 'somedata', 'height': height}

    for i in range(1, 100, 10):
        value = gen_validator_update(i)
        query.store_validator_set(conn, value)

    v1 = query.get_validator_set(conn, 8)
    assert v1['height'] == 1

    v41 = query.get_validator_set(conn, 50)
    assert v41['height'] == 41

    v91 = query.get_validator_set(conn)
    assert v91['height'] == 91
Esempio n. 9
0
def test_validator_update():
    from bigchaindb.backend import connect, query

    conn = connect()

    def gen_validator_update(height):
        return {'data': 'somedata', 'height': height, 'election_id': f'election_id_at_height_{height}'}

    for i in range(1, 100, 10):
        value = gen_validator_update(i)
        query.store_validator_set(conn, value)

    v1 = query.get_validator_set(conn, 8)
    assert v1['height'] == 1

    v41 = query.get_validator_set(conn, 50)
    assert v41['height'] == 41

    v91 = query.get_validator_set(conn)
    assert v91['height'] == 91