Lnd: cannot unmarshal object into Go struct field GetBlockChainInfoResult.softforks

Created on 17 Aug 2019  路  9Comments  路  Source: lightningnetwork/lnd

Background

Using the latest (unreleased) versions of bitcoind and lnd I get the following error after unlocking the wallet.

Unable to create chain control: unable to retrieve best block: json: cannot unmarshal object into Go struct field GetBlockChainInfoResult.softforks of type []*btcjson.SoftForkDescription

Your environment

  • version of lnd - v0.7.1-beta-rc2 and master commit 80c675
  • which operating system (uname -a on *Nix) linux 4.15.0-58-generic #64-Ubuntu
  • version of btcd, bitcoind, or other backend Bitcoin Core Daemon version v0.18.99.0-7a960ba77
  • any other relevant environment details

Steps to reproduce

Start up bitcoind, start up lnd, lnd unlock.

Expected behaviour

That lnd continues to run.

Actual behaviour

Get error and lnd quits.

bitcoind json-rpc

Most helpful comment

This is probably caused by https://github.com/bitcoin/bitcoin/pull/16060 which changes the softforks field:

"softforks": {
    "bip34": {
      "type": "buried",
      "active": true,
      "height": 227931
    },
    "bip66": {
      "type": "buried",
      "active": true,
      "height": 363725
    },
    "bip65": {
      "type": "buried",
      "active": true,
      "height": 388381
    },
    "csv": {
      "type": "buried",
      "active": true,
      "height": 419328
    },
    "segwit": {
      "type": "buried",
      "active": true,
      "height": 481824
    }
  },

0.19 release is expected in early November: https://github.com/bitcoin/bitcoin/issues/15940

v0.18.1 doesn't have this issue

All 9 comments

This is more or less expected, as we only support bitcoind 0.18.0 atm.

This is probably caused by https://github.com/bitcoin/bitcoin/pull/16060 which changes the softforks field:

"softforks": {
    "bip34": {
      "type": "buried",
      "active": true,
      "height": 227931
    },
    "bip66": {
      "type": "buried",
      "active": true,
      "height": 363725
    },
    "bip65": {
      "type": "buried",
      "active": true,
      "height": 388381
    },
    "csv": {
      "type": "buried",
      "active": true,
      "height": 419328
    },
    "segwit": {
      "type": "buried",
      "active": true,
      "height": 481824
    }
  },

0.19 release is expected in early November: https://github.com/bitcoin/bitcoin/issues/15940

v0.18.1 doesn't have this issue

This is more or less expected, as we only support bitcoind 0.18.0 atm.

This is killing every node (like mine) that is using current git version of Bitcoin Core.
Looks like lnd is calling btcd from btcsuite to handle Bitcoin Core calls?

In fact, do even NEED to check for softforks to run node?

@rav3nPL it's easier to just tweak the parser (and continue to ignore the result?) than to ponder such profound questions :-)

Yes, but I'm not familiar to GO and failed miserably trying to find place to comment to make it work again :P

@Rav3nPL

Yes, but I'm not familiar to GO and failed miserably trying to find place to comment to make it work again :P

There's no Go in bitcoind.

In fact, do even NEED to check for softforks to run node?

I don't think so. All you need is when you build bitcoind, checkout v0.18.1 like this:

git clone https://github.com/bitcoin/bitcoin
cd bitcoin
git checkout v0.18.1

@molxyz I think he was talking about fixing Lnd to work with the upcoming Bitcoin Core release.

@Sjors Ah i see, thanks for letting me know. I would just leave it up to the devs, there's no need to agonize over it because bitcoin master should not be used for LND anyways even if it doesn't have this issue.

Was this page helpful?
0 / 5 - 0 ratings