コード例 #1
0
def test_make_proof_bls_enabled(looper, txnPoolNodeSet,
                                client1, client1Connected, wallet1):
    reqs = sendRandomRequests(wallet1, client1, 1)
    wait_for_requests_ordered(looper, txnPoolNodeSet, reqs)

    req = reqs[0]
    for node in txnPoolNodeSet:
        req_handler = node.get_req_handler(DOMAIN_LEDGER_ID)
        key = req_handler.prepare_buy_key(req.identifier, req.reqId)
        proof = req_handler.make_proof(key)
        assert proof
        assert ROOT_HASH in proof
        assert MULTI_SIGNATURE in proof
        assert PROOF_NODES in proof

        multi_sig = proof[MULTI_SIGNATURE]
        assert MULTI_SIGNATURE_SIGNATURE in multi_sig
        assert MULTI_SIGNATURE_PARTICIPANTS in multi_sig
        assert MULTI_SIGNATURE_VALUE in multi_sig

        multi_sig_value = multi_sig[MULTI_SIGNATURE_VALUE]
        assert MULTI_SIGNATURE_VALUE_LEDGER_ID in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_STATE_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_TXN_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_POOL_STATE_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_TIMESTAMP in multi_sig_value
        # check that multi sig values are in order
        value_keys = list(multi_sig_value.keys())
        assert [MULTI_SIGNATURE_VALUE_LEDGER_ID,
                MULTI_SIGNATURE_VALUE_POOL_STATE_ROOT,
                MULTI_SIGNATURE_VALUE_STATE_ROOT,
                MULTI_SIGNATURE_VALUE_TIMESTAMP,
                MULTI_SIGNATURE_VALUE_TXN_ROOT] == value_keys

        assert client1.validate_multi_signature(proof)
コード例 #2
0
def test_make_result_bls_enabled(looper, txnPoolNodeSet,
                                 client1, client1Connected, wallet1):
    reqs = sendRandomRequests(wallet1, client1, 1)
    wait_for_requests_ordered(looper, txnPoolNodeSet, reqs)
    req = reqs[0]

    assert req.protocolVersion
    assert req.protocolVersion >= PlenumProtocolVersion.STATE_PROOF_SUPPORT.value
    check_result(txnPoolNodeSet, req, client1, True)
コード例 #3
0
def test_make_result_bls_enabled(looper, txnPoolNodeSet,
                                 sdk_pool_handle, sdk_wallet_client):
    req_dict, _ = sdk_send_random_requests(looper, sdk_pool_handle, sdk_wallet_client, 1)[0]
    req = sdk_json_to_request_object(req_dict)
    wait_for_requests_ordered(looper, txnPoolNodeSet, [req])

    assert req.protocolVersion
    assert req.protocolVersion >= PlenumProtocolVersion.STATE_PROOF_SUPPORT.value
    check_result(txnPoolNodeSet, req, True)
コード例 #4
0
def test_make_result_bls_enabled(looper, txnPoolNodeSet,
                                 sdk_pool_handle, sdk_wallet_client):
    req_dict, _ = sdk_send_random_requests(looper, sdk_pool_handle, sdk_wallet_client, 1)[0]
    req = sdk_json_to_request_object(req_dict)
    wait_for_requests_ordered(looper, txnPoolNodeSet, [req])

    assert req.protocolVersion
    assert req.protocolVersion >= PlenumProtocolVersion.STATE_PROOF_SUPPORT.value
    check_result(txnPoolNodeSet, req, True)
コード例 #5
0
def test_make_proof_committed_head_used(looper, txnPoolNodeSet, client1,
                                        client1Connected, wallet1):
    reqs = sendRandomRequests(wallet1, client1, 1)
    wait_for_requests_ordered(looper, txnPoolNodeSet, reqs)
    req = reqs[0]
    key = txnPoolNodeSet[0].reqHandler.prepare_buy_key(req.identifier)

    for node in txnPoolNodeSet:
        node.states[DOMAIN_LEDGER_ID].set(key, b'somevalue')

    check_result(txnPoolNodeSet, req, client1, True)
コード例 #6
0
def test_make_result_bls_enabled(looper, txnPoolNodeSet, sdk_pool_handle,
                                 sdk_wallet_client):
    reqs = sdk_json_couples_to_request_list(
        sdk_send_random_requests(looper, sdk_pool_handle, sdk_wallet_client,
                                 1))
    wait_for_requests_ordered(looper, txnPoolNodeSet, reqs)
    req = reqs[0]

    assert req.protocolVersion
    assert req.protocolVersion >= PlenumProtocolVersion.STATE_PROOF_SUPPORT.value
    check_result(txnPoolNodeSet, req, True)
コード例 #7
0
def test_make_proof_committed_head_used(looper, txnPoolNodeSet,
                                        sdk_pool_handle, sdk_wallet_client):
    req_dict, _ = sdk_send_random_requests(looper, sdk_pool_handle,
                                           sdk_wallet_client, 1)[0]
    req = sdk_json_to_request_object(req_dict)
    wait_for_requests_ordered(looper, txnPoolNodeSet, [req])
    key = BuyHandler.prepare_buy_key(req.identifier, req.reqId)

    for node in txnPoolNodeSet:
        node.states[DOMAIN_LEDGER_ID].set(key, b'somevalue')

    check_result(txnPoolNodeSet, req, True)
