mirror of https://github.com/zcash/zips.git
Specify the correct start and end heights for new funding streams
This commit is contained in:
parent
e2b5431316
commit
0e5701144a
34
zip-0207.rst
34
zip-0207.rst
|
@ -47,8 +47,16 @@ Specification
|
||||||
Definitions
|
Definitions
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
- ``PostBlossomHalvingInterval`` as-defined in [#zip-0208]_.
|
We use the following constants and functions defined in [#zip-0208]_:
|
||||||
|
|
||||||
|
- ``BlossomActivationHeight``
|
||||||
|
- ``PostBlossomHalvingInterval``
|
||||||
|
- ``Halving(height)``
|
||||||
|
|
||||||
|
We also define the following constants and functions:
|
||||||
|
|
||||||
- ``SlowStartShift`` as-defined in [#block-subsidy]_.
|
- ``SlowStartShift`` as-defined in [#block-subsidy]_.
|
||||||
|
- ``HeightForHalving(halving)``: Smallest ``height`` such that ``Halving(height) = halving``
|
||||||
|
|
||||||
Funding streams
|
Funding streams
|
||||||
---------------
|
---------------
|
||||||
|
@ -132,16 +140,15 @@ Stream definitions
|
||||||
The three consensus-defined funding streams described above each start at the Blossom activation height, and
|
The three consensus-defined funding streams described above each start at the Blossom activation height, and
|
||||||
end at the first block reward halving. They are defined as follows:
|
end at the first block reward halving. They are defined as follows:
|
||||||
|
|
||||||
======== =============== ================= ================== ===============================================
|
======== =============== ================= =========================== =======================
|
||||||
Stream Value numerator Value denominator Start height End height
|
Stream Value numerator Value denominator Start height End height
|
||||||
======== =============== ================= ================== ===============================================
|
======== =============== ================= =========================== =======================
|
||||||
ZECC EF 737 1000 Blossom activation ``SlowStartShift + PostBlossomHalvingInterval``
|
ZECC EF 737 1000 ``BlossomActivationHeight`` ``HeightForHalving(1)``
|
||||||
ZF E 144 1000 Blossom activation ``SlowStartShift + PostBlossomHalvingInterval``
|
ZF E 144 1000 ``BlossomActivationHeight`` ``HeightForHalving(1)``
|
||||||
ZECC SR 119 1000 Blossom activation ``SlowStartShift + PostBlossomHalvingInterval``
|
ZECC SR 119 1000 ``BlossomActivationHeight`` ``HeightForHalving(1)``
|
||||||
======== =============== ================= ================== ===============================================
|
======== =============== ================= =========================== =======================
|
||||||
|
|
||||||
- To-do: specify the correct values.
|
- To-do: specify the correct values.
|
||||||
- To-do: specify the correct start height.
|
|
||||||
|
|
||||||
The sets of recipient addresses are defined as follows:
|
The sets of recipient addresses are defined as follows:
|
||||||
|
|
||||||
|
@ -196,8 +203,7 @@ Example implementation
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZECC_EF].valueDenominator = 1000;
|
consensus.vFundingPeriods[Consensus::FS_ZECC_EF].valueDenominator = 1000;
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZECC_EF].startHeight =
|
consensus.vFundingPeriods[Consensus::FS_ZECC_EF].startHeight =
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_BLOSSOM].nActivationHeight;
|
consensus.vUpgrades[Consensus::UPGRADE_BLOSSOM].nActivationHeight;
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZECC_EF].endHeight =
|
consensus.vFundingPeriods[Consensus::FS_ZECC_EF].endHeight = HeightForHalving(consensus, 1);
|
||||||
(consensus.nSubsidySlowStartInterval / 2) + consensus.nSubsidyPostBlossomHalvingInterval;
|
|
||||||
assert(consensus.vFundingPeriods[Consensus::FS_ZECC_EF].valueNumerator <
|
assert(consensus.vFundingPeriods[Consensus::FS_ZECC_EF].valueNumerator <
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZECC_EF].valueDenominator);
|
consensus.vFundingPeriods[Consensus::FS_ZECC_EF].valueDenominator);
|
||||||
assert(consensus.vFundingPeriods[Consensus::FS_ZECC_EF].startHeight <
|
assert(consensus.vFundingPeriods[Consensus::FS_ZECC_EF].startHeight <
|
||||||
|
@ -208,8 +214,7 @@ Example implementation
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZF_E].valueDenominator = 1000;
|
consensus.vFundingPeriods[Consensus::FS_ZF_E].valueDenominator = 1000;
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZF_E].startHeight =
|
consensus.vFundingPeriods[Consensus::FS_ZF_E].startHeight =
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_BLOSSOM].nActivationHeight;
|
consensus.vUpgrades[Consensus::UPGRADE_BLOSSOM].nActivationHeight;
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZF_E].endHeight =
|
consensus.vFundingPeriods[Consensus::FS_ZF_E].endHeight = HeightForHalving(consensus, 1);
|
||||||
(consensus.nSubsidySlowStartInterval / 2) + consensus.nSubsidyPostBlossomHalvingInterval;
|
|
||||||
assert(consensus.vFundingPeriods[Consensus::FS_ZF_E].valueNumerator <
|
assert(consensus.vFundingPeriods[Consensus::FS_ZF_E].valueNumerator <
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZF_E].valueDenominator);
|
consensus.vFundingPeriods[Consensus::FS_ZF_E].valueDenominator);
|
||||||
assert(consensus.vFundingPeriods[Consensus::FS_ZF_E].startHeight <
|
assert(consensus.vFundingPeriods[Consensus::FS_ZF_E].startHeight <
|
||||||
|
@ -220,8 +225,7 @@ Example implementation
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZECC_SR].valueDenominator = 1000;
|
consensus.vFundingPeriods[Consensus::FS_ZECC_SR].valueDenominator = 1000;
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZECC_SR].startHeight =
|
consensus.vFundingPeriods[Consensus::FS_ZECC_SR].startHeight =
|
||||||
consensus.vUpgrades[Consensus::UPGRADE_BLOSSOM].nActivationHeight;
|
consensus.vUpgrades[Consensus::UPGRADE_BLOSSOM].nActivationHeight;
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZECC_SR].endHeight =
|
consensus.vFundingPeriods[Consensus::FS_ZECC_SR].endHeight = HeightForHalving(consensus, 1);
|
||||||
(consensus.nSubsidySlowStartInterval / 2) + consensus.nSubsidyPostBlossomHalvingInterval;
|
|
||||||
assert(consensus.vFundingPeriods[Consensus::FS_ZECC_SR].valueNumerator <
|
assert(consensus.vFundingPeriods[Consensus::FS_ZECC_SR].valueNumerator <
|
||||||
consensus.vFundingPeriods[Consensus::FS_ZECC_SR].valueDenominator);
|
consensus.vFundingPeriods[Consensus::FS_ZECC_SR].valueDenominator);
|
||||||
assert(consensus.vFundingPeriods[Consensus::FS_ZECC_SR].startHeight <
|
assert(consensus.vFundingPeriods[Consensus::FS_ZECC_SR].startHeight <
|
||||||
|
|
Loading…
Reference in New Issue