Esempio n. 1
0
def create_configtx_file(config, dir, configtx_filename=CNFIGTX_FN):
    logger.info("Create configtx.yaml...")
    try:
        orderer_default = __create_orderer(config)
        orderer_org = __create_orderer_org(config)
        peers_org = __create_peers_org(config)
        application_default = __create_application(config)
        orderer_default['Organizations'] = orderer_org
        application_default['Organizations'] = peers_org

        orderer_profil = {}
        sample_consortium = {}
        consortiums = {}
        channel_profil = {}
        profiles = {}
        dic = {}
        orderer_profil['Orderer'] = orderer_default
        sample_consortium['Organizations'] = peers_org
        consortiums['SampleConsortium'] = sample_consortium
        orderer_profil['Consortiums'] = consortiums
        channel_profil['Consortium'] = "SampleConsortium"
        channel_profil['Application'] = application_default
        profiles['OrgsChannel'] = channel_profil
        profiles['OrgsOrdererGenesis'] = orderer_profil
        dic['Profiles'] = profiles
        dump_yaml_file(data=dic, file_path=dir + "/" + configtx_filename)
        logger.debug(json.dumps(dic, indent=4))
    except Exception as e:
        logger.error(e)
        raise Exception("Create crypto-config.yaml failled!")
Esempio n. 2
0
 def test_generate_api(self):
     data = json.dumps(self.config)
     response = self.app.post(
         '/generator/api/v1.0/generate',
         data=data,
     )
     logger.debug(response)
     self.assertEqual(response.status_code, 201)
Esempio n. 3
0
def config_test(tls, ip):
    DOMAIN_NAME = "example.com"
    PROVINCE = "Rhone Alpe"
    COUNTRY = "FR"
    LOCALITY = "Meylan"

    if tls:
        GRPCSURL = "grpcs://" + ip
        HTTPSURL = "https://" + ip
        tls = "true"
    else:
        GRPCSURL = "grpc://" + ip
        HTTPSURL = "http://" + ip
        tls = "false"

    certificate = {
        'country': COUNTRY,
        'province': PROVINCE,
        'locality': LOCALITY
    }
    channel = {'name': 'mychannel'}
    peer11 = {
        'address': GRPCSURL,
        'request_port': DEFAULT_PEER_REQUEST_PORT,
        'event_port': DEFAULT_PEER_EVENT_PORT
    }
    peer12 = {'address': GRPCSURL, 'request_port': 7056, 'event_port': 7058}
    peer21 = {'address': GRPCSURL, 'request_port': 8051, 'event_port': 8053}
    peer22 = {'address': GRPCSURL, 'request_port': 8056, 'event_port': 8088}
    orderer = {'address': GRPCSURL, 'port': DEFAULT_ORDERER_PORT}
    ca1 = {'address': HTTPSURL, 'port': DEFAULT_CA_PORT}
    ca2 = {'address': HTTPSURL, 'port': 8054}
    peerOrg1 = {
        'org_name': 'Org1',
        'domain': DOMAIN_NAME,
        'peers': [peer11, peer12],
        'ca': ca1
    }
    peerOrg2 = {
        'org_name': 'Org2',
        'domain': DOMAIN_NAME,
        'peers': [peer21, peer22],
        'ca': ca2
    }
    ordererOrg = {
        'org_name': 'Orderer',
        'domain': DOMAIN_NAME,
        'orderers': [orderer]
    }
    config = {
        'cert': certificate,
        'channel': channel,
        'orderer_org': ordererOrg,
        'peer_orgs': [peerOrg1, peerOrg2]
    }
    logger.debug(json.dumps(config, indent=4))
    return config
