mirror of https://github.com/zcash/zips.git
Explain the use of max(1, tx.fee), and write weight_ratio as math.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
parent
fc56098315
commit
a9ef048527
|
@ -285,7 +285,9 @@ Pull-Request: <<a href="https://github.com/zcash/zips/pull/631">https://githu
|
|||
and add the transaction to the set of candidate transactions.</li>
|
||||
<li>Repeat while there is any candidate transaction that pays at least the conventional fee:
|
||||
<ol type="a">
|
||||
<li>Pick one of those transactions at random with probability in direct proportion to its weight ratio, and remove it from the set of candidate transactions. Let
|
||||
<li>Pick one of those transactions at random with probability in direct proportion to its
|
||||
<span class="math">\(weight\_ratio\)</span>
|
||||
, and remove it from the set of candidate transactions. Let
|
||||
<span class="math">\(B\)</span>
|
||||
be the block template with this transaction included.</li>
|
||||
<li>If
|
||||
|
@ -295,7 +297,9 @@ Pull-Request: <<a href="https://github.com/zcash/zips/pull/631">https://githu
|
|||
</li>
|
||||
<li>Repeat while there is any candidate transaction:
|
||||
<ol type="a">
|
||||
<li>Pick one of those transactions at random with probability in direct proportion to its weight ratio, and remove it from the set of candidate transactions. Let
|
||||
<li>Pick one of those transactions at random with probability in direct proportion to its
|
||||
<span class="math">\(weight\_ratio\)</span>
|
||||
, and remove it from the set of candidate transactions. Let
|
||||
<span class="math">\(B\)</span>
|
||||
be the block template with this transaction included.</li>
|
||||
<li>If
|
||||
|
@ -330,6 +334,17 @@ Pull-Request: <<a href="https://github.com/zcash/zips/pull/631">https://githu
|
|||
<p>The rationale for choosing
|
||||
<span class="math">\(weight\_ratio\_cap = 4\)</span>
|
||||
is as a compromise between not allowing any prioritization of transactions relative to those that pay the conventional fee, and allowing arbitrary prioritization based on ability to pay.</p>
|
||||
<p>Calculating
|
||||
<span class="math">\(tx.\!weight\_ratio\)</span>
|
||||
in terms of
|
||||
<span class="math">\(\mathsf{max}(1,\, tx.\!fee)\)</span>
|
||||
rather than just
|
||||
<span class="math">\(tx.\!fee\)</span>
|
||||
avoids needing to define "with probability in direct proportion to its
|
||||
<span class="math">\(weight\_ratio\!\)</span>
|
||||
" for the case where all remaining candidate transactions would have
|
||||
<span class="math">\(weight\_ratio = 0\!\)</span>
|
||||
.</p>
|
||||
</section>
|
||||
<section id="incentive-compatibility-for-miners"><h4><span class="section-heading">Incentive compatibility for miners</span><span class="section-anchor"> <a rel="bookmark" href="#incentive-compatibility-for-miners"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h4>
|
||||
<p>Miners have an incentive to make this change because:</p>
|
||||
|
|
17
zip-0317.rst
17
zip-0317.rst
|
@ -283,18 +283,18 @@ from a set of transactions in a node's mempool:
|
|||
conventional fee:
|
||||
|
||||
a. Pick one of those transactions at random with probability in direct
|
||||
proportion to its weight ratio, and remove it from the set of candidate
|
||||
transactions. Let :math:`B` be the block template with this transaction
|
||||
included.
|
||||
proportion to its :math:`weight\_ratio`, and remove it from the set of
|
||||
candidate transactions. Let :math:`B` be the block template with this
|
||||
transaction included.
|
||||
b. If :math:`B` would be within the block size limit and block sigop
|
||||
limit [#sigop-limit]_, add the transaction to the block template.
|
||||
|
||||
3. Repeat while there is any candidate transaction:
|
||||
|
||||
a. Pick one of those transactions at random with probability in direct
|
||||
proportion to its weight ratio, and remove it from the set of candidate
|
||||
transactions. Let :math:`B` be the block template with this transaction
|
||||
included.
|
||||
proportion to its :math:`weight\_ratio`, and remove it from the set of
|
||||
candidate transactions. Let :math:`B` be the block template with this
|
||||
transaction included.
|
||||
b. If :math:`B` would be within the block size limit and block sigop
|
||||
limit [#sigop-limit]_ and :math:`block\_unpaid\_actions(B) \leq block\_unpaid\_action\_limit\!`,
|
||||
add the transaction to the block template.
|
||||
|
@ -338,6 +338,11 @@ between not allowing any prioritization of transactions relative to those that
|
|||
pay the conventional fee, and allowing arbitrary prioritization based on ability
|
||||
to pay.
|
||||
|
||||
Calculating :math:`tx.\!weight\_ratio` in terms of :math:`\mathsf{max}(1,\, tx.\!fee)`
|
||||
rather than just :math:`tx.\!fee` avoids needing to define "with probability in direct
|
||||
proportion to its :math:`weight\_ratio\!`" for the case where all remaining candidate
|
||||
transactions would have :math:`weight\_ratio = 0\!`.
|
||||
|
||||
Incentive compatibility for miners
|
||||
''''''''''''''''''''''''''''''''''
|
||||
|
||||
|
|
Loading…
Reference in New Issue