def test_01_serialize(self): print("\n-----", sys._getframe().f_code.co_name, "-----") msg = { KeyType.source_node_id: bbclib.get_new_id("aaa"), KeyType.destination_node_id: bbclib.get_new_id("bbb"), KeyType.status: True, KeyType.random: int(8000).to_bytes(4, "little") } pprint.pprint(msg) global msg_data msg_data = message_key_types.make_TLV_formatted_message(msg)
def make_client(index, core_port_increment, callback=None, connect_to_core=True, domain_id=None, id_length=bbclib.DEFAULT_ID_LEN): keypair = bbclib.KeyPair() keypair.generate() clients[index]['user_id'] = bbclib.get_new_id("user_%i" % index)[:id_length] clients[index]['keypair'] = keypair clients[index]['app'] = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT + core_port_increment, multiq=False, id_length=id_length) if connect_to_core: if domain_id is None: global common_domain_id domain_id = common_domain_id clients[index]['app'].set_user_id(clients[index]['user_id']) clients[index]['app'].set_domain_id(domain_id) if callback is not None: clients[index]['app'].set_callback(callback) working_dir = ".bbc1-%i/" % (DEFAULT_CORE_PORT + core_port_increment) time.sleep(0.1) print("[%i] user_id = %s" % (index, binascii.b2a_hex(clients[index]['user_id'])))
def make_client_direct(index, host, port, callback=None, domain_id=None, id_length=bbclib.DEFAULT_ID_LEN): keypair = bbclib.KeyPair() keypair.generate() clients[index]['user_id'] = bbclib.get_new_id("user_%i" % index)[:id_length] clients[index]['keypair'] = keypair clients[index]['app'] = bbc_app.BBcAppClient(host=host, port=port, multiq=False, id_length=id_length) if domain_id is None: global common_domain_id domain_id = common_domain_id clients[index]['app'].set_user_id(clients[index]['user_id']) clients[index]['app'].set_domain_id(domain_id) if callback is not None: clients[index]['app'].set_callback(callback) time.sleep(0.1) print("[%i] user_id = %s" % (index, binascii.b2a_hex(clients[index]['user_id'])))
def test_13_send_message_to_invalid_user(self): print("\n-----", sys._getframe().f_code.co_name, "-----") msg = { KeyType.domain_id: domain_id, KeyType.source_user_id: users[7], KeyType.destination_user_id: bbclib.get_new_id("test_user_invalid"), KeyType.message: 200, } user_routings[3].send_message_to_user(msg) try: recvmsg = result_queue.get(timeout=3) except: recvmsg = None assert recvmsg is None
import sys sys.path.extend(["../"]) from bbc_simple.core import bbclib from bbc_simple.core.message_key_types import KeyType from bbc_simple.core import bbc_core from testutils import prepare, get_core_client, start_core_thread, make_client, domain_setup_utility LOGLEVEL = 'debug' LOGLEVEL = 'info' core_num = 1 client_num = 5 cores = None clients = None domain_id = bbclib.get_new_id("testdomain") asset_group_id = bbclib.get_new_id("asset_group_1") transactions1 = [None for i in range(20)] transactions2 = [None for i in range(20)] transaction_dat = None fmt = bbclib.BBcFormat.FORMAT_BSON_COMPRESS_BZ2 class TestBBcAppClient(object): def test_00_setup(self): print("\n-----", sys._getframe().f_code.co_name, "-----") bbc_core.TX_TRAVERSAL_MAX = 11 prepare(core_num=core_num, client_num=client_num) for i in range(core_num): start_core_thread(index=i, core_port_increment=i)
import sys sys.path.extend(["../"]) from bbc_simple.core import bbclib from bbc_simple.core.message_key_types import KeyType from testutils import prepare, start_core_thread, get_core_client, make_client LOGLEVEL = 'debug' LOGLEVEL = 'info' CURVE_TYPE = bbclib.KeyType.ECDSA_SECP256k1 core_num = 3 client_num = 3 cores = None clients = None domain_id = bbclib.get_new_id("testdomain") asset_group_id = bbclib.get_new_id("asset_group_1")[:bbclib.DEFAULT_ID_LEN] transaction = None txid = None user_id1 = bbclib.get_new_id("destination_id_test1")[:bbclib.DEFAULT_ID_LEN] txid1 = bbclib.get_new_id("dummy_txid_1")[:bbclib.DEFAULT_ID_LEN] result_queue = queue.Queue() keypair = bbclib.KeyPair(curvetype=CURVE_TYPE) keypair.generate() def wait_results(count): total = 0 for i in range(count): total += result_queue.get()
from bbc_simple.core import bbclib from bbc_simple.core.message_key_types import KeyType from bbc_simple.core import bbc_network, user_message_routing, bbc_config, query_management, bbc_stats, message_key_types LOGLEVEL = 'debug' LOGLEVEL = 'info' ticker = query_management.get_ticker() core_nodes = 10 dummy_cores = [None for i in range(core_nodes)] networkings = [None for i in range(core_nodes)] client_socks = [None for i in range(core_nodes * 2)] user_routings = [None for i in range(core_nodes)] result_queue = queue.Queue() domain_id = bbclib.get_new_id("test_domain") asset_group_id = bbclib.get_new_id("asset_group_1") nodes = [None for i in range(core_nodes)] users = [bbclib.get_new_id("test_user_%i" % i) for i in range(core_nodes * 2)] sample_resource_id = bbclib.get_new_id("sample_resource_id") def get_random_data(length=16): import random source_str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' return "".join([random.choice(source_str) for x in range(length)]) def dummy_server_loop(socket, address): msg_parser = message_key_types.Message()
# -*- coding: utf-8 -*- import pytest import binascii import sys sys.path.extend(["../"]) from bbc_simple.core.bbclib import BBcTransaction, BBcEvent, BBcReference, BBcWitness, BBcRelation, BBcAsset, \ BBcCrossRef, KeyPair, KeyType from bbc_simple.core import bbclib CURVE_TYPE = KeyType.ECDSA_P256v1 user_id = bbclib.get_new_id("user_id_test1") user_id2 = bbclib.get_new_id("user_id_test2") domain_id = bbclib.get_new_id("testdomain") asset_group_id = bbclib.get_new_id("asset_group_1") transaction1_id = bbclib.get_new_id("transaction_1") transaction2_id = bbclib.get_new_id("transaction_2") keypair1 = KeyPair(curvetype=CURVE_TYPE) keypair1.generate() keypair2 = KeyPair(curvetype=CURVE_TYPE) keypair2.generate() transaction1 = None asset1 = None asset2 = None event1 = None event2 = None transaction2 = None asset_content = b'abcdefg' fmt = bbclib.BBcFormat.FORMAT_MSGPACK
#!/usr/bin/env python # -*- coding:utf-8 -*- """ BBc-1 performance tester """ from argparse import ArgumentParser import time import sys from functools import wraps sys.path.append("..") import bbc_simple.core.bbclib as bbclib import bbc_simple.core.bbc_app as bbc_app domain_id = bbclib.get_new_id("testdomain") asset_group_id1 = bbclib.get_new_id("asset_group_1")[:bbclib.DEFAULT_ID_LEN] asset_group_id2 = bbclib.get_new_id("asset_group_2")[:bbclib.DEFAULT_ID_LEN] user_ids = list() keypairs = list() #FORMAT_TYPE = bbclib.BBcFormat.FORMAT_MSGPACK_COMPRESS_ZLIB #FORMAT_TYPE = bbclib.BBcFormat.FORMAT_BSON_COMPRESS_ZLIB #FORMAT_TYPE = bbclib.BBcFormat.FORMAT_BINARY def measure(func) : @wraps(func) def wrapper(*args, **kargs) : start = time.time()
def test_33_messaging(self): print("\n-----", sys._getframe().f_code.co_name, "-----") msg = "message to X" clients[0]['app'].send_message(msg, bbclib.get_new_id("xxxxx")) dat = msg_processor[0].synchronize(timeout=3) assert dat is None
import sys sys.path.extend(["../"]) from bbc_simple.core import bbclib from bbc_simple.core.message_key_types import KeyType from bbc_simple.core import bbc_core from testutils import prepare, get_core_client, start_core_thread, make_client, domain_setup_utility LOGLEVEL = 'debug' LOGLEVEL = 'info' core_num = 1 client_num = 1 cores = None clients = None domain_id = bbclib.get_new_id("testdomain") asset_group_id = bbclib.get_new_id("asset_group_1")[:bbclib.DEFAULT_ID_LEN] transactions1 = [None for i in range(20)] transactions2 = [None for i in range(20)] transaction_dat = None class TestBBcAppClient(object): def test_00_setup(self): print("\n-----", sys._getframe().f_code.co_name, "-----") bbc_core.TX_TRAVERSAL_MAX = 11 prepare(core_num=core_num, client_num=client_num) for i in range(core_num): start_core_thread(index=i, core_port_increment=i) domain_setup_utility(i, domain_id) # system administrator
import sys sys.path.extend(["../"]) from bbc_simple.core import bbclib from bbc_simple.core.message_key_types import KeyType from bbc_simple.core.bbc_error import * from bbc_simple.core import bbc_app from testutils import prepare, get_core_client, make_client_direct, domain_setup_utility, wait_check_result_msg_type LOGLEVEL = 'debug' LOGLEVEL = 'info' core_num = 1 client_num = 5 cores = None clients = None domain_id = bbclib.get_new_id("testdomain", include_timestamp=False) asset_group_id = bbclib.get_new_id("asset_group_1") transactions = [None for i in range(client_num)] transaction_dat = None msg_processor = [None for i in range(client_num)] class MessageProcessor(bbc_app.Callback): def __init__(self, index=0): super(MessageProcessor, self).__init__(self) self.idx = index def proc_user_message(self, dat): print("[%i] Recv Message from %s" % (self.idx, binascii.b2a_hex(dat[KeyType.source_user_id])))
import sys sys.path.extend(["../"]) from bbc_simple.core import bbclib from bbc_simple.core.message_key_types import KeyType from bbc_simple.core.bbc_error import * from bbc_simple.core import bbc_app from testutils import prepare, get_core_client, start_core_thread, make_client, domain_setup_utility LOGLEVEL = 'debug' LOGLEVEL = 'info' core_num = 1 client_num = 1 cores = None clients = None domain_id = bbclib.get_new_id("testdomain") class TestBBcAppClient(object): def test_00_setup(self): print("\n-----", sys._getframe().f_code.co_name, "-----") prepare(core_num=core_num, client_num=client_num) for i in range(core_num): start_core_thread(index=i) make_client(index=i, core_port_increment=0) time.sleep(1) global cores, clients cores, clients = get_core_client()
# -*- coding: utf-8 -*- import pytest import binascii import sys sys.path.extend(["../"]) from bbc_simple.core.bbclib import BBcTransaction, BBcEvent, BBcReference, BBcWitness, BBcRelation, BBcAsset, \ BBcCrossRef, KeyPair, KeyType from bbc_simple.core import bbclib ID_LENGTH = 8 user_id = bbclib.get_new_id("user_id_test1")[:ID_LENGTH] user_id2 = bbclib.get_new_id("user_id_test2")[:ID_LENGTH] domain_id = bbclib.get_new_id("testdomain")[:ID_LENGTH] asset_group_id = bbclib.get_new_id("asset_group_1")[:ID_LENGTH] transaction1_id = bbclib.get_new_id("transaction_1") transaction2_id = bbclib.get_new_id("transaction_2") keypair1 = KeyPair() keypair1.generate() keypair2 = KeyPair() keypair2.generate() transaction1 = None asset1 = None asset2 = None event1 = None event2 = None transaction2 = None asset_content = b'abcdefg'
import threading import time import shutil import sys sys.path.extend(["../"]) from bbc_simple.core import bbclib from testutils import prepare, start_core_thread import bbc_simple.app.bbc_app_rest as bbc_rest LOGLEVEL = 'debug' LOGLEVEL = 'info' core_num = 1 client_num = 1 domain_id = bbclib.get_new_id("testdomain") asset_group_id = bbclib.get_new_id("asset_group_1")[:bbclib.DEFAULT_ID_LEN] user_id1 = bbclib.get_new_id("user1")[:bbclib.DEFAULT_ID_LEN] user_id2 = bbclib.get_new_id("user2")[:bbclib.DEFAULT_ID_LEN] keypair1 = bbclib.KeyPair() keypair1.generate() keypair2 = bbclib.KeyPair() keypair2.generate() txid = None asid = None tx1 = None tx2 = None BASE_URL = "http://localhost:3000"