def test_logging(node_factory): # Since we redirect, node.start() will fail: do manually. l1 = node_factory.get_node(options={'log-file': 'logfile'}, may_fail=True, start=False) logpath = os.path.join(l1.daemon.lightning_dir, 'logfile') logpath_moved = os.path.join(l1.daemon.lightning_dir, 'logfile_moved') l1.daemon.rpcproxy.start() l1.daemon.opts['bitcoin-rpcport'] = l1.daemon.rpcproxy.rpcport TailableProc.start(l1.daemon) wait_for(lambda: os.path.exists(logpath)) shutil.move(logpath, logpath_moved) l1.daemon.proc.send_signal(signal.SIGHUP) wait_for(lambda: os.path.exists(logpath_moved)) wait_for(lambda: os.path.exists(logpath)) log1 = open(logpath_moved).readlines() assert log1[-1].endswith("Ending log due to SIGHUP\n") def check_new_log(): log2 = open(logpath).readlines() return len(log2) > 0 and log2[0].endswith( "Started log due to SIGHUP\n") wait_for(check_new_log)
def __init__(self, lightning_dir, bitcoin_dir, port): TailableProc.__init__(self, lightning_dir, 'lnd({})'.format(port)) self.lightning_dir = lightning_dir self.bitcoin_dir = bitcoin_dir self.port = port self.rpc_port = str(10000 + port) self.prefix = 'lnd' self.cmd_line = [ 'bin/lnd', '--peerport={}'.format(self.port), '--rpcport={}'.format(self.rpc_port), '--bitcoin.active', '--datadir={}'.format(lightning_dir), '--debuglevel=trace', '--bitcoin.rpcuser=rpcuser', '--bitcoin.rpcpass=rpcpass', '--configfile={}'.format(os.path.join(lightning_dir, 'lnd.conf')), '--bitcoin.regtest', '--no-macaroons', '--nobootstrap', '--noencryptwallet', ] if not os.path.exists(lightning_dir): os.makedirs(lightning_dir) with open(os.path.join(lightning_dir, "lnd.conf"), "w") as f: f.write("""[Application Options]\n""")
def __init__(self, lightning_dir, bitcoind, port=9735): TailableProc.__init__(self, lightning_dir) self.lightning_dir = lightning_dir self.port = port self.bitcoind = bitcoind self.cmd_line = [ 'bin/lightningd', '--bitcoin-datadir={}'.format(self.bitcoind.bitcoin_dir), '--lightning-dir={}'.format(lightning_dir), '--addr=127.0.0.1:{}'.format(port), '--dev-broadcast-interval=500', '--dev-bitcoind-poll=1', '--plugin-dir=src/lightning/plugins', # The following are temporary workarounds '--bitcoin-rpcport={}'.format(self.bitcoind.rpcport), '--bitcoin-rpcuser=rpcuser', '--bitcoin-rpcpassword=rpcpass', ] self.cmd_line += [ "--{}={}".format(k, v) for k, v in LIGHTNINGD_CONFIG.items() ] self.prefix = 'lightningd' if not os.path.exists(lightning_dir): os.makedirs(lightning_dir)
def start(self): TailableProc.start(self) self.wait_for_log("server listening on") self.wait_for_log("Done catching up block hashes") time.sleep(5) logging.info("LND started (pid: {})".format(self.proc.pid))
def __init__(self, lightning_dir, bitcoin_dir, port): TailableProc.__init__(self, lightning_dir, "eclair({})".format(port)) self.lightning_dir = lightning_dir self.bitcoin_dir = bitcoin_dir self.port = port self.rpc_port = str(10000 + port) self.prefix = 'eclair' self.cmd_line = [ '/usr/lib/jvm/java-8-openjdk-amd64/bin/java', '-Declair.datadir={}'.format(lightning_dir), '-Declair.printToConsole=true', '-jar', 'bin/eclair.jar' ] if not os.path.exists(lightning_dir): os.makedirs(lightning_dir) # Adapt the config and store it config = open( 'src/eclair/eclair-core/src/main/resources/reference.conf').read() replacements = [ ('9735', str(port)), ('18332', str(28332)), ('8080', str(self.rpc_port)), ('"test"', '"regtest"'), ('"foo"', '"rpcuser"'), ('"bar"', '"rpcpass"'), ] for old, new in replacements: config = config.replace(old, new) with open(os.path.join(lightning_dir, "eclair.conf"), "w") as f: f.write(config)
def start(self): TailableProc.start(self) self.wait_for_log("connected to tcp://127.0.0.1:") # And let's also remember the address exp = 'initial wallet address=([a-zA-Z0-9]+)' addr_line = self.wait_for_log(exp) self.addr = re.search(exp, addr_line).group(1) self.logger.info("Eclair started (pid: {})".format(self.proc.pid))
def __init__(self, lightning_dir, bitcoind, port): TailableProc.__init__(self, lightning_dir, "eclair({})".format(port)) self.lightning_dir = lightning_dir self.bitcoind = bitcoind self.port = port self.rpc_port = str(reserve()) self.prefix = 'eclair' self.cmd_line = [ 'java', '-Declair.datadir={}'.format(lightning_dir), '-Dlogback.configurationFile={}'.format( os.path.join(lightning_dir, 'logback.xml')), '-jar', 'bin/eclair.jar' ] if not os.path.exists(lightning_dir): os.makedirs(lightning_dir) shutil.copyfile('logback.xml', os.path.join(lightning_dir, "logback.xml")) # Adapt the config and store it with open('src/eclair/eclair-core/src/main/resources/reference.conf' ) as f: config = f.read() replacements = [ ('"testnet"', '"regtest"'), ('enabled = false // disabled by default for security reasons', 'enabled = true'), ('password = ""', 'password = "******"'), ('9735', str(port)), ('18332', str(self.bitcoind.rpcport)), ('8080', str(self.rpc_port)), ('"test"', '"regtest"'), ('"foo"', '"rpcuser"'), ('"bar"', '"rpcpass"'), ('zmqblock = "tcp://127.0.0.1:29000"', 'zmqblock = "tcp://127.0.0.1:{}"'.format( self.bitcoind.zmqpubrawblock_port)), ('zmqtx = "tcp://127.0.0.1:29000"', 'zmqtx = "tcp://127.0.0.1:{}"'.format( self.bitcoind.zmqpubrawtx_port)), ('use-old-api = false', 'use-old-api = true'), ] for old, new in replacements: config = config.replace(old, new) with open(os.path.join(lightning_dir, "eclair.conf"), "w") as f: f.write(config)
def __init__(self, lightning_dir, bitcoin_dir, port=9735): TailableProc.__init__(self, lightning_dir, 'ptarmd({}).format(port)') self.lightning_dir = lightning_dir self.port = port self.cmd_line = [ 'bin/ptarmd', '-d', lightning_dir, '-p', str(port), '-a' '127.0.0.1', '-c', '{}/bitcoin.conf'.format(bitcoin_dir), '--rpcport', str(port+1234), ] self.prefix = 'ptarmd' if not os.path.exists(lightning_dir): os.makedirs(lightning_dir)
def __init__(self, lightning_dir, bitcoin_dir, port=9735): TailableProc.__init__(self, lightning_dir) self.lightning_dir = lightning_dir self.port = port self.cmd_line = [ 'bin/lightningd', '--bitcoin-datadir={}'.format(bitcoin_dir), '--lightning-dir={}'.format(lightning_dir), '--port={}'.format(port), '--network=regtest', '--dev-broadcast-interval=1000', ] self.cmd_line += [ "--{}={}".format(k, v) for k, v in LIGHTNINGD_CONFIG.items() ] self.prefix = 'lightningd' if not os.path.exists(lightning_dir): os.makedirs(lightning_dir)
def stop(self): TailableProc.stop(self) logging.info("LightningD stopped")
def start(self): TailableProc.start(self) self.wait_for_log("Server started with public key") time.sleep(5) logging.info("LightningD started")
def stop(self): TailableProc.stop(self) logging.info("PtarmD stopped")
def start(self): TailableProc.start(self) self.wait_for_log("start bitcoin testnet/regtest", offset=100) time.sleep(3) logging.info("PtarmD started")
def start(self): TailableProc.start(self) self.wait_for_log("start ptarmigan node.", offset=100) time.sleep(3) logging.info("PtarmD started")
def start(self): TailableProc.start(self) self.wait_for_log("Creating IPv6 listener on port") logging.info("LightningD started")
def start(self): TailableProc.start(self) self.wait_for_log("Hello world") logging.info("LightningD started")