[bisq-network/projects] Migrate Bisq pricenodes from earn.com fee estimation API to our own self-hosted mempool fee estimation API service (#27)

Chris Beams notifications at github.com
Wed May 6 06:48:28 UTC 2020


@wiz, I see that you created https://github.com/bisq-network/proposals/issues/219 to establish a new Mempool API Operator role, but before we go ahead with that, I'd like to further vet this proposal.

First, I want to address the risk of querying N fee estimation services vs 1. Yes, this is good for decentralization, but it also introduces the risk of getting divergent fee estimates from different mempool.space nodes. Each service is talking to its own full node with its own mempool, and for a variety of reasons may report different estimates. So long as they are within a reasonable range of one another, that's fine, but if we start getting minority reports that are very high or very low, we will have a more difficult time tracking down and solving these problems. Imagine having to analyze users' logs after the fact to see which pricenode (and therefore which mempool.space node) they were talking to.

To mitigate this risk, I would suggest writing a simple script that periodically polls N different (existing) mempool.space services to see how their fee estimates diverge over time. Getting the logs from running this for a week or so would give us a sense what to expect. Ideally, these mempool services would be running against bitcoin nodes that use the same bitcoin.conf.

Going back to the suggestion to create a mempool operator role, I'd actually suggest that running such a service and its backing fullnode become part of the normal duties of running a pricenode. I don't see the advantage in having a separate group of operators manage mempool nodes if the only thing we use them for is a backend for our pricenodes. Indeed, we would want all those mempool and bitcoind nodes to be configured in precisely the same way to avoid divergent results as much as possible.

If we're agreed that this would be the way to go, then we should ask all @bisq-network/pricenode-operators if they're willing to run these services, and if they are, then they should just set them up now, and we can run the script I talked about above against them to make sure that divergent results aren't going to be a problem. When we've de-risked that, then we could go ahead with the implementation.

Which brings us to the tasks section, and what's missing from it. As mentioned in https://github.com/bisq-network/bisq/pull/4235#pullrequestreview-405917893, the pricenode code will need to be modified to allow for configuring a specific mempool.space backend. Indeed this will be a required argument, as there is no one, correct fallback value.

So, to summarize:

- [ ] we should do whatever makes sense to de-risk running against N fee estimation backends vs 1. I've suggested how we can do this, but other ideas / arguments are welcome.
- [ ] a task should be added to capture necessary modifications to the pricenode to accommodate this change
- [ ] a task should be added to update pricenode operator role documentation to include running a mempool.space node and a bitcoin core node
- [ ] a task should be added to define a common bitcoin.conf for that bitcoin core node (and a common mempool.space config if appropriate)
- [ ] a task should be added to, before making any switch in production, poll all pricenode operators' mempool backends over a period of time to ensure they return fee estimate values in a tight (enough) band with one another. (again, this is based on my suggestion for how to de-risk moving to N fee estimation backends)


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/projects/issues/27#issuecomment-624472907
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20200505/7f383a5b/attachment-0001.html>


More information about the bisq-github mailing list