def create_crypto_config_file(config,
                              dir,
                              cryptog_config_filename=CRYPTOCONFIG_FN):
    logger.info("Create crypto-config.yaml...")
    try:
        dic = {}
        orderer = {}
        ca = {}
        specs = []
        peers = []
        orderers = []
        orderer['Domain'] = config.orderer_org.domain
        orderer['Name'] = "orderer"  #config.orderer_org.org_name
        ca['Country'] = config.cert.country
        ca['Province'] = config.cert.province
        ca['Locality'] = config.cert.locality
        for o in config.orderer_org.orderers:
            specs.append({'Hostname': o.name})
        orderer['Specs'] = specs
        orderer['CA'] = ca
        orderers.append(orderer)
        for peer_org in config.peer_orgs:
            peer = {}
            users = {}
            template = {}
            users['Count'] = peer_org.nb_users
            template['Count'] = peer_org.nb_peers
            peer['Domain'] = peer_org.domain
            peer['Name'] = peer_org.org_name
            peer['CA'] = ca
            peer['Users'] = users
            peer['Template'] = template
            peers.append(peer)
        dic['OrdererOrgs'] = orderers
        dic['PeerOrgs'] = peers
        dump_yaml_file(data=dic, file_path=dir + "/" + cryptog_config_filename)
        logger.debug(json.dumps(dic, indent=4))
        return cryptog_config_filename
    except Exception as e:
        logger.error(e)
        raise Exception("Create crypto-config.yaml failled!")
def create_config_file(config, filename):
    logger.info("Create explorer config file...")
    try:
        dic = {}
        dic['host'] = EXPLORER_HOST
        dic['port'] = EXPLORER_PORT
        dic['channel'] = config.channel.name
        dic['keyValueStore'] = EXPLORER_LOCAL + "fabric-client-kvs"
        dic['eventWaitTime'] = "30000"
        mysql = {}
        mysql['host'] = EXPLORER_MSQL_HOST
        mysql['port'] = EXPLORER_MSQL_PORT
        mysql['database'] = EXPLORER_MSQL_DB
        mysql['username'] = EXPLORER_MSQL_LOGIN
        mysql['password'] = EXPLORER_MSQL_PWD
        dic['mysql'] = mysql
        for o in config.peer_orgs:
            org = {}
            org['name'] = "peer" + o.org_name
            org['mspid'] = o.mspid
            org['ca'] = o.ca.url
            for p in o.peers:
                peer = {}
                peer['request'] = p.request_url
                peer['events'] = p.event_url
                peer['server-hostname'] = p.hostname
                peer[
                    'tls_cacerts'] = EXPLORER_LOCAL + o.domain + "/peer/" + p.name + "/ca.crt"
                org[p.name] = peer
            admin = {}
            admin['key'] = EXPLORER_LOCAL + o.domain + "/admin/keystore"
            admin['cert'] = EXPLORER_LOCAL + o.domain + "/admin/signcerts"
            org['admin'] = admin
            dic[o.org_name] = org
        with open(filename, 'w') as f:
            json.dump(dic, f, ensure_ascii=False, indent=4)
        logger.debug(json.dumps(dic, indent=4))
    except Exception as e:
        logger.error(e)
        raise Exception("Create explorer config file failled!")
Esempio n. 6
0
def create_connection_file(config, filename):
    for peer_org in config.peer_orgs:
        logger.info("Create composer config file...")
        try:
            dic ={}
            dic['name']    = 'profil'+peer_org.org_name
            dic['type']    = 'hlfv1'
            dic['mspID']   = peer_org.mspid
            dic['channel'] = config.channel.name            
            dic['timeout'] = 300      
            peers=[]
            for p in peer_org.peers:
                peer = {}
                peer['requestURL']=p.request_url 
                peer['eventURL']=p.event_url 
                peer['cert']=COMPOSER_LOCAL+peer_org.domain+"/peer/"+p.name+"/ca.crt"
                peer['hostnameOverride']=p.hostname          
                peers.append(peer)
            orderers=[]  
            dic['peers']=peers              
            for o in config.orderer_org.orderers:
                orderer = {}
                orderer['url']=o.url 
                orderer['cert']=COMPOSER_LOCAL+config.orderer_org.domain+"/orderer/"+o.name+"/ca.crt"
                orderer['hostnameOverride']=o.hostname     
                orderers.append(orderer)
            dic['orderers']=orderers   
            ca = {}
            ca['url']=peer_org.ca.url 
            ca['name']="ca-"+peer_org.org_name 
            ca['cert']=COMPOSER_LOCAL+peer_org.domain+"/ca/ca.crt"
            ca['hostnameOverride']="ca."+peer_org.domain          
            dic['ca']=ca   
            with open(filename, 'w') as f:
                json.dump(dic, f, ensure_ascii=False, indent=4)
            logger.debug(json.dumps(dic, indent=4))
        except Exception as e:
            logger.error(e)
            raise Exception("Create composer config file failled!")