Bitcoin Forum
June 25, 2018, 02:39:08 AM *
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 19325 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.
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 01, 2013, 02:13:23 PM
 #101

Code:
package main

import (
"os"
"fmt"
"strconv"
"math/rand"
"math"
)



var block = 0//block count ( for genesis block = 0 )

var maxBlock = []int {
262980,
525960,
788940,
1051920,
1314900,
1577980,
1840850,
2103840,
2366820,
2629800,
2892780,
4733640,
4996620,
5259600,
}
//var maxBlock = 4733640

//var percent = 0.00000011946

var percent_year = 0.0314159
var percent_day_multi = math.Pow(1+percent_year, float64(1.0/365.0))
var percent = (percent_day_multi - 1) / 720.0


var Coin = int64(1000000)
var Cent = int64(10000)

var mplus, wMplus, sMplus float64

var wDiff = float64(1.0)
var sDiff = 0.0001

var supply = 0.0//moneysupply
var fees = 0.0

var wHour = 29//PoW blocks' rate per 1 hour
var shour = 1// PoS blocks' rate per 1 hour


func main() {
// wReward := 0.000001
// sReward := 0.000001
rnd := rand.New(rand.NewSource(755876))
for {
// rnd := rand.New(rand.NewSource(43567))
wReward := 22.0 / math.Pow(wDiff, float64(0.16666666666666666)) + (supply * percent)
// wReward = supply * percent
// fmt.Println("PoW bounty: ", wReward, "wDiff=", wDiff)
if block > 10000 { wDiff = (wDiff + rnd.Float64() * 111.0 + 1.0) / 2  }
block++
txFees := rnd.Float64() / 2.7
if txFees > 0.24 { txFees = 0.01 }
coinAge := rnd.Int63n(89970) + 30 //pseudorandom  coin_age in days
sReward := float64((33 * coinAge) / 12053) * 0.01
// fmt.Println("PoS: ", sReward, "Fees=", txFees)
// sRewardAndFees := sReward + txFees
block++
fmt.Println("")
// fmt.Println("----------------------------------------------------------")
supply = supply + wReward + sReward
fees = fees + txFees

fmt.Println("moneysupply: ", strconv.FormatFloat(supply, 'f' , -1, 64), " at block #", block)
fmt.Println("tx_fees =", fees)
fmt.Println("==========================================================")
if block > maxBlock[5] { break }
}

os.Exit(0)
}

Code:
if block > maxBlock[5]
чтоб запускать на нужный год надо менять
 пятерку в этой строке на индекс
 нужного числа блоков в списке maxBlocks
напр. 20 лет - это надо заменить 5 на 13

Надо будет сделать флаги коммандной строки
, чтоб удобней было год выбирать, но мне лень )
награда PoS считается как в PPC (1%).

если хотите посм. какие блоки что выдают подробно откомментируйте обратно соотв. строки.
А так она показывает только M и сумму Tx-fees в PoS-блоках.

сначала идет 10000 блоков премайна по 100
 монет.

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

Posts: 1529894348

View Profile Personal Message (Offline)

Ignore
1529894348
Reply with quote  #2

1529894348
Report to moderator
1529894348
Hero Member
*
Offline Offline

Posts: 1529894348

View Profile Personal Message (Offline)

Ignore
1529894348
Reply with quote  #2

1529894348
Report to moderator
1529894348
Hero Member
*
Offline Offline

Posts: 1529894348

View Profile Personal Message (Offline)

Ignore
1529894348
Reply with quote  #2

1529894348
Report to moderator
The World's Betting Exchange

Bet with play money. Win real Bitcoin. 5BTC Prize Fund for World Cup 2018.

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
Merit: 1000


View Profile
April 01, 2013, 02:24:00 PM
 #102

А насчет симуляции поxти чистого PoS-форка.
Это мы можем )
напишу и заодно флаги прикручу.
просто там монет будет много меньше
 в абсолютных цифрах, а динамику Эмиссии
 еще посмотреть надо.

"...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 01, 2013, 03:02:50 PM
 #103

Только чистый PoS - это форк сбережений;

Что же касается срока жизни в 10 лет, так за 10 лет даже биткоин вполне себе инфляционная валюта (https://bitcointalk.org/index.php?topic=130619.0). Там правда с моей точки зрения странный метод "мгновенной" инфляции который вызывает скачки, но это из как 10ку считать 7+3 или 6+4.  На том графике хорошо видно, что в биткоине сейчас ещё эмиссия больше 10% в год. И это ко всей массе, включая мёртвые/отправленнные в никуда и т.п. монеты.

Я максималист, на четверть века рассчитывал  Grin
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 01, 2013, 03:29:51 PM
 #104

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

Я счас экспериментирую с др. процентами
вознаграждения PoS.
PoW выключен после 1000000 блока.
с 19 на 20 год прирост денежной массы
 3.8% , М = 176566683.237 ( 20 год)
 сумма комиссий 21419.

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

Скажите лучше, сколько всего монет в системе
 вы хотите видеть через 20 лет,
 и сколько лет мне симулировать бурную
 начальную "инфляцию".
 И еще сколько при всем при том делать
 премайна ?

"...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 01, 2013, 03:57:46 PM
 #105

да моя идея проста. из вашего первого поста. Стабильно низко-инфляционная валюта
на 20й год - денежная масса больше на Х% чем на 19-й.
на 120й год - денежная масса больше на Х% чем в 119-й  Grin

(причём PoS эмиссия суммарно не должна превышать инфляцию - в противном случае для держателей средств валюта становится дефляционной).

Просто повторюсь. [Бешенно, потом плавно] эмитируем N лет, а после замедляемся и (а) стабилизуемся, (б) - потихоньку сжимаемся.
Эти идеи уже воплощены. (а) - NVC, (б) - BTC.

Если задача создать такую систем - то никаких формул выдумывать не нужно. Максимум, создать почти копию биткоина с PoS, где pos-блоки не будут генерировать проценты, а сразу будут жить поножным кормом с комиссий, как в оригинале PoW, по прошествии 12-20 лет.

p.s. а как в Go деление по модулю выглядит? хочу промежуточные данные на экран хотя бы раз "в день" выводить не чаще, иначе ощущение что ядерный взрыв рассчитываешь, по скорости обработки  Grin
if (!(block%720)){...} - такая конструкция нужна


p.p.s и да, как будет выглядеть функционированние криптовалюты даже слабо-инфляционной не говоря про стабильную/сжимаемую денежную массу никто пока точно не скажет. Попросту ниже 10% эмиссии нет ещё нигде (даже в старейшем "дефляционном" биткоине) Cheesy
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 01, 2013, 04:34:05 PM
 #106

Тогда надо как то бороться со сложными процентами ( чтоб всегда Х% между соседними годами) Huh
Может как-то привязать % к № блока. Huh

Ага, кое-что новое для себя уловил.
Сколько по-вашему первых лет надо продолжать эту активную гиперэмиссию ?


Правильная конструкция такая :
if (block%720)==0 {
  fmt.Println(...)
}
в этот условный блок   придется заключить каждый вывод на печать или закомментить
 лишние. Скорость мелькания не намного падает )

"...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 01, 2013, 04:44:34 PM
 #107

на p.p.s :
Это потому, что форков пока мало и насытить
 начальный спрос не удается.

Может нам нужно сначала иметь много инфляции,
(даже помимо премайна) а потом выйти на стабильно низкий процент( + подавить сложные проценты) ?
И дальше пусть крутиться стабильно,
 пока может выжить в этих джунглях...

"...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 01, 2013, 06:46:25 PM
 #108

Code:
package main

import (
"os"
"fmt"
"strconv"
"math/rand"
"math"
)



var block = 0//block count ( for genesis block = 0 )

var maxBlock = []int {
262980,
525960,
788940,
1051920,
1314900,
1577980,
1840850,
2103840,
2366820,
2629800,
2892780,
4733640,
4996620,
5259600,
}


var percent_year = 0.0314159
var percent_day_multi = math.Pow(1+percent_year, float64(1.0/365.0))
var percent = (percent_day_multi - 1) / 720.0

var PoS_percent = float64(0.01);

var Coin = int64(1000000)
var Cent = int64(10000)

var mplus, wMplus, sMplus float64

var wDiff = float64(1.0)
var sDiff = 0.0001

var supply = 0.0//moneysupply
var fees = 0.0

var wHour = 29//PoW blocks' rate per 1 hour
var shour = 1// PoS blocks' rate per 1 hour

// 1st year - hyper-maining.
var nblock_like_premine = 1000000
var bonus_premine = float64(20);


var cepochka_ostatok = float64(0);
var freq_pos = float64(0.2);
var max_pos2pow_dobavka = float64(0.25);

var ncount_pow = 0;
var ncount_pos = 0;

func main() {
rnd := rand.New(rand.NewSource(755875))
for {
x := 0.0;
if block < nblock_like_premine {x=1.0 - float64(block)/float64(nblock_like_premine)}
wReward := bonus_premine * x + supply * percent;
sReward := float64(0);
if rnd.Float64() < freq_pos{ // PoS-block
age_block := rnd.Int63n(60*720) + 30*720
coin := (0.3 + rnd.Float64()*0.4)*supply/(60*720*freq_pos) // 60 - srednij vozrast v dnyah, 720*freq_pos - blockov v den'. 0.3+rnd*0.4, v pos zadeistvovany 30%-70% vseh sredstv
coin_age := coin * float64(age_block) / float64(maxBlock[0]) //pseudorandom  coin_age in days
sReward = float64(coin_age) * PoS_percent
cepochka_ostatok += wReward - sReward // nedoemmissia, ili izlishki
// fmt.Println("Age:", age_block, "Coin:", coin, "PoS: ", sReward)
ncount_pos++
}else {// PoW-block
if cepochka_ostatok > 0{ // razmazywaem nevvedenyu emissiu iz pos po sledujshim pow
if cepochka_ostatok > wReward * max_pos2pow_dobavka{
cepochka_ostatok -= wReward * max_pos2pow_dobavka
wReward += wReward * max_pos2pow_dobavka
}else{
wReward += cepochka_ostatok;
cepochka_ostatok = 0
}
}
ncount_pow++
}

if sReward == 0{
supply += wReward
}else{
supply += sReward
}

// if block%(maxBlock[0]/10) == 0{
// fmt.Println("moneysupply: ", strconv.FormatFloat(supply, 'f' , -1, 64), " at block #", block, "year #", block / maxBlock[0])
// fmt.Println("PoS_blocks =", ncount_pos)
// fmt.Println("PoW_blocks =", ncount_pow)
// fmt.Println("==========================================================")
// }
block++
if block > maxBlock[10] { break }
}
fmt.Println("moneysupply: ", strconv.FormatFloat(supply, 'f' , -1, 64), " at block #", block, "year #", block / maxBlock[0])
fmt.Println("PoS_blocks =", ncount_pos," PoW_blocks =", ncount_pow)
fmt.Println("==========================================================")

os.Exit(0)
}

вот чего получилось. из первой версии симулятора, с прикрученными pos и "бешенным" майнингом первые Х годов/Х' блоков.
Комиссии вообще не принимал во внимание, проще считать что они не уничтожаются (как в btc), и соответсвенно на объем денежной массы никак не влияют.
(странный в Go инкремент какой-то, в проверке if не дают пользоватся. просто выходит синоним для i=i+1 без практической пользы в применении)


Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 02, 2013, 03:24:23 AM
 #109

Эх, ещё одна идейка, в порядке бреда:

Награда за блок - положительная обратная связь со сложностью генерации этого блока, как пример:
wReward = 10 * ln (wDiff_base / wDiff);

в переводе на человеческий язык:
*) майнинг на базовой сложности - награда 0
*) увеличение сложности в 1000 раз, прибавляет ~69 монет к награде за блок

