Pages:
Author

Topic: TrueCoin <-- правильная монета - page 3. (Read 19792 times)

jr. member
Activity: 42
Merit: 1000
Не то чтобы убирается,
форк чистый PoW - это будет эксперимент
 в нужном направлении.

PoS как он сделан на практике, не может к сож. конкурировать с PoW в плане эмиссии.
Что уменьшает его полезность.

Сейчас у меня много оффлайна накопилось,
 так что делать что-то дальше я начну
 не раньше чем через неделю.
jr. member
Activity: 42
Merit: 1000
Да тут встречаются земляне.
ПОпрошу theymos, чтоб сделал вход только по карточке Галактического Банка.
jr. member
Activity: 42
Merit: 1000
Ну да, такой CPU-риг может обойтись в
$ 300+.
А доход с него пока не понятен.
Зато там ничего не сгорит. )
ТЕмпература растет градусов на 10 всего.

А может они обиделись на "щупальце" Huh
jr. member
Activity: 42
Merit: 1000
1) голосование для решения - это стремно,
  лучше уж пусть сами разработчики добавляют,
 убавляют алгоритмы.

2) биткойн кордевы и не хотели ничего менять,
 чтоб не снижать доверие к биткойну.
 
3) Даже не знаю что псоветовать Huh
 если у вас есть свободный раздел
 поставьте настояший Linux ,
Slitaz или Puppy, они быстрые и не требовательные
 к ресурсам.
 
jr. member
Activity: 42
Merit: 1000
>>> А как понять идею параллельного майнинга?

сам НЕ знаю Huh
1) хорошо бы иметь на выбор несколько алгоритмов
 которые могут работать и/или параллельно
 друг с другом.
ТОгда при появлении плохих майнеров
 на очень быстром железе, разработчики в ручном режиме отключают тот алгоритм,
 и куча дорогого железа превращается в кучу хлама )

2) заранее хорошо иметь возможность
 позже определить новые такие алгоритмы в будущем.
 Типа раз и подключил другой вариант.

Это никто еще не сделал и это дорогое удовольствие.

-----------
Лично мну НЕ поклонник Linux ,
просто Lin - это мейнстрим в мире бесплатных
 никсов, где решена проблема драйверов,
 под широкий круг уст-ов и многие др. проблемы.
А так есть более продвинутые *nix системы
( но они не популярны) :
Inferno
Minix3
DargonFlyBSD
...
jr. member
Activity: 42
Merit: 1000
насчет проблем майнинга надо обдумать...
какие проблемы с его экономикой мы имеем тут ?

Тогда меня беспокоит еще и то что они
 (прав-ва),будут вместо налогов получать
 доход от майнинга, это не по крипто анархически ?! Huh
В этом свете ваша идея, что за право майнить
 майнеры должны ПЛАТИТЬ обретает новый
 приятный смысл Wink
--------------------
МС2 (то есть tacotime) много чего хочет.
ОН работает по системы Обамы )
Типа:  "вот мои сырые идеи (я гений),
 но ОЧЕНЬ занят в этом столетии,
 приду через две недели, чтоб все уже было готово !"

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

 Но если его идеи "разъять как труп",
 то там много полезных мыслей.
 Я верю что антиАсик-форк можно сделать несколько проще чем это предзапланировано
 в МС2.

 Было бы не плохо сделать в TrueCoin,
 возм. паралелльно майнить по 2-3 алгоритмам
 (типа Skein/Skein + Skein/BMW + ?/?).
 И чтобы они подключались и отключались.

----------------
PS
 root(a, n) не самописный, взят
 с rosettacode.org и кто его там писал
 не знаю Wink
 Многие соавторы Go тоже любители.
 
 разница в точности между root() и math.Pow
 на уровне ошибки округления у ручного
 калькулятора. Мы ж все равно ими пользуемся, или ученые не могут сделать
 куркулятор без погрешности или это невыгодно экономически.

В симуляторе можно добиться дробных долей трудности ( напр. сделать таргеты Big.Nat
 или big.Rat (есть и др. способы))
Но это не камень преткновения, есть более
 насущные задачи с сим.
 Любую задачу на любом языке можно решать по разному, на разных языках одна и тажа задача
 макс. оптимально решается тоже разными способами.
 Это еще одна причина, почему надо симулировать
 как можно проще -- потом будет проще
 придумавть как написать тоже самое на C++
для клиента.

 
 У Go есть разные тонкие моменты,
 на первый взгляд - все просто.
 но это не так ...
 Тем не менее, по сравнению с C++
 это просто кристальная ясность во многих
  моментах,
 и граблей в Go много меньше.
 Ясность дизайна языка, когда он не стоит
 на пути у кодера - огромное преимущество.
 Плюс команда Rob Pike & Co Wink

 PPS.
Boost - это альтернативная системная библиотека в C++ , среди крутых
 кодеров на нем считается круче стандартной,
 впрочем это вопрос сектантских разногласй
 и религиозных войн среди них тоже.
 ( какая основа языка круче ?)
 
 не знаю есть ли он для Visual Studio.
 Зато по слухам компиляция под ВИндовс,
 это род жесткого садо-мазохизма.
 Не верите мне - почитайте на форуме Wink
 САтоши-клиент под Win НЕ собирают в Studio.

 МОжет вам проще поставить *nix,
 или на худой конец Mingw + MSYS ?!

 Или скажите чего вы хотите добиться, и получите др. совет Wink


