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)
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)
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