Bitcoin Forum
November 21, 2017, 07:44:54 PM *
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 19164 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


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

Posts: 1511293494

View Profile Personal Message (Offline)

Ignore
1511293494
Reply with quote  #2

1511293494
Report to moderator
1511293494
Hero Member
*
Offline Offline

Posts: 1511293494

View Profile Personal Message (Offline)

Ignore
1511293494
Reply with quote  #2

1511293494
Report to moderator
1511293494
Hero Member
*
Offline Offline

Posts: 1511293494

View Profile Personal Message (Offline)

Ignore
1511293494
Reply with quote  #2

1511293494
Report to moderator
Join ICO Now A blockchain platform for effective freelancing
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1511293494
Hero Member
*
Offline Offline

Posts: 1511293494

View Profile Personal Message (Offline)

Ignore
1511293494
Reply with quote  #2

1511293494
Report to moderator
1511293494
Hero Member
*
Offline Offline

Posts: 1511293494

View Profile Personal Message (Offline)

Ignore
1511293494
Reply with quote  #2

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

Activity: 938


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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!