jr. member
Activity: 42
Merit: 1000
А вот конкуренты Smiley
Там есть несколько интересных идей
( для заимствования), но в целом
они на неверном дефляционном пути. )(

И нек. утверждают что , инфляционную монету
НЕ будут майнить, это типа невыгодно
 майнерам.
*Укиго мечется в ПАНИКЕ *
Что делать ?


https://bitcointalk.org/index.php?topic=169204.0;all
https://bitcointalksearch.org/topic/faircoin-ideas-for-the-fairest-coin-possible-169623

Особенно прикольны там идеи с названием
 той форки.

Ну это мы тож можем.
назвать что ли  "Пангала" ?! - PGN Wink
Или Paraunit - PUN

jr. member
Activity: 42
Merit: 1000
Ничем не плох, просто решил попробовать
 так и оказалось что root() точнее -
нет потерь на округлении.

Таргеты в Go имеют тип big.Int и соотв. результаты операций на них тоже целые,
я преобразую их во float64 потом( для формул
 с трудностью, наградой и так далее)
 но дробная часть есессно == 0 остается.
 само по себе иметь целую трудность,
 не очень страшно.
 
 Если не использовать scrypt то адекватные трудности измеряются в тысячах и десятках
 тысяч - без дробной части можно прожить.

Мне не удалось смоделировать полностью
 формулы управления трудностью из клиента,
 и думаю это не возможно если не пускать
 "почти настоящие" блоки внутри симулятора,
 чего я делать не хочу.
 
Теперь мы имеем запись для каждлго блока
 его времени и таргета(2 массива).

на этой основе можно управлять  поведением тестовой блокцепи (надо только написать функцию желаемого изменения частоты блоков по времени, и привнести туда случайность.
см. строки 157 - 159 .
Сейчас там мощность плавно растет
пока не достигается трудность в 33000000,
что соотв. большому росту интереса к майнингу и созданию зрелой цепи с доминированием специальных TrueCoin-суперАСИКов.
freq - антивремя между сосед. ними блоками в сек (анти потому что оно вычитается
 при 120 мощность сети - постоянна,
 при < значении freq мощность сети падает
 при freq > 120 наоборот - растет.
after - реальное время между текущим блоком и пред.
 строка 159 суть машина антивремени,
 некоторые блоки запускаются в прошлое. )

Это все вынужденная абстракция из-за моей неспособности и нежелания гонять блоки конкурентно ( как в настоящем клиенте).
Я стремлюсь получить на выходе адекватные изменния трудности и времени каждого блока,
похожие на настоящие в PPC.
И при этом не парится с воссозданием
 в деталях работы клиента.

Дальше можно написать функцию которая в момент создания блока будет случайно решать
 быть ему poS или PoW-блоком и затем расчитывать соотв. параметры.
Настроив эту функцию можно моделировать
 соотн. PoS/PoW в сети.

Про трудность в целых а не float уже писал.
Вызов же getWdiff() в стр. 182
вызван особенностью языка.
лень объяснять.

Сама же функция getWdiff() это бычный правильный метод кодирования :
1 задача == 1 функция.



 
jr. member
Activity: 42
Merit: 1000
http://pastebin.com/9rMqfM84
Новый симулякр...
Умеет считать трудности через таргеты.
Но делает это не так как клиент PPC.
Формулы похожи но не совсем.
ПОдгонял по рез. работы

критика и вопросы приветствуются.
jr. member
Activity: 42
Merit: 1000
они определены в файле src/main.cpp

https://github.com/ppcoin/ppcoin.git

Code:
static CBigNum bnProofOfWorkLimit(~uint256(0) >> 32);

static CBigNum bnInitialHashTarget(~uint256(0) >> 40);
Да, нули должны быть везде равномерно Smiley
Потом поищу пятый... Huh

jr. member
Activity: 42
Merit: 1000
Не пойму как выразить bnProofOfWorkLimit
 в виде Python's BigNum ?
И что такое bnInitialHashTarget ?

Что из них равно max_target ?
jr. member
Activity: 42
Merit: 1000
1) я видел другие 3 бумаги с такими таблицами и графиками. И выбор там был больше.
BLAKE особо хорош на FPGA.
Потому его и не берем. )

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

4) Надежнее конечно сделать на scrypt-mutant, но мне цеп. Skein(BMW()) тоже нравится.

5) если взять цепочку не из 2-х а из трех
 хэшей, то она будет медленней,
 но я не пробовал пока.
---------------------------
Сделать железку для популярного алгоритма
 они смогут , но это будет не скоро.
А пока не будет и ГПУ-майнера...

Мне интересны др. тупые моменты :
я нашел во внешнем Skein-256 4 первых
 нуля -- но это НЕ гарантия что они
 есть дальше до макс. разумной трудности,
