Bitcoin Forum
May 22, 2024, 09:30:05 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 [148] 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 ... 341 »
  Print  
Author Topic: NovaCoin (scrypt PoW + PoS hybrid) [self-mod]  (Read 744370 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
in100
Legendary
*
Offline Offline

Activity: 1200
Merit: 1021



View Profile
March 11, 2015, 09:33:40 PM
 #2941

пообщался с "создателем"... он рекомендовал не мудрствовать и использовать ту самую формулу, которая указана в вики... а всё что в итоге получается -- это частные моменты применения данной формулы...
То есть
Code:
nProofReward = min(10, CoinAge / 3650 * (difficulty / 0.03125) ^ (1/3))
Huh Huh Huh

Так основная проблема этой формулы - награда РАСТЁТ с ростом сложности Grin Неужели никто этого не видитHuh
И почему делится на 3650???

1BTCin1ooigFtHHD82qquqysdfxFZGdd8a  |  LTCin1oo9JhxcZu8ZK5HivqwvzAdQSaoua  |  4NVCin1ooAd2XKoEfEhBn6tYNUHhojf4QS
Блокчейн биткоина с его алгоритмом децентрализованного консенсуса на самом деле неэффективен, но неэффективность – это та цена, которую мы платим за свободу.© Andreas Antonopoulos
Balthazar (OP)
Legendary
*
Offline Offline

Activity: 3108
Merit: 1358



View Profile
March 11, 2015, 09:51:04 PM
Last edit: March 11, 2015, 10:48:06 PM by Balthazar
 #2942

да чёрт его знает как оно работает если честно
Аналгем за 1-й курс, метод половинного деления aka бисекция Smiley

Составляем уравнение:

Code:
(nRewardCoinYearLimit / nRewardCoinYear) ^ 3 = bnProofOfStakeLimit / bnTarget

где неизвестным является nRewardCoinYear. Затем пытаемся решить его слегка модифицированным методом бисекции. Модифицированным, потому что находит только корни на отрезке [CENT, COIN]. Если же корень за пределами отрезка, то в качестве решения просто берется крайняя точка с соответствующей стороны отрезка.

Code:
nProofReward = min(10, CoinAge / 3650 * (difficulty / 0.03125) ^ (1/3))
Ах вот о какой формуле речь.

Исправлено:

https://github.com/novacoin-project/novacoin/wiki/Proof-of-stake

3) Считаем nProofReward:
Code:
8343.240769 * 0.30 * 33 / (365 * 33 + 8) = 6.852906

А в блоке видим
Code:
Reward	6.852708

Формулы годятся для оценок, но не дадут значений, совпадающих с результатами метода бисекции. Более того, на разных платформах они могут давать разные результаты... Простой пример в питоне, те же числа:
Code:
8343.240769 * ((0.03125 / 1.16394928) ** (1.0 / 3)) * 33 / (365 * 33 + 8)

И совсем другой результат: 6.840043785996486

Для полной идентичности следует использовать метод половинного деления. Тогда всегда будет выдавать совпадающие значения, где бы ни исполнялось и на чем бы ни было написано. Если же целью не является разработка альтернативного клиента или сборщика блоков, то формулы вполне применимы для оценок, о чем и сказал сегодня Пеньку.

Проблема основная в том, что для нормальной переносимости на разные платформы при вычислении награды нежелательно пользоваться чем-то помимо целочисленной арифметики. Поэтому и приходится иногда прибегать к более громоздким, но универсальным решениям.

P.S. На самом деле, если говорить совсем уж строго, то это бисекция является приближением. Но в нашем случае это не имеет значения, поскольку формулы не универсальны.
sir.miklosh
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
March 11, 2015, 10:47:34 PM
 #2943

да чёрт его знает как оно работает если честно
Аналгем за 1-й курс, метод половинного деления aka бисекция Smiley

Составляем уравнение:

Code:
(nRewardCoinYearLimit / nRewardCoinYear) ^ 3 = bnProofOfStakeLimit / bnTarget

где неизвестным является nRewardCoinYear. Затем пытаемся решить его слегка модифицированным методом бисекции. Модифицированным, потому что находит только корни на отрезке [CENT, COIN]. Если же корень за пределами отрезка, то в качестве решения просто берется крайняя точка с соответствующей стороны отрезка.

грубо говоря разбиваешь большой отрезок на сто маленьких и находишь тот, которому принадлежит решение



