Bitcoin Forum
July 16, 2018, 09:05:13 PM *
News: Latest stable version of Bitcoin Core: 0.16.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 »  All
  Print  
Author Topic: TrueCoin <-- правильная монета  (Read 19328 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.
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 04, 2013, 06:40:54 PM
 #141

У нас же PoS и PoW по очереди работают... Зачем инфляцию в PoW снижать?
Вернее так: награда за PoW - это и есть расчётная целевая инфляция. Когда проходит PoS-блок, он эту награду фактически отменяет, заменяя своей 1%. Так что в реальности как бы поднимать % не пришлось Cheesy

Hash = Skein-256(BMW-512(Groestl-512(Block_Header)))  Roll Eyes
Анализ Кессак по-русски можно. Может ещё кто подключится заодно. Не может ведь 99% форумчан интересовать один только курс BTC и его изменения  Cool
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1531775113
Hero Member
*
Offline Offline

Posts: 1531775113

View Profile Personal Message (Offline)

Ignore
1531775113
Reply with quote  #2

1531775113
Report to moderator
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 05, 2013, 04:18:45 PM
 #142

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

------------
Тройная цепочка может оказаться CPU-only Wink
Не уверен , что это нужно. Huh

нашел С либу с нужными хэш-функциями
www.saphir2.com/sphlib/
Завтра буду издеваться над cpuminer.

Боюсь тока будут трудности со смешанным
C/С++ в клиенте потом (
Не могу найти С++ библиотеку с хэшами.
в Botan есть они но только 512 бит (
Может есть еще др. C++ криптолиба  подходящая ?


"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 05, 2013, 05:29:50 PM
 #143

512 бит - это же не страшно. В конце концов, даже если формат блоков и их заголовков оставить полностью совместимым, можно будет старшие{младшие} 256 бит результата от хешей брать и всё.
Маразмом то это выглядит только если единичный расчёт хеша происходит, и нужна скорость. А у нас, в криптовалютах результаты вычисления всё равно миллиардами откидывают.

неужто все крипто-библиотеки такие жуткие - одни макросы  Shocked


p.s. На какое соотношение PoW|PoS блоков выйдет система, при стабильной работе, 29:1; 5:1, 2:1, 1:1 ?
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 05, 2013, 06:07:00 PM
 #144

Она должна стабильно работать при ЛЮБОМ
 соотн. от скажем 28:2 до 2:28 или типа того Wink

Смотря на каком языке либа написана )
для передовых хэшей выбор либ ограничен. (

Keccak стал стандартом и терь его напишут
 на чем угодно.
остальные кандидаты - как получится...
 
На Go есть BLAKE, Keccak , Skein.
Но нет майнера. (

На Python есть майнер, но pyskein написан
 для 3.x версии (

BMW нет ни на Go ни на Python.
И все равно нужны функции на C++ (C).
Для клиента.
К сож. конкурсные исх. на C заточены
 под Windows и нам не годятся.

Транкировать 512 -> 256 наверное можно Huh
но не хотелось бы...

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Balthazar
Legendary
*
Offline Offline

Activity: 2338
Merit: 1000


Terran Emperor


View Profile WWW
April 05, 2013, 06:43:41 PM
 #145

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

Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 05, 2013, 08:30:56 PM
 #146

Она должна стабильно работать при ЛЮБОМ
 соотн. от скажем 28:2 до 2:28 или типа того Wink
не, в краткосрочном периоде она конечно плавать может, но для длительных промежутков нужно соотношение, к которому система будет динамически сложность PoS подгонять.
Иначе будет 100% доминации одного типа.
Простой пример. PoS-мощность пропорциональна всей денежной массе M. PoW-мощность равна сумме мощностей майнеров. Даже навскидку будет 3 периода:
1) старт первый(е) месяйы - экспотенциальный рост pow-мощностей. PoS-мощность практически нулевая из-за отсутсвия в природе достаточных сумм монет как таковых
2) первый год, стабилизация PoW, но денежная масса растёт очень быстро в арифметической прогресии (начальный майнинг буквально месяцы назад её было 0, и каждый месяц + Мм, инфляция пока бешенная). PoW-мощность практически неизменна, PoS-мощность растёт ровно с ростом денежной массы М.
3) окончание роста, инфляция постепенно падает на ~ +Пи%, PoW-мощность удваивается каждый год. (Итог - удвоение мощности-PoW, практически стабильная мощность-PoS)
То есть нужно эти мощности между собой как-то калибровать, и калибровка эта должна постоянно меняться, стремясь соотношение PoW:PoW-блоков привести к заранее прописанной константе.

Итого, навскидку, будут конструкции вида:
Смотрим период формирования последних блоков за неделю. Время5040. Корректируем текущую цель для PoW. target_pow  *= 168_часов / время5040
Дополнительно можно учитывать поправку, насколько фактическое число блоков с самого старта системы отличается от расчетного
target_pow *= (время_жизни_системы_в_минутах / 2) / число_блоков
(не знаю точно ли это нужна ли вообще эта глобальная поправка. В BTC|LTC|PPC|NVC она есть где-нибудь?)
ну и напоследок if (target_pow > maximum_target) target_pow = maximum_target
Смотрим долю PoS-блоков за прошедшую неделю. p = число_pos_блоков_в_последних_5040_блоках / 5040
Скажем условились, что в среднем каждый четвёртый блок должен быть PoS
target_pos /= p * 4
и напоследок if (target_pos > maximum_target) target_pos = maximum_target

Всё, таргет майнеров подстраивается под скорость появления блоков; таргет pos подстраивается под свою долю в этой черед pow-блоков, соответсвенно и под генерирующее количество монето-лет, и под текущую сложность pow.

Смотря на каком языке либа написана )
для передовых хэшей выбор либ ограничен. (

Keccak стал стандартом и терь его напишут
 на чем угодно.
остальные кандидаты - как получится...
 
На Go есть BLAKE, Keccak , Skein.
Но нет майнера. (

На Python есть майнер, но pyskein написан
 для 3.x версии (

BMW нет ни на Go ни на Python.
И все равно нужны функции на C++ (C).
Для клиента.
К сож. конкурсные исх. на C заточены
 под Windows и нам не годятся.

Транкировать 512 -> 256 наверное можно Huh
но не хотелось бы...

Заточенность под windows - это огромнейший плюс. Если брать массовость - то именно наличие windows-реализации, это необходимое и достаточное условие существования.
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 06, 2013, 04:19:32 AM
 #147

ТОгда надо усложнять симулятор.
У кадого блока нужно отмечать его время создания.
И много чего еще.
НО это дело нужное.

----------------
Не, там не та заточенность ...
Конкурсный код собирается MSVC.

А биткойн клиент - нет.
ПРоще найти хэш-библиотеку для *nix.
(1 уже есть) - и мож ее будет достаточно.

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 06, 2013, 10:36:28 AM
 #148

попробую вечерком симулятор для го сбацать:

пока идеи такие
первые 30 дней отключено PoS. потом считаем что где-то половина средств "размазались" довольно равномерно, и начали участие в PoS-генерации, эта "половина" соответсвенно будет постоянно расти с ростом М
Усреднённая PoW-мощность будет расти каждый год примерно в (1+10/year) раз. (первый год - в 11 раз, 2-й в 6 раз, 10й - в 2 и т.д. с замедлением скорости роста). "Мгновенные" дневные колебания от этой величины будут равномерно распределены в диапазоне -25% +25%
Время появления блоков будет вычисляться по-чесному, через геометрическое распределение. с учётом pow-pos мощностей, и их же target'ов.
pow-pos target'ы будут рассчитываться каждый раунд

pow-эмиссия включает в себя награду за логарифм сложности + пи% годовых ко всей денежной массе
pos-эмиссия состоит из 1% к монето-годам затрачиваемым на блок.


вопрос. как в Go корректно объявить массив на 5040 элементов?
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 06, 2013, 10:51:35 AM
 #149

Попробуйте.

Массив - напр. так :
Code:
var arr [5040]int
Если что-то будет не корректно,
 оно просто не скомпилится ...
Сначала это бесит, потом начинает помогать.
---------
Вот полезный текст с готовыми конструкциями :
http://golang.org/doc/effective_go.html

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 06, 2013, 12:57:12 PM
 #150

Вы еще симулируете , а мы уже майним Smiley ...
Code:
FOUND (#1) at hash #6880260
00000030C5D49B65D7C65D1F33ABA9AAD9A4548C67B4119B13D7A8FFB6BD38E6

FOUND (#2) at hash #45414826
00000042E2EECFC2DFDB72426B54657113345F1189FD97A5FB0FAA623B7809DA

FOUND (#3) at hash #52850554
0000008C8DB109AA267C5A5B5C69584D5D3B6E3361D66158D25B831DF5ADF9A8

FOUND (#4) at hash #88128071
0000000C83AEE7276DA654DA591FC32A41DC4ADF22B769BF22BFB34C48260D60

FOUND (#5) at hash #91684631
000000BC5AF65ED75D735596CA521811E422665C461C34F153F5FA826F752BA4

FOUND (#6) at hash #101295823
000000765DE25584401DF84F4619EE881D8FCE42182F9EF8B96F4563D2C5C151

ЦЕпочка Hash = Skein256(Groestl512( ==X3? ))

Три первых нуля в хэше это какой человеческой трудности соответствует ?

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 06, 2013, 02:24:31 PM
 #151

Code:
FOUND (#21) at hash #819298698
00000052AB4229FC510625BEE9DE9A84C79B98BFA0819677F4F5D636D5A4EF3C

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

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


"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 06, 2013, 03:03:09 PM
 #152

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

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 06, 2013, 04:25:02 PM
 #153

А как компилятор - настроен на максимальную скорость?

Так вполне себе значения. 000000F.... базовая сложность - и её уже соло-майнер переваривает на "норму"

p.s. на чем хоть выполнялось, сколько потоков?
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 06, 2013, 04:49:03 PM
 #154

Пока собираю с флагом -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%

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 06, 2013, 06:09:11 PM
 #155

@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

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 07, 2013, 09:46:44 AM
 #156

У меня со симулятором какой-то  полнейший затык. А как "по стандарту" сейчас везде сложность пересчитывают? По фиксированным N блокам, или по фиксированному T "реального" времени?

Чё-то пересчёт по блокам начинает жуткие фортели выдавать, когда PoW-мощность "мгновенно" падает после предшествующего роста быстрого. И время для следующих блоков в десятки раз от номинального иногда возрастает.
То ли действительно так и должно быть если по блокам считать, то ли симулятор глючит жесточайше  Huh
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 07, 2013, 10:10:50 AM
 #157

надо из клиента формулы пересчета сложности
(хотя бы PoW) выдернуть.
И вставить в сим. ( с таргетами ). Wink

Выложите в Pastebin что у вас получилось.
Попробуем вместе помучить его.

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 07, 2013, 11:09:23 AM
 #158

http://pastebin.com/REZUfBQ1

только пока редактировал/исправлял такую кучу-малу сделал. к реальному коду меня подпускать нельзя  Grin

===========
ну и на денежную массу конечно внимания не стоит обращать в этом глюкодроме, когда target у pow скачет от 0 до максимума - там и награда за блок соответственно такая же неадекватная выходит.
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 07, 2013, 12:14:38 PM
 #159

Вы много чего написали !
Много идей - это хорошо, но
наращивать их надо постепенно,
а то теперь я не знаю с чего начать
 понимать...

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

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

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

 Счас попробую выдрать формулы из PPC
(раз у нас нет Scrypt) и вставить их
 в свой последний симулятор.
 а потом будем по одной добавлять
 ваши наработки.
 так я справлюсь Huh

"...Enemies are everywhere ! Angka is all rage ! Be a good soldiers, blow everything... " <-- Pol Pot (C)
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 07, 2013, 12:30:13 PM
 #160

second - для последних 5040 блоков - время в секундах от "старта" системы до появления этого блока (в идеале для последнего блока = №блока*120)
delta_time - количество секунд между последними 5040 блоками (ну т.е. в идеале это должно быть близко к 120 * 5040 = 604800

На реальном тестировать конечно лучше. (здесь ведь приходится самому вводить "мощность генерации" pow, "монето-года" pos, время нахождения и тип следующего блока - а вживую это "извне" поступает так сказать, уже в готовом виде  Smiley)



================================================
и похоже запихивать в симулятор всё-в-одном было с моей стороны ошибкой.

Проще несколько работающих разновидностей делать:
 один, оперирует строго 2х минутными блоками и заданным соотношением pow|pos блоков, меняя по составленному алгоритму pow_target, % - и расчитывая только денежную массу.

другой - вообще на эмиссию как таковую не смотрит, а тестирует калибровку target'ов, чтобы блоки подгонялись под 2 минуты (У Бальтазара в NVC ведь сделано как-то "мгновенное" изменение мощностей, и неплохо кажись. Правда PoS там явно рассчитан на жизнь не в стадии роста системы, а в стадии стабильности. Поскольку у инфляционной валюты стадия роста это практически вся её жизнь - как-то расчёты PoS-мощности нужно подкорректировать, или полностью перерабатывать даже)
Pages: « 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!