схема примитивная конечно, но посылы следующие:
накопление монет в системе на старте, возрастает с появлением новых участников (мощностей);
если/когда система попадает в реальную экономику (хотя бы на уровнеь битков 11-12-го года), именно реальный интерес к валюте (увеличение мощностей) увеличивает её эмиссию;
всё ещё продолжающееся развитие микроэлектроники позволяет надеяться, что и при стабильном состоянии системы уже и с "огромным" охватом, будет постепенное наращивание мощностей -> незатухание эмиссии.

ну и абстрактный пример:
пусть i7-4770 выдаёт при майнинге 1Mh/s, и это базовая мощность системы.
ниже подразумевается что сложность уже пересчитана под текущие мощности
майнит один i7: награда_за_блок = 10*ln(1) = 0;
майнят два i7: награда_за_блок = 10*ln(2) = 6,931;
майнит десяток i7: награда_за_блок = 10*ln(10) = 23,026;
майнит тысяча i7, достигли 1Gh/s: награда_за_блок = 10*ln(1000) = 69,078;
умельцы подключили gpu, эквивалентная мощность 1Th/s: награда_за_блок = 10*ln(1000000) = 138,16;
нашествие асиков, эквивалентная мощность 1Ph/S: награда_за_блок = 10*ln(1000000000) = 207,23;
будущее, мощность системы достигает эксахеша: награда_за_блок = 10*ln(1000000000000) = 276,31.
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 02, 2013, 06:09:42 AM
 #110

Quote
(странный в Go инкремент какой-то, в проверке if не дают пользоватся. просто выходит синоним для i=i+1 без практической пользы в применении)
Huh Какая конструкция у вас не работает ?

У меня ваш симулятор из поста № 108 выдает такое :
moneysupply:  13520885.120103247  at block # 2892781 year # 11
PoS_blocks = 577164  PoW_blocks = 2315617

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

Я бы рассмотрел возможности связать
 трудности PoS и PoW , так чтоб
 при снижении кол-ва PoW-майнеров
 награда за PoS-блок росла и компенсировала отчасти уход PoW майнеров.
Напр. при активном PoW майнинге,
PoSы получают 1% годовых на всвои блоки,
а если PoW майнеров становится мало,
 то - 2% годовых.Это все равно меньше
 целевых 3.14% , но должно привлечь новых PoS-майнеров.

Quote
wReward = 10 * ln (wDiff_base / wDiff);

в переводе на человеческий язык:
*) майнинг на базовой сложности - награда 0
*) увеличение сложности в 1000 раз, прибавляет ~69 монет к награде за блок

схема примитивная конечно, но посылы следующие:
накопление монет в системе на старте, возрастает с появлением новых участников (мощностей)
Это ОЧЕНЬ интересная идея !

То есть , я так понимаю : майнить
 PoW блоки типа "невыгодно" ,
 чем больше приложена к форку PoW-мощность,
 тем больше монет печатается в единицу времени, и тем меньше они "стоят" на рынке  ?!

Осталось только защитить эту схему от гиперинфляции со стороны "злых" майнеров,
 которые не хотят заработать , а хотят затопить форк "ликвидностью" а ля Бернанке.

Может нужен логарифм не натуральный,
чтобы увеличение мощности в 1000000 раз
 увеличивало награду в скажем 5 раз ?
И еще я бы сделал минимальную награду
 маленькой но не равной нулю ( 1 койн напр.)
ТОгда при ЛЮБОМ алгоритме хэширования
 строительство АСИКов становится экономически невыгодным.

И что такое wDiff_base ?
как вы его определяете ?





"...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 02, 2013, 08:40:29 AM
 #111

ВАша формула дает ОТРИЦАТЕЛЬНУЮ награду Smiley
заставить майнеров платить за право печатать
 обесценивающиеся монеты - в этом что-то есть Huh