...знаешь, мне всё-равно не нравится такой подход, ведь как я уже писал выше:
я бы сдвинул это округление на один знак вправо, до промилле. Ибо в будущем разница между, к примеру 3% и 4% может заставить в цикле после каждого нового блока включать/выключать майнинг, пытаясь подловить момент более удобный для чеканки блока с финансовой точки зрения.

Или, как вариант, оставить только два значащих знака, а-ля: 99%-10%, 9,9%-1,0%, 0,99%-0,10%..

P.S. От нечего делать подшаманил с графиком на табличке из моей подписи, имхо стало поинформативнее..

Novacoin PoS probability (ru) | Novacoin PoS probability (en) | novacoin-0.5.2.ebuild | 4Fate4qoaYjJBVqToMnNmvWSRbLjFDQfqs
Приватность – это не роскошь, а базовое право каждого человека в свободном обществе. Безопасность – не преступление.
Balthazar (OP)
Legendary
*
Offline Offline

Activity: 3108
Merit: 1358



View Profile
March 11, 2015, 10:54:12 PM
Last edit: March 11, 2015, 11:04:33 PM by Balthazar
 #2944

Большой проблемы в этом никакой нет, за исключением хардфорка. Достаточно просто брать не 100, а 1000 точек... Ценой большего количества итераций будет находить более точное решение.

Вот только где гарантия, что такого же вопроса не возникнет в будущем, с предложением увеличить количество итераций ещё и ещё в десять раз? Имхо, это от лукавого... Roll Eyes

sir.miklosh
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
March 11, 2015, 11:04:32 PM
 #2945

Большой проблемы в этом никакой нет, за исключением хардфорка. Достаточно просто дробить не на 100, а на 1000 отрезков... Ценой большего количества итераций будет находить более точное решение.
7 итераций против 10 в худшем случае? не существенно)

Вот только где гарантия, что такого же вопроса не возникнет в будущем, с предложением увеличить количество итераций ещё и ещё в десять раз? Имхо, это от лукавого... Roll Eyes
Вот потому я и предложил второй вариант, решающий это кардинально) если попадаем на первые 10 отрезков из 100 вызываем себя рекурсивно, дробя эти первые 10 отрезков на 100 и т.д., в результате всегда имеем два значащих числа при расчёте награды за PoS-блок, а так-как PoS-сложность ещё не опускала награду ниже 10% даже форка не нужно

Novacoin PoS probability (ru) | Novacoin PoS probability (en) | novacoin-0.5.2.ebuild | 4Fate4qoaYjJBVqToMnNmvWSRbLjFDQfqs
Приватность – это не роскошь, а базовое право каждого человека в свободном обществе. Безопасность – не преступление.
penek
Legendary
*
Offline Offline

Activity: 976
Merit: 1003



View Profile
March 11, 2015, 11:32:31 PM
 #2946

если удастся вспомнить что я там в своё время "наколдовал" в кудрявом запросе, то выполним API-функцию getbalance с ключом /full с развёрнутым списком непотраченных транзакций, потому как в свёрном виде виде отображать баланс, включая неподтверждённые транзы, я не вижу смысла...
Очень бы хотелось, чтобы отображалось кол-во транзакций по типам: входящие, исходящие, майнинг(можно отдельно pow\pos).

там будут только непораченные выходы... без учёта их зрелости...

а если хочется полный расклад по адресу, как на странице, то это будет отдельный метод, но много позже...

можно пробовать: https://novaco.in/api/getbalance/<адрес>/full ...
как и обещал пока только непотраченные транзы, но все, без учёта зрелости...
добавлены 2 столбца: количество подтверждений (естественно не больше 520, т.к. точное количество подтверждений значения большого не имеет, думаю) и тип транзакции PoW/PoS (имеется в виду генерация) или пустое значение, т.е. обычная транзакция перевода...
вместо количества подтверждений, теоретически, можно указывать высоту блока, куда попала транза, а максимальную высоту можно взять из другого метода...

Факт — самая упрямая в мире вещь. © М.А.Булгаков «Мастер и Маргарита»
in100
Legendary
*
Offline Offline

Activity: 1200
Merit: 1021



View Profile
March 12, 2015, 07:43:28 AM
 #2947

