Blockstream / greenlight

Build apps using self-custodial lightning nodes in the cloud
https://blockstream.github.io/greenlight/getting-started/
MIT License
109 stars 27 forks source link

Upgraded greenlight core lightning version to 24.02.1. #408

Closed Randy808 closed 2 months ago

Randy808 commented 4 months ago

Rebased and made this branch into a draft pull request so it's ready to merge when we've upgraded the cln version on our servers

nepet commented 4 months ago

Also, an update of the signer version is needed to upgrade the node to v24.02. Can be found in signer/mod.rs : VERSION. This is called on maybe_upgrade.

cdecker commented 3 months ago

Rebased on top of master

nepet commented 3 months ago

libs/gl-testing/node.py class NodeProcess is missing the --developer flag on versions >= 24.02. Adding the following snippets fixes this for the time being until pyln-testing supports multiple versions.

#libs/gl-testing/gltesting/utils.py

def version_to_int(nv: NodeVersion):
        # Remove the initial 'v'
        version_string = nv.name.lstrip('v')

        # Split the version string into parts by '.' and strip any non-numeric suffix
        parts = version_string.split('.')
        numeric_parts = []

        for part in parts:
            numeric_part = ''.join(filter(str.isdigit, part))
            numeric_parts.append(numeric_part.zfill(2))  # Zero-fill to ensure 2 digits per part

        # Ensure there are exactly 3 parts, padding with '00' if necessary
        while len(numeric_parts) < 3:
            numeric_parts.append('00')

        # Join the parts into a single string
        parsed_version = ''.join(numeric_parts[:3])

        return int(parsed_version)
#libs/gl-testing/gltesting/node.py

class NodeVersion(TailableProcess):
...

   self.cmd_line = [
            str(self.executable),
            f'--lightning-dir={self.directory}',
            f'--network={network}',
            '--log-level=debug',
            '--bitcoin-rpcuser=rpcuser',
            '--bitcoin-rpcpassword=rpcpass',
            f'--bitcoin-rpcconnect=127.0.0.1:{self.bitcoind.rpcport}',
            "--disable-plugin=commando",
            '--rescan=1',
            "--log-timestamps=false",
            "--cltv-final=6",
            f"--addr=127.0.0.1:{self.p2p_port}",
            # Stock `cln-grpc` disabled in favor of `gl-plugin`
            '--disable-plugin=cln-grpc',
            f'--subdaemon=hsmd:{signerproxy_path}',
            f'--important-plugin={plugin_path}',
            '--dev-bitcoind-poll=5',
            '--dev-fast-gossip',
            '--offline',
            '--experimental-anchors',
        ]

        if version_to_int(self.version) >= 240200:
            self.cmd_line.append('--developer');

...

This reduces the checks that fail to

sendcustommsg changed on pyln-client (no keyword args):

some signer errors: - ValueError: Some signer reported an error: [msg: "resolver error:

Other tests are good!

cdecker commented 3 months ago

Ok, I'm going to try and fix this up asap, so we have the new version unlocked :+1: