ВведениеПри рыночной капитализации рейтинге 61
[1], монета "42"
[2] рекламируется как "Самая высокая Цена Crypto Монеты Ever"
[3]. Такая высокая цена объясняется редкостью монеты, которая рекламируется быть ограничена до 42 полных монет. К сожалению, это выглядит как 42 монет и их потомки (например, 8 монет) не довершение предложения денег на рекламируемом количестве монет. На самом деле, в отличие от большинства cryptocoins, денежная масса 42, как представляется, не ограничено.
деньги поколенияВ Bitcoin и большинство потомков денежная масса ограничена алгоритмический в функции, которая вычисляет горнодобывающую субсидию. Эта функция называется
GetBlockValue () в исходном файле "main.cpp", В Bitcoin кодовой базы, источник для этой функции:
int64_t GetBlockValue (интермедиат nHeight, int64_t nFees)
{
int64_t nSubsidy = 50 * МОНЕТКА;
// Субсидия разрезают пополам каждые 210000 блоков, которые будут происходить примерно каждые 4 года.
nSubsidy >>= (NHeight / Params () SubsidyHalvingInterval ().);
вернуться nSubsidy + nFees;
}
Здесь субсидии уменьшается вдвое для каждого "интервал сращивание", Измеряется в блоках (хотя расчет затемненные несколько ради эффективности вычислений). Это может быть доказано
[4] что если все сокращения вдвое интервалы имеют одинаковую длину (210000), то максимальное количество Bitcoin когда-либо будет получаться
21000000 = 2 * 50 * 210,000
42 (и, возможно, несколько потомков, такие, как использует
GetBlockValue () Функция как следующий, взятый из 42 базового кода:
int64 статический GetBlockValue (интермедиат nHeight, int64 nFees)
{
Int64 nSubsidy = 0,000042 * МОНЕТКА;
если (nHeight < 419)
{
nSubsidy = 0.0000001 * МОНЕТКА;
}
если (nHeight == 1)
{
nSubsidy = 0,42 * МОНЕТКА;
}
если (nHeight == 420) // яй его 420 🙂 Время для дыма
{
nSubsidy = 0,00042 * МОНЕТКА;
}
если (nHeight == 4242)
{
nSubsidy = 0,00042 * МОНЕТКА;
}
если (nHeight == 42424)
{
nSubsidy = 0,00042 * МОНЕТКА;
}
если (nHeight == 424242)
{
nSubsidy = 0,00042 * МОНЕТКА;
}
если (nHeight == 4242424)
{
nSubsidy = 0,00042 * МОНЕТКА;
}
вернуться nSubsidy + nFees;
}
За исключением нескольких случаев (блоков 1-420, 4242, 42424, ...) все блоки будут иметь такую же награду 0.000042 монеты (без учета сборов). Обратите внимание на то, что версия 42
GetBlockValue () не имеет интервала сокращения вдвое и не делает никаких попыток свернуть поколение монет на рекламируемом максимуме 42 монеты. Без геометрический уменьшающаяся стоимость вознаграждения, денежная масса будет расти до бесконечности.
42, максимальная рекламируемый монеты 42 монеты будет производиться до того блока 1000000 (42 / 0.000042), или в приблизительно 1.33 лет. Но существующий код 42 не предусматривает, чтобы остановить производство монет в то время.
MAX_MONEYОдна часть кода для большинства cryptocoins, которые могут ввести в заблуждение разработчиков является постоянным MAX_MONEY в исходном файле, называемом "main.h", MAX_MONEY имеет два применения в 42 коде: (1) в качестве возвращаемого значения сторожевого (который не будет обсуждаться) и (2), чтобы проверить некоторые значения транзакций, чтобы гарантировать, что они имеют смысл. Для последней цели, MAX_MONEY используется в встроенной функции под названием
MoneyRange () в "main.h" файл:
встроенный BOOL MoneyRange (Int64 nValue) {возвращение (nValue >= 0 && nValue <= MAX_MONEY); }
Эта функция просто проверяет, что значение не является отрицательным и не превышает MAX_MONEY. Нигде в 42 кодовом не MAX_MONEY сверяются суммами остатков всех счетов, что потребует вычислительно дорогостоящей задачи либо (1) вычисления каждого остатка на счет в блоке цепи, а затем добавить их, или (2) суммируя coinbase (деньги порождающие) сделки по всем блокам. Нарастающий итог денежной массы в явном виде не хранятся в блоке цепи.
MoneyRange () Функция используется несколько раз в 42 коде. Произвольный пример проверяя здравомыслие сделки, как и в
CTransaction :: CheckTransaction () функция в "main.cpp":
если (! MoneyRange (nValueOut))
вернуть DoS (100, ошибка ("CTransaction :: CheckTransaction (): txout общая вне диапазона"));
Нигде в код 42 делает
MoneyRange () используется для проверки общей денежной массы на 42.
Заметки:[1] http://coinmarketcap.com/[2] Мое имя экрана, tx42, не имеет никакого отношения к 42 монеты.
[3] http://www.42coin.org/[4] http://en.wikipedia.org/wiki/1/2_%2B_1/4_%2B_1/8_%2B_1/16_%2B_%E2%8B%AF