Прекрасно Smiley
Осталось добиться, чтобы Пенёк исправил то же самое на официальном сайте (https://wiki.novaco.in/ru/PoS).

1BTCin1ooigFtHHD82qquqysdfxFZGdd8a  |  LTCin1oo9JhxcZu8ZK5HivqwvzAdQSaoua  |  4NVCin1ooAd2XKoEfEhBn6tYNUHhojf4QS
Блокчейн биткоина с его алгоритмом децентрализованного консенсуса на самом деле неэффективен, но неэффективность – это та цена, которую мы платим за свободу.© Andreas Antonopoulos
penek
Legendary
*
Offline Offline

Activity: 976
Merit: 1003



View Profile
March 12, 2015, 08:12:51 AM
 #2948

Прекрасно Smiley
Осталось добиться, чтобы Пенёк исправил то же самое на официальном сайте (https://wiki.novaco.in/ru/PoS).

исправлено...

Факт — самая упрямая в мире вещь. © М.А.Булгаков «Мастер и Маргарита»
in100
Legendary
*
Offline Offline

Activity: 1200
Merit: 1021



View Profile
March 12, 2015, 08:55:56 AM
 #2949

если попадаем на первые 10 отрезков из 100 вызываем себя рекурсивно, дробя эти первые 10 отрезков на 100 и т.д., в результате всегда имеем два значащих числа при расчёте награды за PoS-блок, а так-как PoS-сложность ещё не опускала награду ниже 10% даже форка не нужно

А идея-то неплохая Smiley И даже и т.д. не надо, т.к. минимальное значение ROI - 1%.
То есть получаются всего два диапазона: 100% - 10% и <10% - 1%.

1BTCin1ooigFtHHD82qquqysdfxFZGdd8a  |  LTCin1oo9JhxcZu8ZK5HivqwvzAdQSaoua  |  4NVCin1ooAd2XKoEfEhBn6tYNUHhojf4QS
Блокчейн биткоина с его алгоритмом децентрализованного консенсуса на самом деле неэффективен, но неэффективность – это та цена, которую мы платим за свободу.© Andreas Antonopoulos
becool
Legendary
*
Offline Offline

Activity: 1442
Merit: 1016


View Profile
March 12, 2015, 10:24:51 AM
 #2950

Лучше поясните кто понял почему нельзя было использовать просто формулу?
Что там ***дь за ***нические округления выполняемые по разному на разных машинах из-за которых пришлось "высчитывать площадь тропеции интегралом приближено через цикл" мелодом сечения и вроде как как сеячас написано этот алгоритм тоже по разному работает на разных машинах?

fsb4000
Legendary
*
Offline Offline

Activity: 1400
Merit: 1000



View Profile
March 12, 2015, 10:25:32 AM
 #2951

Лучше поясните кто понял почему нельзя было использовать просто формулу?
используй просто формулу
Balthazar (OP)
Legendary
*
Offline Offline

Activity: 3108
Merit: 1358



View Profile
March 12, 2015, 10:26:04 AM
 #2952

если попадаем на первые 10 отрезков из 100 вызываем себя рекурсивно, дробя эти первые 10 отрезков на 100 и т.д., в результате всегда имеем два значащих числа при расчёте награды за PoS-блок, а так-как PoS-сложность ещё не опускала награду ниже 10% даже форка не нужно

А идея-то неплохая Smiley И даже и т.д. не надо, т.к. минимальное значение ROI - 1%.
То есть получаются всего два диапазона: 100% - 10% и <10% - 1%.

Думаю, с PoW следует поступить аналогично.
becool
Legendary
*
Offline Offline

Activity: 1442
Merit: 1016


View Profile
March 12, 2015, 10:28:48 AM
Last edit: March 12, 2015, 10:43:58 AM by becool
 #2953

Лучше поясните кто понял почему нельзя было использовать просто формулу?
используй просто формулу

Так не в FAQ на сайте, а в клиенте что мешало использовать формулу?
Ты же понимаешь отлично что я имел ввиду, тебе нравится подстёбывать?
Из-за такого поведения люди и бегут подальше от нов, потому что у разработчиков просто манера такая отвечать подобным образом два варианта:
1) не понятно что говорите, но так и быть снизойдем и разъясним на понятном вам языке.
2) себя ставить выше, а человеку хамить.
Это ботаническая привычка.
Просто возвышение над обычными людишками или подстёб над ними на первом месте, да?
Ах он такой тупой термины не знает. А может быть можно простым языком объясняться?
Вы реально считаете что в валюте должны быть только люди которые полностью во всём вас должны понимать?
Докажите что нельзя было написать понятным для постого смертного вариантом просто математического выражения в одну строку. Почему надо было использовать цикл и усложнять этим и понимание кода и оценку скорости работы алгоритма O(n^2) вместо O(n) ?

