fee estimate should be disabled with blocksonly mode #16840

issue rustyrussell openend this issue on September 10, 2019
  1. rustyrussell commented at 0:18 am on September 10, 2019: contributor

    A c-lightning user was having problems in that their fee estimates were so far out of sync with their peers that channels were being closed. Turns out he had ‘blockonly’ in his config.

    Expected behavior

    estimatesmartfee would fail.

    Actual behavior

    estimatesmartfee gives a result, but it doesn’t seem linked to reality. Perhaps from before blocksonly was enabled?

  2. rustyrussell added the label Bug on Sep 10, 2019
  3. MarcoFalke added the label TX fees and policy on Sep 10, 2019
  4. MarcoFalke commented at 11:47 am on September 10, 2019: member
    It should probably also fail if the node didn’t get any txs from the network (e.g. -connect=$(SOME_NO_TX_RELAY_NODE)). Not sure if this is possible with the current fee estimator design. @morcos any thoughts on this?
  5. morcos commented at 12:06 pm on September 10, 2019: member

    I haven’t looked at this in a while, but I thought the behavior was that if you had relatively recent estimates (which would only be the case if you’d been receiving transactions and your node was in sync) then estimatesmartfee would continue reporting those estimates for some period of time until the data was old enough that they were stale. This would happen naturally since the estimates use a exponentially decaying moving average and would happen quicker for estimates for shorter confirmation times. It’s possible it doesn’t work quite like this, or this doesn’t aggressively enough disable estimates, but I don’t know without further investigation.

    For a non-lightning use case, the slightly stale estimates are still designed to be good enough to be usable for getting transactions confirmed and I think make more sense than having no estimates. I’d never considered a design goal of trying to keep estimates in sync with peers.

  6. JavierRSobrino commented at 12:22 pm on September 10, 2019: none

    I was that user. :)

    What I recommend is that if blocksonly is enabled, the algorithm should take in consideration only the fees already paid in the last blocks and discard the ones of the mempool, because obviusly there is no mempool.

  7. morcos commented at 2:12 pm on September 10, 2019: member
    You didn’t by any chance have debugging on? I’d be curious what the lines that start with “FeeEst:” or “Blockpolicy estimates” look like around the time you got the bad estimates. Also, were your estimates too high or too low? If there are no transactions in the mempool, the estimates won’t be considering transactions in the mempool, the problem is they can’t consider transactions in the blocks if you are only seeing the transactions when they show up in the blocks, so the estimates are stuck from when you used to receive transactions.
  8. JavierRSobrino commented at 7:13 pm on September 10, 2019: none

    I have some logs in c-lightning, the last recent error is:

    CHANNELD_NORMAL:update_fee 5046 outside range 9345-186900

    for a normal channel close tx, the ID is 92f83af6a1459d449803824d724e1333cdb45a86b22e73ae27438aa7f897402d

    I think the channel closed on 3th September. The node was running in blocksonly mode for quite a few weeks.

  9. MarcoFalke closed this on Dec 7, 2020

  10. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-11-17 09:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me