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))
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))