URI: 
       tImplement server.features - obelisk - Electrum server using libbitcoin as its backend
  HTML git clone https://git.parazyd.org/obelisk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 7cecf2f6906774f4ecaa234516b4f9f769c10113
   DIR parent ca12144acb227a3d27bdf8d54d3c49aac64df114
  HTML Author: parazyd <parazyd@dyne.org>
       Date:   Wed,  7 Apr 2021 20:52:10 +0200
       
       Implement server.features
       
       Diffstat:
         M electrumobelisk/protocol.py         |      20 +++++++++++++++++++-
         M obelisk.py                          |       6 +++++-
       
       2 files changed, 24 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/electrumobelisk/protocol.py b/electrumobelisk/protocol.py
       t@@ -330,7 +330,25 @@ class ElectrumProtocol(asyncio.Protocol):  # pylint: disable=R0904,R0902
                return {"result": DONATION_ADDR}
        
            async def server_features(self, query):
       -        return
       +        cfg = self.server_cfg
       +        return {
       +            "result": {
       +                "genesis_hash": self.genesis,
       +                "hosts": {
       +                    cfg["server_hostname"]: {
       +                        "tcp_port":
       +                        None if cfg["using_tls"] else cfg["server_port"],
       +                        "ssl_port":
       +                        cfg["server_port"] if cfg["using_tls"] else None,
       +                    },
       +                },
       +                "protocol_max": SERVER_PROTO_MAX,
       +                "protocol_min": SERVER_PROTO_MIN,
       +                "pruning": None,
       +                "server_version": f"obelisk {VERSION}",
       +                "hash_function": "sha256",
       +            }
       +        }
        
            async def server_peers_subscribe(self, query):  # pylint: disable=W0613
                # Help wanted
   DIR diff --git a/obelisk.py b/obelisk.py
       t@@ -75,8 +75,9 @@ async def run_electrum_server(config, chain):
            log = getLogger("obelisk")
            host = config.get("obelisk", "host")
            port = int(config.get("obelisk", "port"))
       +    usetls = config.getboolean("obelisk", "usetls", fallback=False)
        
       -    if config.getboolean("obelisk", "usetls", fallback=True):
       +    if usetls:
                certfile, keyfile = get_certs(config)
                log.debug("Using TLS with keypair: %s , %s", certfile, keyfile)
        
       t@@ -95,6 +96,9 @@ async def run_electrum_server(config, chain):
            server_cfg = {}
            server_cfg["torhostport"] = (tor_host, tor_port)
            server_cfg["broadcast_method"] = broadcast_method
       +    server_cfg["server_hostname"] = "localhost"  # TODO: <- should be public?
       +    server_cfg["server_port"] = port
       +    server_cfg["using_tls"] = usetls
        
            protocol = ElectrumProtocol(log, chain, endpoints, server_cfg)