Blockchain nxt区块链利益实施证明

Blockchain nxt区块链利益实施证明,blockchain,nxt,Blockchain,Nxt,我正在研究nxt区块链的利益证明实现的源代码。nxt白皮书声称它实施了股权证明:。然而,我发现他们的来源与白皮书中所述不符。在CurrencyMinting.java文件中,目标通过以下方法设置: public static BigInteger getNumericTarget(int min, int max, long units, long currentMintableSupply, long totalMintableSupply) { if (min < 1

我正在研究nxt区块链的利益证明实现的源代码。nxt白皮书声称它实施了股权证明:。然而,我发现他们的来源与白皮书中所述不符。在CurrencyMinting.java文件中,目标通过以下方法设置:

public static BigInteger getNumericTarget(int min, int max, long units, long currentMintableSupply, long totalMintableSupply) {
        if (min < 1 || max > 255) {
            throw new IllegalArgumentException(String.format("Min: %d, Max: %d, allowed range is 1 to 255", min, max));
        }
        int exp = (int)(256 - min - ((max - min) * currentMintableSupply) / totalMintableSupply);
        return BigInteger.valueOf(2).pow(exp).subtract(BigInteger.ONE).divide(BigInteger.valueOf(units));
    }
public static biginger getNumericTarget(int-min、int-max、long units、long-currentMintableSupply、long-totalMintableSupply){
如果(最小值<1 | |最大值>255){
抛出新的IllegalArgumentException(String.format(“最小:%d,最大:%d,允许的范围为1到255”,最小,最大));
}
int exp=(int)(256-最小值-((最大值-最小值)*当前最小值供应)/总最小值供应);
返回biginger.valueOf(2).pow(exp).subtract(biginger.ONE).divide(biginger.valueOf(units));
}
我对使用divide()而不是multiple()感到非常困惑。这里的单位是指矿工拥有的硬币数量。难道你拥有的硬币越多,你的目标价值就越小(这意味着你越难达到目标)

此外,白皮书声称,目标是以下三个参数的产物:基本目标、自最后一次拦截以来经过的时间(以秒为单位)以及拥有的硬币。在上述方法中,设定目标时既不使用基本目标,也不使用经过的时间,拥有的硬币放入分母中

谢谢