コード例 #1
0
def get_web3_provider():
    """Get Web3 instance. Supports websocket, http, ipc."""
    global hostname

    protocol = get_setting('rpc', 'protocol')

    if hostname is None:
        hostname = get_setting('rpc', 'hostname')

    port = get_setting('rpc', 'port')

    if hostname.find(".r1.") != -1:
        hostname = hostname.replace(".r1.", ".r2.")
    elif hostname.find(".r2.") != -1:
        hostname = hostname.replace(".r2.", ".r1.")

    console.info("get_web3_provider, RPC hostname => " + hostname)
    
    timeout = 30
    
    #if timeout is None:
    #    try:
    #        timeout = int(get_setting('rpc', 'timeout'))
    #    except KeyError:
    #        timeout = 15 # default timeout is 15 seconds

    if protocol == 'ws' or protocol == 'wss':
        provider = WebsocketProvider(
            "%s://%s:%s" % (
                protocol,
                hostname,
                port),
            websocket_kwargs={'timeout':timeout}
        )
        provider.egs_timeout = timeout
        return Web3(provider)
    elif protocol == 'http' or protocol == 'https':
        provider = HTTPProvider(
            "%s://%s:%s" % (
                protocol,
                hostname,
                port),
            request_kwargs={'timeout':timeout}
        )
        provider.egs_timeout = timeout
        return Web3(provider)
    elif protocol == 'ipc':
        provider = IPCProvider(
            hostname,
            timeout=timeout
        )
        provider.egs_timeout = timeout
        return Web3(provider)
    else:
        raise Exception("Can't set web3 provider type %s" % str(protocol))
コード例 #2
0
def get_web3_provider(protocol=None, hostname=None, port=None, timeout=None):
    """Get Web3 instance. Supports websocket, http, ipc."""
    if protocol is None:
        protocol = get_setting('rpc', 'protocol')
    if hostname is None:
        hostname = get_setting('rpc', 'hostname')
    if port is None:
        port = get_setting('rpc', 'port')
    if timeout is None:
        try:
            timeout = int(get_setting('rpc', 'timeout'))
        except KeyError:
            timeout = 15 # default timeout is 15 seconds

    if protocol == 'ws' or protocol == 'wss':
        provider = WebsocketProvider(
            "%s://%s:%s" % (
                protocol,
                hostname,
                port),
            websocket_kwargs={'timeout':timeout}
        )
        provider.egs_timeout = timeout
        return Web3(provider)
    elif protocol == 'http' or protocol == 'https':
        provider = HTTPProvider(
            "%s://%s:%s" % (
                protocol,
                hostname,
                port),
            request_kwargs={'timeout':timeout}
        )
        provider.egs_timeout = timeout
        return Web3(provider)
    elif protocol == 'ipc':
        provider = IPCProvider(
            hostname,
            timeout=timeout
        )
        provider.egs_timeout = timeout
        return Web3(provider)
    else:
        raise Exception("Can't set web3 provider type %s" % str(protocol))