а что если их там нет ?!
Как это проверить на практике без
месячных расчетов ?
--------------
Трахаюсь с переносом трудностей,
прогресс есть но она улетает в облака.
все-таки языки не идентичны, и трудность
 в симуляторе будет int.



member
Activity: 112
Merit: 10
По хэшам офтопик небольшой

http://cryptography.gmu.edu/athenadb/fpga_hash/table_view

Вот на такую таблицу наткнулся. Как я понял, финалистов ша-3 (и не только их, но смотреть можно только их результаты, кнопка есть), на FPGA гоняли.
jr. member
Activity: 42
Merit: 1000
Вот проверьте меня :
в клиенте :

(9999.0/wReward)^6 = wDiff
выражаем отсюда

 wReward = 9999.0/корень_6-й_степени(wDiff)
Правильно ?

--------------
Мы можем моделировать трудность
 ( то есть типа хэш. мощность сети)
 в симуляторе очень быстро( чего не можем
 в клиенте).
Это единственное преимущество симулятора.

Также удобно иметь дело с трудностью(float)
 нежели с таргетами( big int).
------------
Да лучше втыкать по формуле за раз.
Ничего мы обратно засунем все что нужно.

Счас посчитаю корни, а потом
 найду алго изменения трудности в клиенте
 и переведу его на с таргетов на трудность.
а потом дойдет черед до ваших формул...
jr. member
Activity: 42
Merit: 1000
Вы много чего написали !
Много идей - это хорошо, но
наращивать их надо постепенно,
а то теперь я не знаю с чего начать
 понимать...

Я утонул в формулах (
нам надо симулировать работу реального клиента( чтоб потом было легче внести в него
 наши наработки), а не наоборот. Huh

Вообще использовать _ в именах переменных
 в Go считается моветоном.
_ имеет спец. смысл -- это context drop value.
А переменные типа должны быть в camelCase

Что такое delta_time ?
Что храниться в массиве
 second : время в секундах для каждого блока
 из последних 5040 блоков ?
 Я не понимю ваш код. (
 Это вовсе не значит , что он плохой,
 это я - не очень умный... )

 Счас попробую выдрать формулы из PPC
(раз у нас нет Scrypt) и вставить их
 в свой последний симулятор.
 а потом будем по одной добавлять
 ваши наработки.
 так я справлюсь Huh
jr. member
Activity: 42
Merit: 1000
надо из клиента формулы пересчета сложности
(хотя бы PoW) выдернуть.
И вставить в сим. ( с таргетами ). Wink

Выложите в Pastebin что у вас получилось.
Попробуем вместе помучить его.
jr. member
Activity: 42
Merit: 1000
@Balthazar
Вот, я нарыл бумагу, почему трудно и невыгодно писать OpenCL майнер для
 BMW :
http://upcommons.upc.edu/pfc/bitstream/2099.1/7933/1/Masteoppgave.pdf

Там ближе к концу они изучали такие CUDA
 программы и результаты не впечатляют.

Так что для цепочки Skein256(BMW512(...))
может и не будет никаких GPU майнеров.

И тогда мы возвращаемся к Ботнет-проблемам с чистым CPU...
-----------
для Skein  есть OpenCL прога :
https://github.com/dxoigmn/ENGS116Proj
jr. member
Activity: 42
Merit: 1000
Пока собираю с флагом -O1 на GCC.

Это просто просчет цепочки в себе.
микроутилита + части библиотеки.
Все на C.
В cpuminer не встраивал.
поток один.
проц. AMD FX-4100
----------------
Code:
FOUND (#18) at hash #557083918 
000000457D65D4178F5EB836DC35EB256E0C88D976E62DE47C478F8B5C5C082D

 за 52m43.006s

Это был :
 Skein-256(SIMD-512(...))
----------
--------------
при сборке c GCC -O3 -fomit-frame-pointer
на цепочке Skein/BMW
тот же расчет на 21 "искомый" хэш выполняется
 за 10m14.860s , то есть набл.
 ускорение на 3.7%
jr. member
Activity: 42
Merit: 1000
Code:
FOUND (#21) at hash #775360437 
0000003D27B8B37F66CA4FCCC8F90C9139532D06D04DCC1051BE0A0F306BF9F2

 за 10m38.497s
Это уже  Skein-256(BMW-512(...))

И что выбрать, спрашивается ?!
Groestl и Keccak медленные на этой библиотеке...

UPD.
Skein-256(Keccak-512(...))
тоже бодрый, хоть и медленней пред. варианта.
Code:
FOUND (#21) at hash #797952913 
00000036F9BCDC7D8BEDE162B6F5113C2F5A5CFD4C82A1A7BD31D83F3CCF14A9

 за 15m5.640s
jr. member
Activity: 42
Merit: 1000
Code:
FOUND (#21) at hash #819298698 
00000052AB4229FC510625BEE9DE9A84C79B98BFA0819677F4F5D636D5A4EF3C

"найдено" за 53m56.058s
Это не настоящий майнинг.
Но скорость перебора на cpuminer
с этой бибиотекой и формулой хэша
будет сравнима.

Попробую др. цепочку, чтоб сравнить результаты.

Pages:
Jump to: