Bitcoin Forum
November 20, 2017, 08:02:12 AM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   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 19143 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


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
1511164932
Hero Member
*
Offline Offline

Posts: 1511164932

View Profile Personal Message (Offline)

Ignore
1511164932
Reply with quote  #2

1511164932
Report to moderator
1511164932
Hero Member
*
Offline Offline

Posts: 1511164932

View Profile Personal Message (Offline)

Ignore
1511164932
Reply with quote  #2

1511164932
Report to moderator
1511164932
Hero Member
*
Offline Offline

Posts: 1511164932

View Profile Personal Message (Offline)

Ignore
1511164932
Reply with quote  #2

1511164932
Report to moderator
Join ICO Now Coinlancer is Disrupting the Freelance marketplace!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
Ukigo
Hero Member
*****
Offline Offline

Activity: 938


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


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


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
*
Online Online

Activity: 2240


BTC-e Divine Overlord, ask cryptodevil for details


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

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

novaco.in | EtherMine.ru (65 GH/s, DGM 0.5%) | EtherDig.Net (18GH/s, PPS 1.5%)
฿: 1QJ8RFiRKsJKmY8ZAjxfCUeBZXmjthK4Pk: 4RgnHWtnJWEyMhqhDdazW3Hdr7cx5ybF6i ETH: 0x5B475Febb3018f41d0Ac3C2f1A864bd102ab5a2E
Storan
Member
**
Offline Offline

Activity: 112


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


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


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


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


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


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


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


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

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

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

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

Activity: 938


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


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


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

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

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

Activity: 938


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


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


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


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!