Title: Programação - bloco atual Post by: FabioCarpi on October 02, 2014, 09:18:38 PM Desconectei a internet do meu pc e iniciei o bitcoin de maneira limpa
Ele diz que está no bloco 0 e falta 5 anos de blocos pra baixar Da onde ele tirou isso? Já vem na programação o número do bloco que existia quando a versão foi compilada? Eu esperava que ele dissesse que estava sincronizado com 0 bloco e aguardando novos peers Eu tinha até preparado um outro pc com o programa limpo pra ver se eles conversavam... Mas nem tentei depois dessa... Title: Re: Programação - bloco atual Post by: algorista on October 03, 2014, 06:58:23 AM No fonte há a data do bloco genesis (Sat, 03 Jan 2009 18:15:05 GMT)* (https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L89) então o resto é uma conta simples (https://github.com/bitcoin/bitcoin/blob/master/src/qt/bitcoingui.cpp#L693)*.
Faça o mesmo experimento alterando o calendário do seu computador. Quanto ao outro cliente em rede eu acredito que não seria encontrado nem mesmo estando ambos na internet. Para haver a comunicação pela rede local voce precisaria editar o arquivo bitcoin.conf (https://en.bitcoin.it/wiki/Running_Bitcoin#Bitcoin.conf_Configuration_File) e adicionar uma linha "addnode=<SEU IP>" * https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L89 * https://github.com/bitcoin/bitcoin/blob/master/src/qt/bitcoingui.cpp#L693 Title: Re: Programação - bloco atual Post by: girino on October 03, 2014, 02:40:27 PM No fonte há a data do bloco genesis (Sat, 03 Jan 2009 18:15:05 GMT)* (https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L89) então o resto é uma conta simples (https://github.com/bitcoin/bitcoin/blob/master/src/qt/bitcoingui.cpp#L693)*. Faça o mesmo experimento alterando o calendário do seu computador. Quanto ao outro cliente em rede eu acredito que não seria encontrado nem mesmo estando ambos na internet. Para haver a comunicação pela rede local voce precisaria editar o arquivo bitcoin.conf (https://en.bitcoin.it/wiki/Running_Bitcoin#Bitcoin.conf_Configuration_File) e adicionar uma linha "addnode=<SEU IP>" * https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L89 * https://github.com/bitcoin/bitcoin/blob/master/src/qt/bitcoingui.cpp#L693 Tem também o problema dos checkpoints. Se seu objetivo for fazer uma rede "paralela" de bitcoin, assim que ele atingir o primeiro checkpoint ele vai "forkar". Title: Re: Programação - bloco atual Post by: FabioCarpi on October 03, 2014, 06:31:42 PM Tem também o problema dos checkpoints. Se seu objetivo for fazer uma rede "paralela" de bitcoin, assim que ele atingir o primeiro checkpoint ele vai "forkar". Pode explicar melhor? Eu sei o que é forkar. Só não entendi a parte dos checkpoints.Quanto ao outro cliente em rede eu acredito que não seria encontrado nem mesmo estando ambos na internet. Porque?Title: Re: Programação - bloco atual Post by: girino on October 03, 2014, 09:39:08 PM Tem também o problema dos checkpoints. Se seu objetivo for fazer uma rede "paralela" de bitcoin, assim que ele atingir o primeiro checkpoint ele vai "forkar". Pode explicar melhor? Eu sei o que é forkar. Só não entendi a parte dos checkpoints.http://www.justfuckinggoogleit.com/search/bitcoin+checkpoints Title: Re: Programação - bloco atual Post by: algorista on October 04, 2014, 12:26:56 AM Quanto ao outro cliente em rede eu acredito que não seria encontrado nem mesmo estando ambos na internet. Porque?O Bitcoin possui um esquema de discovery (https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery) que não privilegia a rede local, para encontrar os nodes é usada uma lista inicial de IPs contida no arquivo peers.dat e também em alguns DNS definidos no código fonte (https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L97-L102), versões antigas também usavam um canal IRC para encontrar os nodes (mas essa funcionalidade foi desabilitada). A lista de nodes (peers.dat) é atualizada dinamicamente ao conseguir conectar a qualquer node, requisitando a este que informe sua lista de outros nodes. No peers.dat inicialmente não há nenhum ip de rede local (192.168.x.x, 10.x.x.x, 172.16-31.x.x) por isso os nodes da rede local não são encontrados automaticamente, você precisa informá-los no arquivo bitcoin.conf. Talvez também seja possível executar o comando addnode ou connect pelo console, mas nunca tentei. https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L97-L102 Title: Re: Programação - bloco atual Post by: girino on October 04, 2014, 12:38:19 AM Quanto ao outro cliente em rede eu acredito que não seria encontrado nem mesmo estando ambos na internet. Porque?O Bitcoin possui um esquema de discovery (https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery) que não privilegia a rede local, para encontrar os nodes é usada uma lista inicial de IPs contida no arquivo peers.dat e também em alguns DNS definidos no código fonte (https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L97-L102), versões antigas também usavam um canal IRC para encontrar os nodes (mas essa funcionalidade foi desabilitada). A lista de nodes (peers.dat) é atualizada dinamicamente ao conseguir conectar a qualquer node, requisitando a este que informe sua lista de outros nodes. No peers.dat inicialmente não há nenhum ip de rede local (192.168.x.x, 10.x.x.x, 172.16-31.x.x) por isso os nodes da rede local não são encontrados automaticamente, você precisa informá-los no arquivo bitcoin.conf. Talvez também seja possível executar o comando addnode ou connect pelo console, mas nunca tentei. https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L97-L102 o addnode pelo console funciona, mas demooooora.. acho que ele coloca o node com baixa prioridade ou algo assim, e demora quase uns 10 minutos até a primeira tentativa de conexão nele (dá pra vigiar no log).... Title: Re: Programação - bloco atual Post by: algorista on October 04, 2014, 12:50:48 AM o addnode pelo console funciona, mas demooooora.. acho que ele coloca o node com baixa prioridade ou algo assim, e demora quase uns 10 minutos até a primeira tentativa de conexão nele (dá pra vigiar no log).... Será que essa demora não é por causa do limite de 8 conexões (MAX_OUTBOUD_CONNECTION) (https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L55) ? pensando aqui acho que o client só vai tentar uma nova conexão quando uma das 8 desconectar. Vou testar isso, agora fiquei curioso ;D Title: Re: Programação - bloco atual Post by: FabioCarpi on October 05, 2014, 05:10:22 AM tem como aumentar o limite de conexões?
Da pra editar o peers.dat? Title: Re: Programação - bloco atual Post by: JeisonDras on October 05, 2014, 10:59:00 AM tem como aumentar o limite de conexões? Da pra editar o peers.dat? maxconnections=10 ? ou 20 ? talvez uns 200 ? aqui (https://blockchain.info/en/connected-nodes) tem uma lista com mtus nodes agora tem um total de 468 conectados e aqui (https://en.bitcoin.it/wiki/Running_Bitcoin#Command-line_arguments) uma lista de comandos pra vc usar... Title: Re: Programação - bloco atual Post by: FabioCarpi on October 05, 2014, 11:46:27 AM a opção maxconnections=10 não funciona...
Title: Re: Programação - bloco atual Post by: Adriano on October 05, 2014, 12:12:44 PM o addnode pelo console funciona, mas demooooora.. acho que ele coloca o node com baixa prioridade ou algo assim, e demora quase uns 10 minutos até a primeira tentativa de conexão nele (dá pra vigiar no log).... Será que essa demora não é por causa do limite de 8 conexões (MAX_OUTBOUD_CONNECTION) (https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L55) ? pensando aqui acho que o client só vai tentar uma nova conexão quando uma das 8 desconectar. Vou testar isso, agora fiquei curioso ;D Neste caso a melhor opção é utilizar connect ao invés de addnode. Eu utilizo uma configuração parecida, onde tenho um node executando 24x7 normalmente e em meu laptop conecto via connect neste node quando inicializo o bitcoind. A diferença é que o connect vai conectar apenas no host informado (nome dns ou IP, tanto faz) enquanto que o addnode vai "simular" que o host estava no peers.dat e fazer o processo comum de conectar nele e tentar conectar em outros peers. Quanto à demora quando se está utilizando peers através da console, imagino que esteja sim relacionado ao número máximo de conexões. Creio que se a opção estiver incluida no arquivo de configuração durante a inicialização do daemon não haverá demora... de preferência com o arquivo peers.dat zerado ou inexistente. Abraço, Adriano Title: Re: Programação - bloco atual Post by: Adriano on October 05, 2014, 12:17:35 PM tem como aumentar o limite de conexões? Da pra editar o peers.dat? maxconnections=10 ? ou 20 ? talvez uns 200 ? aqui (https://blockchain.info/en/connected-nodes) tem uma lista com mtus nodes agora tem um total de 468 conectados e aqui (https://en.bitcoin.it/wiki/Running_Bitcoin#Command-line_arguments) uma lista de comandos pra vc usar... Esta lista do blockchain.info é "apenas" dos nodes conectados aos servidores deles... digo apenas porque são muitos comparados a qualquer node em execução. Para ter uma ideia melhor do número de nodes na rede, eu utilizo https://getaddr.bitnodes.io/ (além de poder navegar entre as diversas informações - endereço IP, versão, localização, data center, etc). Agora são quase 8000 nodes ativos. Abraço, Adriano Title: Re: Programação - bloco atual Post by: algorista on October 05, 2014, 05:31:41 PM a opção maxconnections=10 não funciona... Essa opção só afeta as conexões recebidas, para alterar as conexões efetuadas (o limite de 8 ) só alterando no código fonte (https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L55) e recompilando. Title: Re: Programação - bloco atual Post by: girino on October 05, 2014, 09:05:18 PM a opção maxconnections=10 não funciona... Essa opção só afeta as conexões recebidas, para alterar as conexões efetuadas (o limite de 8 ) só alterando no código fonte (https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L55) e recompilando. e usando windows server também.. windows home também limita as conexões por processo. |