示例#1
0
        public static double AverageShareOfBlockRewardPerSpanFast(AverageShareOfBlockRewardDT data, TimeBlock timeBlock)
        {
            // normalize into minerHashRateAsAPercentOfTotal the MinerHashRate / NetworkHashRate using the TimeBlock of the Miner
            HashRate minerHashRateAsAPercentOfTotal = default;// ToDo: Fix this calculation data.MinerHashRate / data.NetworkHashRate;
            // normalize the BlockRewardPerSpan to the same span the Miner HashRate span
            //ToDo Fix this calculation
            // normalize the BlockRewardPerSpan to the same span the network HashRate span
            double normalizedBlockCreationSpan = data.AverageBlockCreationSpan.Duration.Ticks /
                                                 data.NetworkHashRate.HashRateTimeSpan.Duration().Ticks;
            double normalizedBlockRewardPerSpan = data.BlockRewardPerBlock /
                                                  (data.AverageBlockCreationSpan.Duration.Ticks *
                                                   normalizedBlockCreationSpan);

            // The number of block rewards found, on average, within a given TimeBlock, is number of blocks in the span, times the fraction of the NetworkHashRate contributed by the miner
            return(normalizedBlockRewardPerSpan *
                   (minerHashRateAsAPercentOfTotal.HashRatePerTimeSpan /
                    data.NetworkHashRate.HashRatePerTimeSpan));
        }
示例#2
0
 public static double AverageShareOfBlockRewardPerSpanSafe(AverageShareOfBlockRewardDT data, TimeBlock timeSpan)
 {
     // ToDo: Add parameter checking
     return(AverageShareOfBlockRewardPerSpanFast(data, timeSpan));
 }