Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 11:18:28 AM Last edit: February 05, 2012, 11:55:06 AM by Balthazar |
|
Я имею в виду если будет сделан NMC-2 клиент для народа на scrypt чтобы он все делал по понятиям как в пдфке
а не как у TBX.
В TBX копипаст референсной реализации, прикрученный через задницу * сорри за риторику * Чтобы было нормально, надо исправить функцию GetHash(), а не прикручивать костыли в виде дополнительных функций и проверок... Вот моя адаптация версии scrypt от pooler'а, пригодная для использования в клиенте: http://zalil.ru/32646840Для майнинга надо использовать функцию scanhash_scrypt, для получения хэша от переданного массива байтов с указанной длиной функцию scrypt_hash. Я это в своих экспериментах делал вот так: в файле main.cpp: #include "scrypt_mine.h"
<...//..>
void static BitcoinMiner(CWallet *pwallet, int thread_id) { printf("Miner started\n"); SetThreadPriority(THREAD_PRIORITY_LOWEST);
// Each thread has its own key and counter CReserveKey reservekey(pwallet); unsigned int nExtraNonce = 0; void *scratchbuf = scrypt_buffer_alloc();
while (fGenerateBitcoins) { if (AffinityBugWorkaround(ThreadMiner)) return; if (fShutdown) return; while (vNodes.empty() || IsInitialBlockDownload()) { Sleep(1000); if (fShutdown) return; if (!fGenerateBitcoins) return; }
// // Create new block //
unsigned int nTransactionsUpdatedLast = nTransactionsUpdated; CBlockIndex* pindexPrev = pindexBest; auto_ptr<CBlock> pblock(CreateNewBlock(pwallet));
if (!pblock.get()) return;
IncrementExtraNonce(pblock.get(), pindexPrev, nExtraNonce); printf("Running Miner with %d transactions in block\n", pblock->vtx.size());
// // Search //
uint64_t nStart = GetTime(); uint256 hashTarget = CBigNum().SetCompact(pblock->nBits).getuint256(); uint32_t max_nonce = 0xffff0000; block_header res_header; uint256 result;
loop { // Check for stop or if block needs to be rebuilt if (fShutdown) return;
if (!fGenerateBitcoins) return;
if (fLimitProcessors && vnThreadsRunning[3] > nLimitProcessors) return;
if (vNodes.empty()) break;
bool rc = scanhash_scrypt( (block_header *)&pblock->nVersion, sizeof(block_header), UINTBEGIN(hashTarget), scratchbuf, max_nonce, &sStat[thread_id - 1], nStart, pindexPrev, nTransactionsUpdatedLast, UBEGIN(result), &res_header ); pblock->nNonce = res_header.nonce;
if (rc) { static CCriticalSection cs; CRITICAL_BLOCK(cs) { printf("Thread %d: scan hash result = %i, nonce value = %d, hash = %s, target = %s\n", thread_id, rc, pblock->nNonce, result.ToString().c_str(), hashTarget.ToString().c_str());
// Found a solution SetThreadPriority(THREAD_PRIORITY_NORMAL); CheckWork(pblock.get(), *pwalletMain, reservekey); SetThreadPriority(THREAD_PRIORITY_LOWEST); } break; } else if( (nTransactionsUpdated != nTransactionsUpdatedLast && GetTime() - nStart > 60) || (pindexPrev != pindexBest) ) break;
// Update nTime every few seconds pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime()); } }
scrypt_buffer_free(scratchbuf); }
в файле main.h #include "scrypt_mine.h"
<...//..>
/* uint256 GetHash() const { return Hash(BEGIN(nVersion), END(nNonce)); }*/
uint256 GetHash() const { uint256 thash; void * scratchbuff = scrypt_buffer_alloc();
scrypt_hash(CVOIDBEGIN(nVersion), sizeof(block_header), UINTBEGIN(thash), scratchbuff);
scrypt_buffer_free(scratchbuff);
return thash; } CVOIDBEGIN и UINTBEGIN это макросы, определенные по аналогии со штатным BEGIN в файле util.h: #define UINTBEGIN(a) ((uint32_t*)&(a)) #define CVOIDBEGIN(a) ((const void*)&(a))
Плюс значение переменной bnProofOfWorkLimit надо сделать ~uint256(0) >> 20, потому что по умолчанию оно ориентировано на sha256 И настолько высокое, что со scrypt юзер никогда на такой сложности задачу не решит, имхо. Если будут вопросы, поясню что как.
|
|
|
|
pent (OP)
|
|
February 05, 2012, 11:55:35 AM |
|
Господа криптопанки, вы зыбываетесь Основное в майнинге - это пруф ов ворк, который регулируется сложностью. Необходима задача, сложность которой можно было бы легко регулировать и очень легко проверять. И ша2 в купе с таргетом эту задачу достойно выполняют. Пока не изобретены квантовые компьютеры. Хотя возможно я тоже полон стереотипов. Объясните, если в этом имеется какая то проблема.
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 12:05:58 PM |
|
Господа криптопанки, вы зыбываетесь Основное в майнинге - это пруф ов ворк, который регулируется сложностью. Необходима задача, сложность которой можно было бы легко регулировать и очень легко проверять. И ша2 в купе с таргетом эту задачу достойно выполняют. Пока не изобретены квантовые компьютеры. Хотя возможно я тоже полон стереотипов. Объясните, если в этом имеется какая то проблема. Основная задача - бесспорно proof of work. Но смысл в том, что со scrypt на вычислительную мощность сети в целом не будут так сильно влиять владельцы мегаферм. Простой пример - как запустились i0coin/ixcoin, мощность сети bitcoin упала на 1.5-2 тэрахэша, которые туда ушли за халявкой. Это очень плохой знак, говорящий о том чтоине стоит вкладывать в фундамент системы такой сомнительный актив в лице жадных людей. В случае scrypt у обладателей больших денег не будет такого весомого преимущества над обычными юзерами, потому что фермы можно будет строить разве что на ксеонах МП или итаниках. Это уже хорошо, даже если забыть о том, что считать на процессоре 24/7 гораздо проще, чем делать это на видеокарте, у которой то вентиль сдохнет то еще что (дохлые видеокарты вижу пачками, а процессоры гораздо реже ).
|
|
|
|
pent (OP)
|
|
February 05, 2012, 12:11:08 PM |
|
То есть ты просто предлагаешь вместо интегральной математики перейти на плавающую точку?
С интегральной математикой все просто, она предельно понятна и меньше подвержена багам. С плавающей точкой на сях танцы с бубном нужны, насколько я знаю. К сожалению я не С программист.
Я не вижу проблемы шаринга вычислительной мощности с биткоин. Это вопрос профпригодности системы. И мержед майнинг тоже создан для лузерских систем.
Если система нужна обществу, общество будет майнить.
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 12:15:12 PM |
|
То есть ты просто предлагаешь вместо интегральной математики перейти на плавающую точку?
Нет, scrypt тоже использует целочисленную арифметику. Именно по этой причине процессоры amd в этой задаче так блекло выглядят.
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 12:18:44 PM |
|
Я не вижу проблемы шаринга вычислительной мощности с биткоин. Это вопрос профпригодности системы. И мержед майнинг тоже создан для лузерских систем.
Проблема есть. Она в тех, кто будет прыгать туда-сюда между неймкоином и битками в зависимости от того где курс лучше. И будут постоянные скачки скорости в пару-тройку раз с последующими взлетами и падениями сложности, которые в свое время чуть не убили неймкоин (его спасло то, что мержед майнинг внедрили раньше срока) и убили кучу форков.
|
|
|
|
pent (OP)
|
|
February 05, 2012, 12:22:57 PM |
|
Проблема есть. Она в тех, кто будет прыгать туда-сюда между неймкоином и битками в зависимости от того где курс лучше. И будут постоянные скачки скорости в пару-тройку раз с последующими взлетами и падениями сложности, которые в свое время чуть не убили неймкоин.
Слушай, ну это естественный процесс, закон Дарвина называется. Переходные процесы возможны, но в итоге гармоническая функция взлетов-падений мощности из-за прыжков имеет затухающий характер. Если система нужна, если ей есть место в этом мире, она найдет свою долю поддержки. А иначе нет смысла. Лучше сразу похоронить, чем людям мозг парить.
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 12:27:13 PM |
|
Проблема есть. Она в тех, кто будет прыгать туда-сюда между неймкоином и битками в зависимости от того где курс лучше. И будут постоянные скачки скорости в пару-тройку раз с последующими взлетами и падениями сложности, которые в свое время чуть не убили неймкоин.
Слушай, ну это естественный процесс, закон Дарвина называется. Переходные процесы возможны, но в итоге гармоническая функция взлетов-падений мощности из-за прыжков имеет затухающий характер. Только в случае если не замешана человеческая жадность. Она все кардинальным образом меняет... Помню, как сам ковырял блоки неймкоина на огромной сложности и мощности сети меньше 20 гигахэшей, хотелось просто расчленить этих проклятых прыгунов с особой жестокостью. Только сложность понизилась - набежали сотни гигахэшей, посчитали 2000 блоков, слили на бирже и смотались. И так каждый раз в точности одинаковая картина. Лучше не допускать это явление, как класс, чем надеяться что оно затухнет. Потому что это самоподдерживающийся процесс, автогенератор колебаний фактически.
|
|
|
|
pent (OP)
|
|
February 05, 2012, 12:30:56 PM |
|
Только в случае если не замешана человеческая жадность. Она все кардинальным образом меняет... Помню, как сам ковырял блоки неймкоина на огромной сложности и мощности сети меньше 20 гигахэшей, хотелось просто расчленить этих проклятых прыгунов с особой жестокостью. Лучше не допускать это явление, как класс, чем надеяться что оно затухнет.
Я тебе открою секрет почему. Потому что неймкоин труп. Ну зомби по крайней мере. Прыжки можно сгладить, но от них никуда не денешься. Люди приходят, интересуются. Одни разочаровываются и уходят, другие остаются. Третьи начинают работать и там и там понемногу. А как без этого? Если слишком много разочаровывающихся резко уходящих, то это не они виноваты, это система тухлятиной пахнет.
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 12:35:19 PM |
|
Только в случае если не замешана человеческая жадность. Она все кардинальным образом меняет... Помню, как сам ковырял блоки неймкоина на огромной сложности и мощности сети меньше 20 гигахэшей, хотелось просто расчленить этих проклятых прыгунов с особой жестокостью. Лучше не допускать это явление, как класс, чем надеяться что оно затухнет.
Я тебе открою секрет почему. Потому что неймкоин труп. Ну зомби по крайней мере. Прыжки можно сгладить, но от них никуда не денешься. Люди приходят, интересуются. Одни разочаровываются и уходят, другие остаются. Третьи начинают работать и там и там понемногу. А как без этого? Если слишком много разочаровывающихся резко уходящих, то это не они виноваты, это система тухлятиной пахнет. Это все хорошо, но не допускать даже возможности явления лучше, чем надеяться на то что юзерам понравится система и они не будут прыгать. Просто потому что прыжки отпугивают тех, кому она могла понравиться, и создают системе ту самую репутацию зомби. Это как с пулами типа триплмайнинга. Закончили считать блок и мощность вырастает в 3-4 раза. И в результате что? А ничего, над пулом смеются и обзывают помойкой, хотя он тут непричем и очень даже достойный, может быть. Все - имхо.
|
|
|
|
pent (OP)
|
|
February 05, 2012, 12:42:05 PM |
|
А мне казалось большинство майнеров здесь ради ПРИБЫЛИ ... Тока частная инициатива, подкрепленная жаждой сравнительно честной прибыли, приведет нас к победе цифрового коммунизма. Coding for fun -- это здорово, но нужна материальная выгода тоже. Честный Scrypt хорош тем что защитит форк от произвола больших пулов и будущего нашествия миллиардеров которые построят мегамайнеры с немедленным ростом сложности и концентрацией власти и монеток в их руках. ------------------------------ Внезапно -- Офф-топ : Здорово было бы сделать Namefork основанный на квантово устойчивой криптографии. Так сказать на будущее И раскрутить его было бы легче. Да ё-мае. Люди это люди. И жадность это неотъемлимая их часть. И если ты не смог эту деструктивную (с твоей точки зрения) энергию общества направить на пользу, как это сделал Сатоши, то это не проблема людей, а твоя. Убивать теперь их что ли? Лучше самому апстену тогда. Форки делать никто не запрещает. Бери, делай. Но мотив - устойчивость к квантовым вычислениям - борьба с мельницами. Эти компы существуют только в экспериментах, отдаленных от реального применения. Лучше ко мне присоединяйтесь, кодеры Мы нагнем ICANN раком.
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 12:44:30 PM |
|
А я и присоединяюсь... Мои сорсы выше. А направление жадности и прочее - это идеализация, я давно уже перестал быть идеалистом. Давить надо жадность, давить нещадно математикой, а не измышлениями о светлом будущем и нужности системы. Сорри.
|
|
|
|
pent (OP)
|
|
February 05, 2012, 12:48:41 PM |
|
А я и присоединяюсь... Мои сорсы выше. А направить жадность в данном случае нереально, т.к. ее уже направил Сатоши. Два раза одно и то же чудо не случается ) Единственный вариант - это сделать так, чтобы жадность наткнулась на непреодолимое препятствие. Сатоши направил усилия в финансовую сферу, т.к. всех задолбала уже ФРС США. А мы сделаем то, чего так давно не хватало - распределенный авторитетный днс. Т.к. всех начинает задалбывать американская цензура. Они не остановятся, и это нам на пользу.
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 12:51:16 PM |
|
А я и присоединяюсь... Мои сорсы выше. А направить жадность в данном случае нереально, т.к. ее уже направил Сатоши. Два раза одно и то же чудо не случается ) Единственный вариант - это сделать так, чтобы жадность наткнулась на непреодолимое препятствие. Сатоши направил усилия в финансовую сферу, т.к. всех задолбала уже ФРС США. А мы сделаем то, чего так давно не хватало - распределенный авторитетный днс. Т.к. всех начинает задалбывать американская цензура. Они не остановятся, и это нам на пользу. У Сатоши направить жадность не получилось, де факто сейчас биткоин находится в железных рукавицах воротил и мегапулов. Это только выглядит так, что все хорошо. А на деле все даже хуже, чем в случае ФРС США. Там есть хоть какая-то стабильность и цель, а тут курс выставляется воротилами такой, какой они хотят и когда хотят. Захотели 31 - сделали 31, захотели 2.98 - сделали 2.98. К сожалению... Но я все еще надеюсь, что они передохнут и все придет к тому, что задумывалось. К реальной децентрализованности и реальной стабильности.
|
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
February 05, 2012, 12:58:20 PM |
|
Очень даже получилось. Все это будет саморегулироваться. Выскочек задавят. Еще немного и все-все будет хорошо. Прямо как обещанный коммунизм к 80-м ) Оно уже саморегулируется и самоподдерживается. Только не так, как хотелось бы.
|
|
|
|
promankirov
|
|
February 05, 2012, 01:25:43 PM |
|
Просто потому что прыжки отпугивают тех, кому она могла понравиться, и создают системе ту самую репутацию зомби. Это как с пулами типа триплмайнинга. Закончили считать блок и мощность вырастает в 3-4 раза. И в результате что? А ничего, над пулом смеются и обзывают помойкой, хотя он тут непричем и очень даже достойный
Держу на триплмайнинг небольшую часть своих мощностей, и скажу что эти прыжки меня нисколько не пугают. Имею кстати неплохую отдачу от этого пула. (Но тсс.... никому не говорите, это секрет) А по поводу человеческой жадности у меня сложилось довольно своеобразное мнение после просмотра фильма об МММ. Ее просто надо грамотно использовать. Сатоши направил усилия в финансовую сферу, т.к. всех задолбала уже ФРС США. А мы сделаем то, чего так давно не хватало - распределенный авторитетный днс. Т.к. всех начинает задалбывать американская цензура. Они не остановятся, и это нам на пользу. Мы нагнем ICANN раком.
Идея отличная, и не только из за американской цензуры. Её - цензуры везде достаточно. Если все выгорит это просто добавит всем свободы. ------------------------------------------- Идея Биткоин-а уже дала свои всходы и сама по себе и как плацдарм для новых идей. А ведь она пока все еще остается крайне мало известной среди населения, то ли еще будет... А воротилы в чьих руках сейчас сконцентрированы большие средства могут все эти средства легко профукать, так что кто будет управлять системой и будет ли вообще еще не известно. (это конечно чисто мое мнение )
|
|
|
|
rPman
Legendary
Offline
Activity: 1120
Merit: 1069
|
|
February 05, 2012, 10:08:13 PM |
|
Уважаемые... ваши рассуждения ушли далеко от главного: 1. нет никакой разницы какой алгоритм используется для реализации proof of work, пусть это будет shaXXX, или scrypt, или даже поиск формы изгиба молекулы ДНК/..., последнее даже пользу не хилую бы принесло мировой медицине и не только. Для сети это непринципиально, лишь бы было надежно и децентрализовано! 2. это хорошо, что существование сети зависит напрямую от человеческой жадности.. децентрализованные проекты поднять и самое главное удержать можно, как мне кажется, только с ее помощью, остальное тупо обречено на провал. Главное не переборщить, пусть 'жадность' и 'польза' стоят максимально далеко друг от друга и при этом зависят друг от друга через существование сети. 3. проблема выбора цены домена в namecoin кроется гораздо глубже, в самой идеалогии сети Интернет. DNS-имя - это уникальный идентификатор представителя/владельца сервиса/контента, даже при существовании поисковых систем, выдающих по ключевым словам необходимые веб-сайте, домен остается как последним эшелоном контроля и обеспечивает начальные гарантии что клиент попал туда куда хотел. С одной стороны над доменными именами нависают СЕОшники, паразитирующие на недостатках поисковых алгоритмов, с другой - киберсквотеры и недобросовестные центры выдачи доменных имен, обеспечивающие неоднозначную стоимость домена. Избавиться от этих двух монстров практически не реально, они будут существовать пока будет существовать сама идея идентификации контента/сервисов/услуг по ключевым словам и именам. Сети вида freenet/i2p/или даже tor - они догоняющие Интернет (и паразитирующие на нем), если проблемы решать без оглядки развития интернета как технологии, то и там всплывут все те же проблемы, что существуют уже сейчас. Но все-равно, на текущий момент нет никаких идей, способных вообще отойти от основы - DNS-имя, т.к. вокруг накручено слишком много (браузеры, поддержка прав доступа, защита от атак,..). Соответственно основываться придется на классике - DNS-имя, регистрация, поисковые системы, ключевые слова и т.п. Текущий замкнутый круг, по которому крутится заинтересованность участников выглядит так: идея и ключевые слова -> домен -> контент и реклама -> поисковые системы -> ключевые слова и смысл Namecoin позволяет 'войти в игру' с точки - 'домен', в сети часто встречаются идеи ухода от доменов - через ключевые слова или экзотические - социальные связи (когда до сервисов клиенты доходят по указанию друзей и знакомых, минуя идентификацию по имени). Социальную составляющую bitcoin-идеалогия еще не готова освоить, а вот сделать 'распределенную систему выдачи контента по ключевым словам', - вполне по силам. Что из себя должна представлять система доступа к услугам по ключевикам? это поисковая система + рекламная сеть в одном флаконе. Пусть представляющие сервисы регистрируют свои услуги в сети по ключевым словам (сюда относятся как поставщики контента и услуг так и рекламодатели), а пользователь, используя ключевые слова и запросы (алгоритмы уже давно шагнули дальше простых ключевиков) получают доступ к услугам. В конце концов, нет никакой разницы, что из себя представляет домен - mtgox.com или 1MFbY25MqEaFNXbqf1qZnv5CcUucwbsycn.nbs, для тех кто увидел его в первый раз оба домена звучат одинаково бессмысленно, только первый запомнить проще (это отлуп к социальной составляющей, и в частности ее оффлайн-часть), это просто язык, на котором пользователь общается с компьютером, так последние стали значительно умнее, могли бы уже и догадаться, что я хочу 'крупнейшую биржу купли/продажи bitcoin'.
А пока этого решения нет, то прийдется кормить и СЕОшников и киберсквотеров, пусть будут доменные имена, пусть их захват будет стоить мало (но по возможности фиксированно) и по алгоритму 'кто первый, того и тапки'. Я предлагаю фиксировать цену домена, привязав ее почти напрямую к стоимости оборудования для майнинга, основываясь например на законе Мура, например через классическую сложность майнинга, можно попробовать самостоятельно выявить закономерность между ценой каждого вычисленного хеша в секунду и сложностью. Почти наверняка это будет что то между линейной и экспоненциальной зависимостями.
|
|
|
|
pent (OP)
|
|
February 05, 2012, 11:20:07 PM |
|
О боже, а сеошники в этом обсуждении при чем? 1. полностью согласен, оффтоп 2. не догнал 3. о да, меня начали понимать Да, цена домена фундаментальная величина, от которой зависит облик сети и ее будущее и ее нельзя брать из воздуха. Я это толдычу уже семь страниц. Сеошники и киберсквотеры? Да на здоровье, лишь бы платили
|
|
|
|
pent (OP)
|
|
February 06, 2012, 07:54:54 PM |
|
Вскрытие показало что новая схема несовместима с цепью блоков nmc.
Программисты въезжают в тему, со следующего понедельника пойдет разработка.
PDFки и сырцы на паблик не раньше альфы.
|
|
|
|
|