コード例 #8
0
def test_make_proof_committed_head_used(looper, txnPoolNodeSet,
                                        sdk_pool_handle, sdk_wallet_client):
    req_dict, _ = sdk_send_random_requests(looper, sdk_pool_handle, sdk_wallet_client, 1)[0]
    req = sdk_json_to_request_object(req_dict)
    wait_for_requests_ordered(looper, txnPoolNodeSet, [req])

    req_handler = txnPoolNodeSet[0].get_req_handler(DOMAIN_LEDGER_ID)
    key = req_handler.prepare_buy_key(req.identifier, req.reqId)

    for node in txnPoolNodeSet:
        node.states[DOMAIN_LEDGER_ID].set(key, b'somevalue')

    check_result(txnPoolNodeSet, req, True)
コード例 #9
0
def test_make_proof_committed_head_used(looper, txnPoolNodeSet,
                                        sdk_pool_handle, sdk_wallet_client):
    reqs = sdk_json_couples_to_request_list(
        sdk_send_random_requests(looper, sdk_pool_handle, sdk_wallet_client,
                                 1))
    wait_for_requests_ordered(looper, txnPoolNodeSet, reqs)
    req = reqs[0]
    req_handler = txnPoolNodeSet[0].get_req_handler(DOMAIN_LEDGER_ID)
    key = req_handler.prepare_buy_key(req.identifier, req.reqId)

    for node in txnPoolNodeSet:
        node.states[DOMAIN_LEDGER_ID].set(key, b'somevalue')

    check_result(txnPoolNodeSet, req, True)
コード例 #10
0
def test_make_proof_bls_enabled(looper, txnPoolNodeSet, sdk_pool_handle,
                                sdk_wallet_client):
    reqs = sdk_json_couples_to_request_list(
        sdk_send_random_requests(looper, sdk_pool_handle, sdk_wallet_client,
                                 1))
    wait_for_requests_ordered(looper, txnPoolNodeSet, reqs)

    req = reqs[0]
    for node in txnPoolNodeSet:
        req_handler = node.get_req_handler(DOMAIN_LEDGER_ID)
        key = req_handler.prepare_buy_key(req.identifier, req.reqId)
        _, proof = req_handler.get_value_from_state(key, with_proof=True)
        assert proof
        assert ROOT_HASH in proof
        assert MULTI_SIGNATURE in proof
        assert PROOF_NODES in proof

        multi_sig = proof[MULTI_SIGNATURE]
        assert MULTI_SIGNATURE_SIGNATURE in multi_sig
        assert MULTI_SIGNATURE_PARTICIPANTS in multi_sig
        assert MULTI_SIGNATURE_VALUE in multi_sig

        multi_sig_value = multi_sig[MULTI_SIGNATURE_VALUE]
        assert MULTI_SIGNATURE_VALUE_LEDGER_ID in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_STATE_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_TXN_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_POOL_STATE_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_TIMESTAMP in multi_sig_value
        # check that multi sig values are in order
        value_keys = list(multi_sig_value.keys())
        assert [
            MULTI_SIGNATURE_VALUE_LEDGER_ID,
            MULTI_SIGNATURE_VALUE_POOL_STATE_ROOT,
            MULTI_SIGNATURE_VALUE_STATE_ROOT, MULTI_SIGNATURE_VALUE_TIMESTAMP,
            MULTI_SIGNATURE_VALUE_TXN_ROOT
        ] == value_keys

        assert validate_multi_signature(proof, txnPoolNodeSet)
コード例 #11
0
def test_make_proof_bls_enabled(looper, txnPoolNodeSet,
                                sdk_pool_handle, sdk_wallet_client):
    reqs = sdk_json_couples_to_request_list(
        sdk_send_random_requests(
            looper, sdk_pool_handle, sdk_wallet_client, 1))
    wait_for_requests_ordered(looper, txnPoolNodeSet, reqs)

    req = reqs[0]
    for node in txnPoolNodeSet:
        req_handler = node.get_req_handler(DOMAIN_LEDGER_ID)
        key = req_handler.prepare_buy_key(req.identifier, req.reqId)
        _, proof = req_handler.get_value_from_state(key, with_proof=True)
        assert proof
        assert ROOT_HASH in proof
        assert MULTI_SIGNATURE in proof
        assert PROOF_NODES in proof

        multi_sig = proof[MULTI_SIGNATURE]
        assert MULTI_SIGNATURE_SIGNATURE in multi_sig
        assert MULTI_SIGNATURE_PARTICIPANTS in multi_sig
        assert MULTI_SIGNATURE_VALUE in multi_sig

        multi_sig_value = multi_sig[MULTI_SIGNATURE_VALUE]
        assert MULTI_SIGNATURE_VALUE_LEDGER_ID in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_STATE_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_TXN_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_POOL_STATE_ROOT in multi_sig_value
        assert MULTI_SIGNATURE_VALUE_TIMESTAMP in multi_sig_value
        # check that multi sig values are in order
        value_keys = list(multi_sig_value.keys())
        assert [MULTI_SIGNATURE_VALUE_LEDGER_ID,
                MULTI_SIGNATURE_VALUE_POOL_STATE_ROOT,
                MULTI_SIGNATURE_VALUE_STATE_ROOT,
                MULTI_SIGNATURE_VALUE_TIMESTAMP,
                MULTI_SIGNATURE_VALUE_TXN_ROOT] == value_keys

        assert validate_multi_signature(proof, txnPoolNodeSet)