コード例 #1
0
    def test_signature_validate(self):
        """GIVEN success tx, invalid public key tx, invalid signature tx,
        WHEN validate 3 tx
        THEN only success tx validate return true
        """
        # GIVEN
        # init peer_auth for signautre

        channel =  list(conf.CHANNEL_OPTION)[0]
        peer_auth = PeerAuthorization(channel=channel)

        # create txs
        success_tx = test_util.create_basic_tx("aaa", peer_auth)

        # public key and signature property must don't have setter
        invalid_public_tx = test_util.create_basic_tx("aaa", peer_auth)
        invalid_public_tx._Transaction__public_key = b'invalid_public'

        invalid_sign_tx = test_util.create_basic_tx("aaa", peer_auth)
        invalid_sign_tx._Transaction__signature = b'invalid_sign'

        hash_generator = get_tx_hash_generator(channel)
        tx_validator = TxValidator(channel, conf.CHANNEL_OPTION[channel]["send_tx_type"], hash_generator)
        # WHEN THEN
        self.assertTrue(tx_validator.validate(success_tx))
        logging.debug("start validate invalid public key")
        self.assertFalse(tx_validator.validate(invalid_public_tx))
        logging.debug("start validate invalid signature")
        self.assertFalse(tx_validator.validate(invalid_sign_tx))
コード例 #2
0
    def test_signature_validate(self):
        """ GIVEN success tx, invalid public key tx, invalid signature tx,
        WHEN validate 3 tx
        THEN only success tx validate return true
        """
        # GIVEN
        # init peer_auth for signautre
        peer_auth = PeerAuthorization(public_file=conf.PUBLIC_PATH,
                                      pri_file=conf.PRIVATE_PATH,
                                      cert_pass=conf.DEFAULT_PW)

        # create txs
        success_tx = test_util.create_basic_tx("aaa", peer_auth)

        # public key and signature property must don't have setter
        invalid_public_tx = test_util.create_basic_tx("aaa", peer_auth)
        invalid_public_tx._Transaction__public_key = b'invalid_public'

        invalid_sign_tx = test_util.create_basic_tx("aaa", peer_auth)
        invalid_sign_tx._Transaction__signature = b'invalid_sign'

        # WHEN THEN
        self.assertTrue(Transaction.validate(success_tx))
        logging.debug("start validate invalid public key")
        self.assertFalse(
            Transaction.validate(invalid_public_tx, is_exception_log=False))
        logging.debug("start validate invalid signature")
        self.assertFalse(
            Transaction.validate(invalid_sign_tx, is_exception_log=False))
コード例 #3
0
ファイル: test_block.py プロジェクト: JINWOO-J/loopchain
 def test_put_transaction(self):
     """
     Block 에 여러 개 transaction 들을 넣는 것을 test.
     """
     block = Block(channel_name=conf.LOOPCHAIN_DEFAULT_CHANNEL)
     tx_list = []
     tx_size = 10
     for x in range(0, tx_size):
         tx = test_util.create_basic_tx(self.__peer_id, self.peer_auth)
         tx2 = test_util.create_basic_tx(self.__peer_id, self.peer_auth)
         tx_list.append(tx2)
         self.assertNotEqual(tx.tx_hash, "", "트랜잭션 생성 실패")
         self.assertTrue(block.put_transaction(tx), "Block에 트랜잭션 추가 실패")
     self.assertTrue(block.put_transaction(tx_list), "Block에 여러 트랜잭션 추가 실패")
     self.assertEqual(block.confirmed_tx_len, tx_size * 2, "트랜잭션 사이즈 확인 실패")
コード例 #4
0
    def generate_block(self):
        """임시 블럭 생성하는 메소드

        :return: 임시 블럭
        """
        block = Block(channel_name=conf.LOOPCHAIN_DEFAULT_CHANNEL)
        for x in range(10):
            tx = test_util.create_basic_tx(self.__peer_id, self.__peer_auth)
            block.put_transaction(tx)
        block.generate_block(self.chain.last_block)
        return block
コード例 #5
0
ファイル: test_blockchain.py プロジェクト: jckdotim/loopchain
    def generate_test_block(self):
        """
        임시 블럭 생성하는 메소드
        :return: 임시 블럭
        """

        block = Block(channel_name=conf.LOOPCHAIN_DEFAULT_CHANNEL)
        for x in range(0, 10):
            tx = test_util.create_basic_tx(self.__peer_id, self.peer_auth)
            self.assertNotEqual(tx.tx_hash, "", "트랜잭션 생성 실패")
            self.assertTrue(block.put_transaction(tx), "Block에 트랜잭션 추가 실패")

        return block
コード例 #6
0
ファイル: test_blockchain.py プロジェクト: jckdotim/loopchain
    def __add_single_tx_block_blockchain_return_tx(self):
        last_block = self.chain.last_block
        block = Block(channel_name=conf.LOOPCHAIN_DEFAULT_CHANNEL)
        tx = test_util.create_basic_tx(self.__peer_id, self.peer_auth)
        block.put_transaction(tx)

        logging.debug("tx_hash: " + tx.tx_hash)

        block.generate_block(last_block)
        block.block_status = BlockStatus.confirmed

        # add_block to blockchain
        self.assertTrue(self.chain.add_block(block),
                        "Fail Add Block to BlockChain")
        return tx
コード例 #7
0
ファイル: test_block.py プロジェクト: yakkle/loopchain
    def __generate_block_data(self) -> Block:
        """ block data generate
        :return: unsigned block
        """
        genesis = Block(channel_name=conf.LOOPCHAIN_DEFAULT_CHANNEL)
        genesis.generate_block()
        # Block 생성
        block = Block(channel_name=conf.LOOPCHAIN_DEFAULT_CHANNEL)
        # Transaction(s) 추가
        for x in range(0, 10):
            block.put_transaction(test_util.create_basic_tx(self.__peer_id, self.peer_auth))

        # Hash 생성 이 작업까지 끝내고 나서 Block을 peer에 보낸다
        block.generate_block(genesis)
        return block