<p></p>
<blockquote>
<p>querying N fee estimation services introduces the risk of getting divergent fee estimates from different mempool API nodes</p>
</blockquote>
<p>You're right, and this is actually the reason why we need to separate pricenodes from mempool nodes - all pricenodes should query all mempool nodes, and average the returned values. The more mempool nodes we have, the more they will average out in the event one is off for some reason and converge on consensus.</p>
<p>For example, take the following script:</p>
<pre><code>#!/usr/bin/env zsh
pricenodes=()
pricenodes+=xc3nh4juf2hshy7e # emzy
pricenodes+=ceaanhbvluug4we6 # mrosseel
pricenodes+=44mgyoe2b6oqiytt # devinbileck
pricenodes+=62nvujg5iou3vu3i # alexej996
#pricenodes+=gztmprecgqjq64zh # wiz

for i in $pricenodes
do
        echo -n "$i - suggested fees: "
        torsocks curl -s http://$i.onion/getFees | jq .dataMap.btcTxFee
done
</code></pre>
<p>It currently outputs the following suggested fees:</p>
<pre><code>% ./pricenode-check
xc3nh4juf2hshy7e - suggested fees: 16
ceaanhbvluug4we6 - suggested fees: 16
44mgyoe2b6oqiytt - suggested fees: 16
62nvujg5iou3vu3i - suggested fees: 16
</code></pre>
<p>This weighted average, combined a with good monitoring system that runs the same script and sends alerts for any deviations to us should be sufficient enough IMO. I can add this service check to my monitoring system which will graph the results over time. I can also set it to graph the average deviation from mean of each mempool node.</p>
<blockquote>
<p>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</p>
</blockquote>
<p>I'd prefer having it separate for the simple reason that not all pricenode operators will run mempool nodes, and vice-versa. For example, it's easy to have existing bitcoin node operators also become mempool node operators, and some may do this, but it is not so easy for existing pricenode operators to also become mempool node operators because they would need to setup a bitcoin node for this if they don't already have one.</p>
<blockquote>
<p>the pricenode code will need to be modified to allow for configuring a specific mempool.space backend</p>
</blockquote>
<p>Instead of doing it that way, I'd like to have a hard-coded list of our 5 nodes, similar to how Bisq nodes have a hard-coded list of seednodes and pricenodes and bitcoin nodes, so that every pricenode will query all mempool nodes and average the results together. I've assigned this task to <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/cd2357/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cd2357">@cd2357</a> and he is working on it now. We will document it along with the other github issues you want created.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/projects/issues/27#issuecomment-624768563">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNQJZEKSBG4ATJ3GJP3RQGJNHANCNFSM4LGEVL3Q">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNWS53ACCH6EKVX6TBLRQGJNHA5CNFSM4LGEVL32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEU6TMMY.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/projects/issues/27#issuecomment-624768563",
"url": "https://github.com/bisq-network/projects/issues/27#issuecomment-624768563",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>