Bitcoin Forum
May 17, 2024, 11:58:38 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Nova Moeda - ajuda/brainstorming  (Read 1589 times)
mmboulhosa
Full Member
***
Offline Offline

Activity: 140
Merit: 100

★YoBit.Net★ 350+ Coins Exchange & Dice


View Profile WWW
March 05, 2016, 04:16:47 PM
 #21

"Blocos de 20 segundos eu não recomendo, porque é muito próximo do tempo de propagação de um bloco pela rede, principalmente se forem blocos com muitas transações. Isso vai gerar MUITO bloco órfão e sobrecarregar a blockchain (além e frustrar os mineradores)."

É exatamente por esse motivo que vi muitas moedas indo para o brejo. Isso é um ponto crucial que alguns programadores acabam ignorando.

É só fazer blocos mais leves (por exemplo,3x menos pesados do que os de uma moeda de 60s),que eles se propagam muito mais rápido pela rede.

Isso não resolve o problema. A maioria das moedas tem muito poucas transações nos blocos então eles são "leves" por natureza. A questão aqui não é a largura de banda, mas o tempo minimo que uma informação, por menor que seja, leva pra sair de um lugar e chegar em outro (o tempo de "ping" por assim dizer). Além disso, a distribuição dos tempos de bloco é aleatória, com média em 60s (ou 20s), e por ser uma distribuição exponencial (com cauda longa) a grande maioria dos blocos vai ter tempo BEM MENOR que a média. Isso não faz muita diferença se vc tem blocos muito maiores que o tempo de propagação (segundo esse pessoal da ethereum, 12s hoje), mas com um bloco muito proximo do tempo de propagação (menos do dobro, no caso) uma quantidade significativa dos blocos seria encontrada antes do bloco, por mais leve que fosse, terminasse de se propagar (mais de 30%, eu estimo).

Enfim, não é uma coisa simples de se resolver e o pessoal da ethereum brigou muito com esse problema!

Acabei de ver no artigo ele mostra que o stale rate pra um tempo de propagação de 12 segundos é: 1 / (1 + 12s/T) onde T é o tempo do bloco, então mesmo que eu reduzisse o tempo de propagação pra 4s, eu ainda teria 1 - 1 / (1 + 4/20) 0.1666, ou 16%  de blocos inválidos. Mesmo com blocos mais leves, eu não vejo uma redução de mais de 50%, então teriamos 1 - 1 / (1 + 6/20) ~= 23%. Com os 12s, temos 37.5% de blocos invalidos (e mais de um terço dos mineradores raivosos te perseguindo com foices e ancinhos)
Será que uma rede estável de nodes ajudaria?Com 12s tem  37.5% de blocos inválidos ,mas com 20s a rede tem um tempo bem maior para a propagação.Eu testei em uma coin com baixa dificuldade e blocktime de 20s,eu estava com 99% da velocidade da network e obtive os seguintes resultados:2788 blocos achados,2664 blocos confirmados(você pode ver na minha pool minedowns.ga,a moeda bloodcoin)

Vc tinha mais de 50% do hashrate e ainda assim conseguiu blocos invalidos? sua pool está com algum problema sério então! Com 50% do hashrate vc consegue garantir 100% de blocos válidos (o famoso ataque de 51%).


Ah, agora entendi. Você tem 2664 encontrados pela pool dos 2788 emitidos pela rede. Mas veja que você tem 0 blocos órfãos, porque quem decide se um bloco é orfão ou não é você (que tem mais de 50% da rede). Se você centralizar o poder de mineração em uma unica pool, sim você acaba com o problema, porque o tempo de progação da pool pra ela mesma é 0.

Mas você pode ver parte do problema nas "shares" recebidas. O tempo de propagação entre a pool e os mineradores (onde são trasmitidos apenas 80 bytes por bloco, ou seja, o tempo de transmissão é ridiculamente baixo) é suficiente pra te dar 5% de shares inválidas. Agora considera que numa rede não centralizada, esse tempo de transmissão vai ser ainda maior (dezenas de vezes maior), esses 5% vão crescer absurdamente.
Realmente,você tem razão.Mas você recomendaria qual blocktime para uma moeda bem estável nesse quesito?Vou tentar achar uma moeda em que o poder não seja centralizado em mim(meu rig dá 60mh/s minerando moedas quark),com as mesmas especificações e realizar o teste novamente.
OBS:Acabei de checar que por algum motivo a contagem de blocos orfãos crashou,pois tinha mais de 100 blocos de QuarkCoin orfãos.

██████████    YoBit.net - Cryptocurrency Exchange - Over 350 coins
█████████    <<  ● $$$ - $$$ - $$$ - $$$ - $$$ - $$$ - $$$   >>
██████████    <<  ● Play DICE! Win 1-5 btc just for 5 mins!  >>
girino
Legendary
*
Offline Offline

Activity: 2296
Merit: 1170


Advertise Here - PM for more info!


View Profile
March 05, 2016, 04:34:40 PM
 #22

"Blocos de 20 segundos eu não recomendo, porque é muito próximo do tempo de propagação de um bloco pela rede, principalmente se forem blocos com muitas transações. Isso vai gerar MUITO bloco órfão e sobrecarregar a blockchain (além e frustrar os mineradores)."

É exatamente por esse motivo que vi muitas moedas indo para o brejo. Isso é um ponto crucial que alguns programadores acabam ignorando.

É só fazer blocos mais leves (por exemplo,3x menos pesados do que os de uma moeda de 60s),que eles se propagam muito mais rápido pela rede.

Isso não resolve o problema. A maioria das moedas tem muito poucas transações nos blocos então eles são "leves" por natureza. A questão aqui não é a largura de banda, mas o tempo minimo que uma informação, por menor que seja, leva pra sair de um lugar e chegar em outro (o tempo de "ping" por assim dizer). Além disso, a distribuição dos tempos de bloco é aleatória, com média em 60s (ou 20s), e por ser uma distribuição exponencial (com cauda longa) a grande maioria dos blocos vai ter tempo BEM MENOR que a média. Isso não faz muita diferença se vc tem blocos muito maiores que o tempo de propagação (segundo esse pessoal da ethereum, 12s hoje), mas com um bloco muito proximo do tempo de propagação (menos do dobro, no caso) uma quantidade significativa dos blocos seria encontrada antes do bloco, por mais leve que fosse, terminasse de se propagar (mais de 30%, eu estimo).

Enfim, não é uma coisa simples de se resolver e o pessoal da ethereum brigou muito com esse problema!

Acabei de ver no artigo ele mostra que o stale rate pra um tempo de propagação de 12 segundos é: 1 / (1 + 12s/T) onde T é o tempo do bloco, então mesmo que eu reduzisse o tempo de propagação pra 4s, eu ainda teria 1 - 1 / (1 + 4/20) 0.1666, ou 16%  de blocos inválidos. Mesmo com blocos mais leves, eu não vejo uma redução de mais de 50%, então teriamos 1 - 1 / (1 + 6/20) ~= 23%. Com os 12s, temos 37.5% de blocos invalidos (e mais de um terço dos mineradores raivosos te perseguindo com foices e ancinhos)
Será que uma rede estável de nodes ajudaria?Com 12s tem  37.5% de blocos inválidos ,mas com 20s a rede tem um tempo bem maior para a propagação.Eu testei em uma coin com baixa dificuldade e blocktime de 20s,eu estava com 99% da velocidade da network e obtive os seguintes resultados:2788 blocos achados,2664 blocos confirmados(você pode ver na minha pool minedowns.ga,a moeda bloodcoin)

Vc tinha mais de 50% do hashrate e ainda assim conseguiu blocos invalidos? sua pool está com algum problema sério então! Com 50% do hashrate vc consegue garantir 100% de blocos válidos (o famoso ataque de 51%).


Ah, agora entendi. Você tem 2664 encontrados pela pool dos 2788 emitidos pela rede. Mas veja que você tem 0 blocos órfãos, porque quem decide se um bloco é orfão ou não é você (que tem mais de 50% da rede). Se você centralizar o poder de mineração em uma unica pool, sim você acaba com o problema, porque o tempo de progação da pool pra ela mesma é 0.

Mas você pode ver parte do problema nas "shares" recebidas. O tempo de propagação entre a pool e os mineradores (onde são trasmitidos apenas 80 bytes por bloco, ou seja, o tempo de transmissão é ridiculamente baixo) é suficiente pra te dar 5% de shares inválidas. Agora considera que numa rede não centralizada, esse tempo de transmissão vai ser ainda maior (dezenas de vezes maior), esses 5% vão crescer absurdamente.
Realmente,você tem razão.Mas você recomendaria qual blocktime para uma moeda bem estável nesse quesito?Vou tentar achar uma moeda em que o poder não seja centralizado em mim(meu rig dá 60mh/s minerando moedas quark),com as mesmas especificações e realizar o teste novamente.
OBS:Acabei de checar que por algum motivo a contagem de blocos orfãos crashou,pois tinha mais de 100 blocos de QuarkCoin orfãos.

Dá pra fazer uma continha. Pra ter menos de 5% de órfãos, com tempo de propagação de 12 segundos, preciso de 1 - 1 / (1 + 12/T) = 0.05, ou seja T = 228s, ou 3 minutos e 48s. Esse seria o tempo ideal. Pra 10%, um valor razoável, 108 segundos.

Considerando uma rede mais rapida e menor que a rede bitcoin, (ou seja, considerando que quando sua moeda suplantar o bitcoin a internet do mundo vai ser mais rapida), e tempo de 6s, dá pra reduzir isso: 54s e 114s respectivamente.

