Ejemplo n.º 1
0
def test_no_state_proofs_if_protocol_version_less(write_manager, read_manager,
                                                  db_manager):
    nym = 'Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv'
    role = "2"
    verkey = "~7TYfekw4GUagBnBVCqPjiC"
    identifier = "6ouriXMZkLeHsuXrN1X1fd"

    seq_no = 0
    txn_time = int(time.time())
    # Adding nym
    data = {
        TARGET_NYM: nym,
        ROLE: role,
        VERKEY: verkey,
    }
    txn = append_txn_metadata(reqToTxn(
        Request(operation=data,
                protocolVersion=CURRENT_PROTOCOL_VERSION,
                identifier=identifier)),
                              seq_no=seq_no,
                              txn_time=txn_time)
    txn = set_type(txn, NYM)
    txn = append_payload_metadata(txn, frm=nym)
    write_manager.update_state(txn)
    db_manager.get_state(DOMAIN_LEDGER_ID).commit()
    multi_sig = save_multi_sig(db_manager)

    # Getting nym
    request = Request(operation={
        TARGET_NYM: nym,
        TXN_TYPE: GET_NYM,
    },
                      signatures={})
    result = read_manager.get_result(request)
    assert STATE_PROOF not in result
def _sendIncorrectTxns(self, req, frm):
    ledgerId = getattr(req, f.LEDGER_ID.nm)
    if ledgerId == DOMAIN_LEDGER_ID:
        logger.info("{} being malicious and sending incorrect transactions"
                    " for catchup request {} from {}".
                    format(self, req, frm))
        start, end = getattr(req, f.SEQ_NO_START.nm), \
                     getattr(req, f.SEQ_NO_END.nm)
        ledger = self.getLedgerForMsg(req)
        txns = {}
        for seqNo, txn in ledger.getAllTxn(start, end):
            # Since the type of random request is `buy`
            if get_type(txn) == "buy":
                set_type(txn, "randombuy")
            txns[seqNo] = txn
        consProof = [Ledger.hashToStr(p) for p in
                     ledger.tree.consistency_proof(end, ledger.size)]
        self.sendTo(msg=CatchupRep(getattr(req, f.LEDGER_ID.nm), txns,
                                   consProof), to=frm)
    else:
        self.processCatchupReq(req, frm)
Ejemplo n.º 3
0
def _sendIncorrectTxns(self, req, frm):
    ledgerId = getattr(req, f.LEDGER_ID.nm)
    if ledgerId == DOMAIN_LEDGER_ID:
        logger.info("{} being malicious and sending incorrect transactions"
                    " for catchup request {} from {}".format(self, req, frm))
        start, end = getattr(req, f.SEQ_NO_START.nm), \
                     getattr(req, f.SEQ_NO_END.nm)
        ledger = self.ledgerRegistry[ledgerId].ledger
        txns = {}
        for seqNo, txn in ledger.getAllTxn(start, end):
            # Since the type of random request is `buy`
            if get_type(txn) == "buy":
                set_type(txn, "randombuy")
            txns[seqNo] = txn
        consProof = [
            Ledger.hashToStr(p)
            for p in ledger.tree.consistency_proof(end, ledger.size)
        ]
        self.sendTo(msg=CatchupRep(getattr(req, f.LEDGER_ID.nm), txns,
                                   consProof),
                    to=frm)
    else:
        self.processCatchupReq(req, frm)
Ejemplo n.º 4
0
def prep_multi_sig(write_manager, db_manager, nym, role, verkey, seq_no):
    txn_time = int(time.time())
    identifier = "6ouriXMZkLeHsuXrN1X1fd"

    # Adding nym
    data = {
        TARGET_NYM: nym,
        ROLE: role,
        VERKEY: verkey,
    }
    txn = append_txn_metadata(reqToTxn(
        Request(operation=data,
                protocolVersion=CURRENT_PROTOCOL_VERSION,
                identifier=identifier)),
                              seq_no=seq_no,
                              txn_time=txn_time)
    txn = set_type(txn, NYM)
    txn = append_payload_metadata(txn, frm=nym)
    write_manager.update_state(txn)
    db_manager.get_state(DOMAIN_LEDGER_ID).commit()
    multi_sig = save_multi_sig(db_manager)
    return data, multi_sig
def test_set_type(txn):
    txn = set_type(txn, NODE)
    assert get_type(txn) == NODE
def test_set_type(txn):
    txn = set_type(txn, NODE)
    assert get_type(txn) == NODE