Exemplo n.º 1
0
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)
Exemplo n.º 2
0
    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""")
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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))
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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))
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
    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)
Exemplo n.º 10
0
 def stop(self):
     TailableProc.stop(self)
     logging.info("LightningD stopped")
Exemplo n.º 11
0
 def start(self):
     TailableProc.start(self)
     self.wait_for_log("Server started with public key")
     time.sleep(5)
     logging.info("LightningD started")
Exemplo n.º 12
0
 def stop(self):
     TailableProc.stop(self)
     logging.info("PtarmD stopped")
Exemplo n.º 13
0
 def start(self):
     TailableProc.start(self)
     self.wait_for_log("start bitcoin testnet/regtest", offset=100)
     time.sleep(3)
     logging.info("PtarmD started")
Exemplo n.º 14
0
 def start(self):
     TailableProc.start(self)
     self.wait_for_log("start ptarmigan node.", offset=100)
     time.sleep(3)
     logging.info("PtarmD started")
Exemplo n.º 15
0
 def start(self):
     TailableProc.start(self)
     self.wait_for_log("Creating IPv6 listener on port")
     logging.info("LightningD started")
Exemplo n.º 16
0
 def start(self):
     TailableProc.start(self)
     self.wait_for_log("Hello world")
     logging.info("LightningD started")