Причем наверняка это не единственный случай подобных творческих изысканий в сторону дополнительных циклов в коде.

Balthazar (OP)
Legendary
*
Offline Offline

Activity: 3108
Merit: 1358



View Profile
March 12, 2015, 10:51:28 AM
 #2954

мелодом сечения и вроде как как сеячас написано этот алгоритм тоже по разному работает на разных машинах?
Это где такая альтернативная математика была написана?
fsb4000
Legendary
*
Offline Offline

Activity: 1400
Merit: 1000



View Profile
March 12, 2015, 10:57:27 AM
 #2955

becool, исправь как считаешь нужным. Делай как хочешь. Запретов нет. Я разрешаю тебе всё. Только больше не пиши разработчики тебе всё запрещают.

Сделай как ты считаешь правильно, проведи тесты, сделай пул реквест в основной репозитарий. Действуй  Wink
Balthazar (OP)
Legendary
*
Offline Offline

Activity: 3108
Merit: 1358



View Profile
March 12, 2015, 11:16:12 AM
 #2956

Так с действием главная проблема всегда... "Мне запрещает диктатор" звучит намного более солидно в сравнении с "я не могу решить уравнение методом, который сложным не считают даже первокурсницы с филфака".
in100
Legendary
*
Offline Offline

Activity: 1200
Merit: 1021



View Profile
March 12, 2015, 11:27:17 AM
 #2957

Лучше поясните кто понял почему нельзя было использовать просто формулу?
Что там ***дь за ***нические округления выполняемые по разному на разных машинах из-за которых пришлось "высчитывать площадь тропеции интегралом приближено через цикл" мелодом сечения и вроде как как сеячас написано этот алгоритм тоже по разному работает на разных машинах?
Простой пример, давно читал, но весьма подходит под нашу ситуацию:
А покажи-ка ты мне свое Пи

1BTCin1ooigFtHHD82qquqysdfxFZGdd8a  |  LTCin1oo9JhxcZu8ZK5HivqwvzAdQSaoua  |  4NVCin1ooAd2XKoEfEhBn6tYNUHhojf4QS
Блокчейн биткоина с его алгоритмом децентрализованного консенсуса на самом деле неэффективен, но неэффективность – это та цена, которую мы платим за свободу.© Andreas Antonopoulos
in100
Legendary
*
Offline Offline

Activity: 1200
Merit: 1021



View Profile
March 12, 2015, 12:11:14 PM
 #2958

Был задан конкретный вопрос, почему использовался цикл вместо математического выражени, какой  был получен ответ?
Дык ответ-то был ещё на предыдущей странице:

там всё просто... там целочисленные вычисления...

Формулы годятся для оценок, но не дадут значений, совпадающих с результатами метода бисекции. Более того, на разных платформах они могут давать разные результаты... Простой пример в питоне, те же числа:
Code:
8343.240769 * ((0.03125 / 1.16394928) ** (1.0 / 3)) * 33 / (365 * 33 + 8)

И совсем другой результат: 6.840043785996486

Для полной идентичности следует использовать метод половинного деления. Тогда всегда будет выдавать совпадающие значения, где бы ни исполнялось и на чем бы ни было написано. Если же целью не является разработка альтернативного клиента или сборщика блоков, то формулы вполне применимы для оценок, о чем и сказал сегодня Пеньку.

Проблема основная в том, что для нормальной переносимости на разные платформы при вычислении награды нежелательно пользоваться чем-то помимо целочисленной арифметики. Поэтому и приходится иногда прибегать к более громоздким, но универсальным решениям.

1BTCin1ooigFtHHD82qquqysdfxFZGdd8a  |  LTCin1oo9JhxcZu8ZK5HivqwvzAdQSaoua  |  4NVCin1ooAd2XKoEfEhBn6tYNUHhojf4QS
Блокчейн биткоина с его алгоритмом децентрализованного консенсуса на самом деле неэффективен, но неэффективность – это та цена, которую мы платим за свободу.© Andreas Antonopoulos
fsb4000
Legendary
*
Offline Offline

Activity: 1400
Merit: 1000



View Profile
March 12, 2015, 12:29:46 PM
 #2959