Com essas considerações eu usaria o tempo de 1 minuto (60s). Ou então estudaria a ethereum e implementaria o mecanismo deles de recompensar blocos órfãos.

Advertise Here - PM for more info!
lipsmega (OP)
Newbie
*
Offline Offline

Activity: 35
Merit: 0



View Profile WWW
March 19, 2016, 12:27:15 AM
 #23

Credo.. vocês são os caras e esta discussão está ficando muito complexa para mim... o que eu gostaria de saber é se vocês hoje fossem criar uma moeda para amplo uso no mercado (transações o mais rápidas possíveis, mineração 'eficiente' - qualquer pessoa pode contribuir), quais seriam as configurações da mesma que vocês usariam no desenvolvimento ou passariam para um desenvolvedor fazer? qual algoritmo usar? (obs: não considero uma ideia legal a longo prazo criar uma moeda sobre o blockchain de outra)
mmboulhosa
Full Member
***
Offline Offline

Activity: 140
Merit: 100

★YoBit.Net★ 350+ Coins Exchange & Dice


View Profile WWW
March 22, 2016, 11:48:27 PM
 #24

Credo.. vocês são os caras e esta discussão está ficando muito complexa para mim... o que eu gostaria de saber é se vocês hoje fossem criar uma moeda para amplo uso no mercado (transações o mais rápidas possíveis, mineração 'eficiente' - qualquer pessoa pode contribuir), quais seriam as configurações da mesma que vocês usariam no desenvolvimento ou passariam para um desenvolvedor fazer? qual algoritmo usar? (obs: não considero uma ideia legal a longo prazo criar uma moeda sobre o blockchain de outra)
Respondendo rapidamente:Quark ou X11 com blocos de 40 segundos.Seria bem interessante um "clone" da DASH,com masternodes,darksend porém com o algoritmo Quark (ou o X11 original)e blocos mais rápidos.

██████████    YoBit.net - Cryptocurrency Exchange - Over 350 coins
█████████    <<  ● $$$ - $$$ - $$$ - $$$ - $$$ - $$$ - $$$   >>
██████████    <<  ● Play DICE! Win 1-5 btc just for 5 mins!  >>
lipsmega (OP)
Newbie
*
Offline Offline

Activity: 35
Merit: 0



View Profile WWW
March 29, 2016, 07:35:07 PM
 #25

Credo.. vocês são os caras e esta discussão está ficando muito complexa para mim... o que eu gostaria de saber é se vocês hoje fossem criar uma moeda para amplo uso no mercado (transações o mais rápidas possíveis, mineração 'eficiente' - qualquer pessoa pode contribuir), quais seriam as configurações da mesma que vocês usariam no desenvolvimento ou passariam para um desenvolvedor fazer? qual algoritmo usar? (obs: não considero uma ideia legal a longo prazo criar uma moeda sobre o blockchain de outra)
Respondendo rapidamente:Quark ou X11 com blocos de 40 segundos.Seria bem interessante um "clone" da DASH,com masternodes,darksend porém com o algoritmo Quark (ou o X11 original)e blocos mais rápidos.
Muito obrigado pela resposta.. penso sim no x11 original. Darksend é sempre um atributo positivo? no caso do x11 original qual a melhor velocidade para os blocos? (visando sempre um uso em larga escala como moeda)
girino
Legendary
*
Offline Offline

Activity: 2296
Merit: 1170


Advertise Here - PM for more info!


View Profile
March 29, 2016, 09:03:02 PM
 #26

Credo.. vocês são os caras e esta discussão está ficando muito complexa para mim... o que eu gostaria de saber é se vocês hoje fossem criar uma moeda para amplo uso no mercado (transações o mais rápidas possíveis, mineração 'eficiente' - qualquer pessoa pode contribuir), quais seriam as configurações da mesma que vocês usariam no desenvolvimento ou passariam para um desenvolvedor fazer? qual algoritmo usar? (obs: não considero uma ideia legal a longo prazo criar uma moeda sobre o blockchain de outra)
Respondendo rapidamente:Quark ou X11 com blocos de 40 segundos.Seria bem interessante um "clone" da DASH,com masternodes,darksend porém com o algoritmo Quark (ou o X11 original)e blocos mais rápidos.
Muito obrigado pela resposta.. penso sim no x11 original. Darksend é sempre um atributo positivo? no caso do x11 original qual a melhor velocidade para os blocos? (visando sempre um uso em larga escala como moeda)

Você precisa fazer uma escolha de quanto você acha que é um numero aceitável de órfãos. eu não usaria menos de 60s por bloco nunca, mas se vc acha que uma quantidade grande de órfãos é um preço justo a se pagar pela maior velocidade de confirmação, abaixe o tempo até quanto vc acha razoável.

Advertise Here - PM for more info!
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!