Вот мой аналог вашей формулы, адаптированный
для Go и с полож. наградой.
Code:
reward = 0.277777777777 * math.Log(1.0 * diff) + 1.0
результаты такие :
Code:
diff= 1 reward= 1
diff= 19 reward= 1.8178997164328323
diff= 299 reward= 2.5834565481596456
diff= 999 reward= 2.918542994063671
diff= 4999 reward= 3.3658314364971456
diff= 19999 reward= 3.7509548753495436
diff= 99999 reward= 4.1980320735799985
diff= 999001 reward= 4.837364182942364
diff= 9.9999001e+07 reward=6.116852987180802
в таких условиях АСИК  никто делать не будет.
И можно обойтись прикручиванием к PPC
 нашего нестандартного тройного хэширования.
Что будет на 20% энергитически дешевле , чем алгоритм на Scrypt-основе.

Вот инструмент для мучения формулы.
http://pastebin.com/AnAi16X4
Если вставить Raw data оттуда в
пустой файл в отдельной папке
 и потом выполнить комманду
go fmt <имя_файла>
то возни будет меньше , чем с копипастой из форума.

"...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 02, 2013, 01:19:35 PM
 #112

В логарифме - отношение сложностей.
wDiff_base - это заданная начальная сложность. Наверняка она же есть в каком-то значении типа 0x00ffffff...f
и высчитывается ln не от самого числа текущей сложности (мощности), а от того, во всколько раз она меньше чем базовая
и в "отрицательную" зону она кажись зайти не может - даже если система "умерла", и мощность стремится к 0 (в сети один майнер на PIV), сложность до 0хffff... не поднимется, застынет на 0х00ffff.... с генерацией блока раз в 3 часа  Tongue


тот же пример про i7, и сложности-мощности подробнее (базовая мощность - 1Mh/s, базовая сложность 0x00ffffff)
Один i7, мощность 1 Мh/s, сложность 0x 00ff ffff, награда = 10 * ln(0x00ffffff/0x00ffffff) = 10 * ln(1) = 0
Восемь i7, мощность 8 Mh/s, сложность 0х001f ffff, награда = 10 * ln(0x00ffffff/0x001fffff) = 10 * ln(Cool = 20,794
1024 i7-x, мощность 1Gih/s, сложность 0х 0000 3fff, награда = 10 * ln(0x00ffffff/0x00003fff) = 10 * ln(1024) = 69,315
и т.д.

Естественно сложность будет 256-битная (или 512-битная), но для дроби это абсолютно безразлично, так же и останется, меньше в Х раз чем базовая сложность.


И прибавлять единицу не обязательно. Можно красивые коэффициенты найти. Первоначальная награда Х, увеличение мощности в 10 раз добавляет Y, Y довольно просто считается.

Да не забивайте голову энергоэффективностью.
К сожаленью, всё вычисление блоков так устроено, что куча вычисленний уходит в пустоту.
PoW - это сама идея, молоти данные в поисках ненужного вообще никому, кроме самой системы Nonce.
Но остальное тоже не лучше - даже если всё оставлять на PoS, то и в PoS-блоках/транзакциях для защиты от спама, "ddos'a" и зафлуживания отправкой по 1 сатоши (если неправ, думаю Бальтазар поправит) всё равно придётся вводить на каждом ноде для всех потенциально опасных операций взаимодействия вычисления неких Nonce, которые долго искать и гораздо быстрее проверять.
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 02, 2013, 01:52:10 PM
 #113

В клиенте расчеты идут от этой печки :
https://en.bitcoin.it/wiki/Target

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

Но мы пока можем считать и  от трудности,
почему нет ?

Тут дело в том, чего мы хотим добиться.
Мой вариант нивелирует наличие у атакующего
спецАСИКов(энергетически выгодных устройств), если даже их можно будет построить.
Атакующему придется закупать много-много
CPU или GPU что сделает атаку дороже,
даже если будет один PoW в TrueCoin.
То есть у меня достигается тут почти цифровой коммунизм.
Выход монет от майнинга, почти одинаков
 на любом оборудовании(в расчете на 1 единицу железа).
Нет смысла покупать супер-пупер спец-железяки и отдавать свои денежки скамерам.

В вашем же варианте , мне кажется,
крупные майнеры смогут влиять на "инфляцию"
 в широких пределах(пока есть PoW).
 

"...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 02, 2013, 02:01:05 PM
 #114

между нашими вариантами меньше разницы,
чем кажется )
у вас wDiff_base/wDiff -- это и есть
max_target и target.