И то вот ты тогда так повел себя сказал что возьми и сделай а то ты только болтать, насчет документа про эмиссию.
Ну и что, какой результат?
Я сделал, ты рад?
Не так было.
1) Ты начал кидать предъявы что нет документации по эмиссии и никто ничего не делает.
2) Я опроверг тебя предоставив документацию и написал, что если тебе нужно больше то делай сам, а не кидай предъявы
https://bitcointalk.org/index.php?topic=901893.msg10639320#msg10639320
3) Ты начал что-то делать и опять возмущаться https://bitcointalk.org/index.php?topic=901893.msg10659951#msg10659951

Лично мне хватало старой документации, твой файл я не смотрел...

Вывод: ты делал это для себя(ну может ещё кому-то это нужно). Но точно не для меня, поэтому я не должен быть рад или не рад.

И ещё раз: это OpenSource проект, ты можешь делать что захочешь, никто не может тебе запретить изменять код или делать документы/сайты/сервисы. И нет тут понятие клиент/заказчик, никто никому ничего не должен, как ты постоянно пытаешься представить. Это просто сообщество людей. Они могут что-то начать делать сообща, если это их заинтересует, а могут и не начать. И разработчик не один, тут многие разработчики.
Balthazar, 0xDEADFACE, sir.miklosh, svost, gades...
6 людей в переводах на transifex:
svost
Balthazar
laser9un
ddushas
valeov2q
fsb4000
Плюс ещё люди заняты над сайтом(не знаю всех): http://novaco.in/
И любой может стать разработчиком.
Или просто участвовать в обсуждении изменений...
becool
Legendary
*
Offline Offline

Activity: 1442
Merit: 1016


View Profile
March 12, 2015, 12:35:47 PM
Last edit: March 12, 2015, 01:05:00 PM by becool
 #2960

Вот я и участвую в обсуждении.
А аккаунта в гитхабе у меня нет.
То что я написал доумент был нужный и есть нужный, потому что по факту вы не можете ответить на вопросы, или предоставить формул, а так хоть что-то наглядное.

Так вот насчет формулы:
Code:
nProofReward = min(10, CoinAge * (0.03125 / difficulty) ^ (1 / 3) * 33 / (365 * 33 + 8));

Если значение сложности срезаить вниз до такого-то знака, да специально срезать вниз, чтобы не говорили что еще и округлять компилаторы по разному округляют, а потом использовать именно так написаную формулу, то для переменных использовать тип данных с побольшим колдичеством знаков после запятой и результат опять же обрезать то совершенно точно на всех компиляторах и ОС будет один и тот же результат, без всяких половинных сечений!

Если вы уж упомянули что студентки филфака умеют понять такой алгоритм...
Да это есть такое, но только не троешницы, не те кто списывают, далеко не все, а меньшая часть.
Зато сейчас кто в школе учится не знают что если
величина1*величина2=величина3
Что если у двух первых величин точность 2 знака после запятой, то какая точность будет у величины3?
Раньше этому в школе учили когда физику с математикой лучше преподавали, а теперь этому заново учат в вузе, потому что никто школьники не знают, они считают на калькуляторах и пишут прямо столько знаков сколько дает калькулятор.

Так что вот я и говорю, используя целочисленное вы приравниваете себя не только к сдудентке филфака но и к школьнице которая не понимает чем отличается произведение погрешностей от суммы погрешностей.

И вот сейчас этого уже практика показывает не знают не только школьницы и студентки, но даже программисты.
Что вы и демонстрируете усложняя алгоритм вместо использования формулы с учетом погрешности.

Т.е. вы два программиста не знаете того чему учат в 5ом классе, потом все благополучно забывают, и считая на калькуляторе не могут дать правильный ответ в задачах по математике и физике в старших классах, не знаете до скольки знаков округлить то что калькулятор показывает?
И с этим идут в ВУЗ, и только если технический то там этому учат.
А если программист начал учится в гуманитарном вузе то не учат?

Зато обычный советский школьник 60ых-80ых годов знал это, наверно потому что у него не было калькулятора, да?
Он знал это со средних классов и далее всегда.

http://chem21.info/info/1486662/
Вот тут написано по погрешность воспроизведения и погрешность корня.
Это позволит оценить насколько сама операция увеличивает или уменьшает погрешность.
Далее обрезав значащие разряды неужели выдумаете что функции вычисления произведения или корня в разных компиляторах и разных машинах дают настолько разные цифры если не брать совсем дальние числа после запятой?

Pages: « 1 ... 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 [148] 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 ... 341 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!