Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
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'])))
Ejemplo n.º 3
0
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'])))
Ejemplo n.º 4
0
 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)
Ejemplo n.º 6
0
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()
Ejemplo n.º 7
0
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()
Ejemplo n.º 8
0
# -*- 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
Ejemplo n.º 9
0
#!/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()
Ejemplo n.º 10
0
 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])))
Ejemplo n.º 13
0
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()
Ejemplo n.º 14
0
# -*- 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'
Ejemplo n.º 15
0
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"