а я и не забиваю голову.
просто если мы можем побороть АСИКИ без
Scrypt, то зачем зря жечь эл-во и GPU
 майнеров ?

Sunny King полагает, что энергоэффективность
важна даже не сама по себе, а потому что
 позволит достичь более низких комиссий,
 в будущем -- что по-моему важно.


"...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 02, 2013, 02:04:22 PM
 #115

да точно Target - это то про что я и говорил.

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


К сожаленью, выход от майнинга одинаков не будет

Если кто-то имеет 1Gh/s, а другой 1Mh/s - первый будет получать 99,9% тут уж ничего не поделаешь.

Но от asic'ов изменение хеш-функций конечно должно сработать.
Более того - на этапе становление системы, оно защитит систему и от налётов зловредных GPU-недоумков, гробивших как я понимаю некоторые форки, закидывая туда 50%+ мощностей, и начиная пакостничать. (Ну просто потому что перебиндить адрес в уже существующем майнере, и переписать майнер под новый алгоритм задачи для разного уровня интеллекта)
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 02, 2013, 02:27:30 PM
 #116

Ничего, зато вы умеете писать на C++...
(в отличие от меня).

Я имел в виду "выход монет сравнительно одинаков"
 только в расчете на единицу железа( 1CPU или 1ASIC)
.

Я вот думаю, что даже написать майнер
для GPU будет не так просто для
тройного алгоритма Huh
Все таки там хэши все новые и никто
 на видеокартах их наверное гонять не пробовал.

Тогда нам придется начать с аписания майнера
для CPU.

Ботнеты ( особенно при наличии PoS)
не так страшны как видно из этого обсуждения :
https://bitcointalk.org/index.php?topic=164475.0

"...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 02, 2013, 05:04:08 PM
 #117

Что все таки делать со сложным процентом ?
как сделать так чтобы рост эмиссии
 был постоянным, а не ускорялся со временем ?

--------------
Насчет одинаковой доходности для всех,
я по ходу зарапортовался )
Однако формула с логарифмом приводит
 к чему-то вроде социализма, награда
 за блок растет у каждого PoW-майнера
 при росте трудности ( тое сть за счет
 крупных игроков).
Еще бы приделать сюда плавный рост
 эмиссии со временем.

У нас уже есть много стройматериала - еще
 немного и можно написать концепт-план
 для английской ветки.

"...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 02, 2013, 06:19:56 PM
 #118

С процентами ничего не поделаешь. Тут 2 варианта:

Либо эмиссия стабильна в абсолютном значении, и тогда естественно в процентном значении она постоянно уменьшается. (с учётом неизбежного вымывания части денег вследствии отправки на несуществующие адреса, физическом уничтожении файлов кошельков/паролей к ним и т.п.) со временем это означает нулевой прирост денежной массы, и её полную стабилизацию [В NVC|PPC как я понимаю
к этой стабилизации ещё системно ускоряются].
Даже если эмиссия ограничена каким-то коридором. Например 100 база, ±20% (т.е. 80 - 120), то это ничего не меняет. Да, если сначала эмиссия была ближе к минимуму диапазона, а по мере развития приблизится к максимуму, то это отсрочит время выхода на 0% роста, но и только. Отменить его ("стабилизец") наличие этих границ не позволит.

Либо эмиссия стабильна в процентном значении, и тогда в абсолютных величинах она естественно всё время повышается. В адекватной идеальной системе это повышение будет плавным и очень малым, на уровне общего роста. Но оно всё равно будет.
При такой эмиссии (в реальных, популистко/субъективных и т.п. системах) имеет смысл сравнивать только соседние периоды (ну по устоявшемуся порядку - года). Если взять любую, самую стабильно/успешную страну, и начать высчитывать её текущие инфляцию/эмиссию/рост от её показателей 1900 года - мы получим бешенные %. (Хороший пример тот же биг мак. Рост цены почти в 10 раз за полвека. Да был и кризис 70х, и нынешние разгулы кредитования - но это не отменяет факта, что есть и 1000% инфляции на фастфуд за пол века, и развитие экономики (подтасовки безусловно есть, но 50 лет назад несомненно их ввп был всё-таки меньше). Если представить эти 1000% инфляции на продукты в год, а не от точки отсчёта - это экономический коллапс, без вариантов.)


В запасном варианте с логарифмом социализм специфический  Cool
Скажем формула выглядит как 10 базы + 10 за каждый_десяток_сложности (10 + 4,34294482 * ln(max_target/target) монет).
Мощность сети в 10 раз больше первоначальной. Каждый блок оценивается в 10+10=20 монет, за сутки генерируется 20*720=14400 монет.
Я при наличии мощности Х = базовой, получается имею 10% мощностей.
Итого, майню каждый десятый блок, с наградой 20; или в сутки 720 * 0,1 * 20 = 1440 монет
Мощность сети поднялась величины в 100 больше первоначальной. Каждый блок оценивается в 10+20=30 монет, за сутки генерируется уже 30*720=21600
Я при остаюсь со своей Х=базовой, и имею 1% мощности.
В итоге, майню уже лишь каждый сотый блок, но с наградой 30; или в сутки 720 * 0,01 * 30 = 216 монет
Но мощность сети выросла ещё на порядок, и уже в 1000 раз больше первоначальной. Каждый блок оценивается в 10+30=40 монет, за сутки генерируется уже 40*720=28800
Я всё ещё майню на мощностях Х, и имею лишь 0,1% мощности
Майню лишь каждый тысячный блок, но с увеличившейся наградой 40; или в сутки 720 * 0,001 * 40 = 28,8 монет

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


p.s. С++, я совсем чуток знаю. К сожаленью, на "академическом" уровне, лет 15 назад Страуструпа и Буча серьёзно читал/изучал (из практики был доступен только borland c++), а вот после ни одной среды разработчки всерьёз "не щупал" /живу в таких диких краях, где открытие консоли Win+r, cmd, enter воспринимается 99% народом как программирование/. А в реальных проектах, один практик сотню теоретиков за пояс заткнёт
Ukigo
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 02, 2013, 07:10:10 PM
 #119

OК.
тогда сделаем очень плавный разгон процента.
И просчитаем вариант с логарифмом +
 прирост % ( как в первом варианте).

интересно что делать с PoS формулой ?
нам нужен процент меньше общего роста эмиссии - предлагаю пока брать 1%
но вот какая кривая лучше со степенью
1/6 или 1/4 или может 1/8 ?

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

"...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 02, 2013, 08:01:52 PM
 #120

Вы про ту кривую, что у них в wReward присутствует math.Pow(wDiff, float64(0.16666666666666666))?

Так нужна ли она вообще здесь? Там как я понимаю предназначение простое - пока система маленькая, PoW-блоки создают "первоначальную" денежную массу системы. Как только система "поднялась" по мощности - PoW-генерация по-факту удушается, и система начинает эмитировать практически только PoS-блоками.


Данный корень n-й степени и логарифм одновременно вообще станно использовать. одной рукой "урезаем" награду на Х, другой тут же добавляем Y.


Опять-таки имхо, системы эмиссии BTC, NVC, PPC идеологически плохи тем, что сильно завышают долю валюты у первопроходцев (тут о сотнях, даже тысячах первых пользователей-человеков идёт речь, а не об авторах если что). Сильно это нестабильности и спекулятивности добавляет. (Оно конечно такой перекос в любой такой валюте будет, пока не придумают как раздать премайн всем людям земли Grin но специально тормозить через X годков/после появления Y пользователей поступление от эмиссии, это уж совсем перебор).
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!