Nó privado continua desconectando do nó público
2 respostas
- votos
-
- 2019-03-07
Atualização 3/21/19 Os desenvolvedores denúcleofizeram uma correção apartir de
366f64f3df266cf02a06412d6760f73626cf02a2bf
confirmarno ramomainnet
que abordaesseproblema que descrevi abaixo..
Na configuraçãoem que vocêtem umnó
-modoprivado
(para assar) que se conecta anós dianteiros (públicos),você deve definirexplicitamente Seusnósfrontaispara confiarno seunóprivado (usando-peer
argumento DeTezos-Node
ou o arquivo de configuraçãoTezos-Node ou RPCS)! Outro, Há uma chance de queem algummomento seusnós dafrente decidam desconectar-se do seunóprivadoem favor de umnovonovo par. Obugera que havia casos de desconexão de colegas de confiança (nãomuito visíveisporque osnós usados parafavorecer conexões antigas sobrenovas,mas ainda). Nós agoraprotegemos aqueles conexões. Essencialmente,há umnovo recurso quepermite definir seunóprivado como umparem seusnóspúblicos. Quefavorecerá seunóprivado sobrenovosparesem seunópúblico.
.Resposta original
Esteproblemaexiste desde oinício. Oproblema decorre de que onóprivado étratado omesmo quetodos os outrosparesem seunópúblico (mesmo definindo um como confiável). Basicamente,não épriorizando seunóprivadomais altoe,às vezes,seunópúblicopode decidir que seunóprivado émenos "útil" do que outros. Quero dizer,se vocêpensar sobreisso,osnósparticulares são apenas leechers,nãoestão realmente contribuindopara o (s)nópúblico (s)para que seunópúblicopossa desconectar seunóprivadopara outronóna rede. Além disso,se o seunóprivado de algumaforma "misbehaves",comonãofuncionando corretamente ou assumindomuitos recursos,seunópúblicopode atémesmo cinzae nãopermitir conexões do seunóprivado. Embora vocêesperasse a definição como confiável deve aliviarisso!
Amaioria denósprimeirospadeiros resolveesseproblema aumentando onúmero de redundâncias (nóspúblicos),então quando se desconecta,não é umgrandenegócioe deve se reconectarmais cedo oumaistarde. Eu acho queem geral,esta é umaboaideia,pois vocêprovavelmenteprecisará atualizar seusnóse nãoter redundânciatornará oprocessomuitomais complicado. Hojeem dia,acho quemeunóprivado quasenunca se desconecta ao contrário dosprimeiros dias. Minha suspeita é que onóprivadopodeterganho "credibilidade",tipo de oposto de sergraylisted.
Até que umnovo recurso seja adicionado quepodegarantir uma conexãopriorizadanão-interrupção,suasmelhores opções são realmente limitadas atrazermaisnóspúblicos ou adicionar osnós dafundação (provavelmente confiável) como seusnós confiáveis. Uma coisa que vocêpoderiatentar é QuickSync ou copie os dados da cadeiapara o seunóprivadopara que vocênãotem quebootstrap seunóprivado. Épossível que durante oprocesso de sincronização,eleestá sendo desconectado devido aos recursos queexige. Oproblemapode ser ostrabalhadores donóprivado,não o seunópúblico desconectando-o.
Update 3/21/19 Core developers had pushed out a fix as of
366f64f3df266cf02a06412d6760f73626d0a2bf
commit on themainnet
branch that addresses this issue that I described below.In the setting where you have a node in
--private-mode
(to bake) that connects itself to front (public) nodes, you must explicitly set your front nodes to trust your private node (using--peer
argument oftezos-node
or the config file oftezos-node
or RPCs)! Else, there is a chance that at some point your front nodes decide to disconnect themselves from your private node in favour of a fresh new peer. The bug was that there were cases of disconnection of trusted-private-peers (not really visible because nodes used to favour old connections over new ones but still). we've now shielded those connections.Essentially, there is a new feature that allows you to set your private node as a peer on your public nodes. That will favor your private node over new peers on your public node.
Original Answer
This problem has been around since the beginning. The problem stems from that the private node is treated the same as every other peer in your public node(even setting one as trusted). Basically it's not prioritizing your private node higher and sometimes your public node may decide that your private node is less "useful" than others. I mean if you think about it, private nodes are just leechers, not really contributing to your public node(s) so your public node might disconnect your private node for another node in the network. Also if your private node somehow "misbehaves" such as not functioning correctly or taking up too much resources, your public node might even graylist it and not allow connections from your private node. Though you would expect setting as trusted should alleviate that!
Most of us early bakers solve this problem by increasing the number of redundancies(public nodes) so when one disconnects it's not a big deal and it should reconnect sooner or later. I think in general, this is a good idea as you'll likely need to upgrade your nodes and having no redundancy will make the process much trickier. These days, I actually find that my private node almost never disconnects unlike the early days. My suspicion is that the private node might have gain "credibility", kind of opposite of being graylisted.
Until a new feature is added that can ensure an undisrupted prioritized connection, your best options are really limited to bringing up more public nodes or adding the foundation nodes(likely trustworthy) as your trusted nodes. One thing you could try is quicksync or copy the chain data to your private node so you don't have to bootstrap your private node. It's possible that during the syncing process, it's getting disconnected due to the resources it's requiring. The problem could be your private node's workers, not your public node disconnecting it.
-
Vocêpodeespecificar a lista denós defundação confiáveis?Can you specify list of trusted foundation nodes?
- 0
- 2019-03-08
- Sachin Tomar
-
https://tezos.stackexchange.com/Questions/723/can-someone-provide-List-f-frusted-foundation-nodes.https://tezos.stackexchange.com/questions/723/can-someone-provide-list-of-trusted-foundation-nodes
- 0
- 2019-03-08
- Frank
-
Quetalexecutar um scriptem nossonópúblico quemantém a verificação do status da conexão com onóprivadoe,senãoencontrarnenhuma conexão,eleexecuta um comandopara se conectar automaticamente aonóprivado automaticamente.Estaparece ser a solução além deter váriosnóspúblicos?how about running a script on our public node that keep checking the connection status with private node and if it finds no connection it runs a command to connect to private node automatically. Does this seems to be the solution apart from having multiple public nodes?
- 0
- 2019-03-14
- Sachin Tomar
-
@Sachintomar quenãofuncionaporque osnósprivados rejeitarão as conexõesexternas.Talvezpossafuncionar se você detectá-lono lado donóprivado?@SachinTomar that won't work because private nodes will reject external connections. Maybe it can work if you detect it on the private node side?
- 0
- 2019-03-14
- Frank
-
Na verdade,estouenfrentando o oposto do que você disse.Quandoeu corro ./mainnet.sh address Connect-Client Address Private-Node-IP: 9732 donópúblico,ele cria uma conexão com onóprivado.Mas omesmo comandononóprivado com oip donópúblicono comandofalha com amensagem "Não épossível conectar. Onóestá sendoexecutadononóprivado" Nota: Eu adicionei o IP donópúblicona lista deparesnonóprivado.Actually i am facing opposite of what you said. When i run ./mainnet.sh admin-client connect address private-node-ip:9732 from public node, it creates a connection to private node. But same command on private node with public-node ip in command fails with message "Cannot connect. Node is running in private node" NOTE: i have added the public-node ip in peer list in private node.
- 0
- 2019-03-15
- Sachin Tomar
-
Como você define opeer como confiávelno "arquivo de configuração donó Tezos"?How do you set the peer as trusted in "the config file of tezos-node"?
- 0
- 2019-04-17
- Svante
-
@Svanteprovavelmente vale apena umapergunta diferenteparaperguntar comoespecificar osparesno arquivo de configuração donó.@Svante it's probably worth a different question to ask how to specify peers in the node config file.
- 0
- 2019-04-17
- Frank
-
@Frank Boaidéia,feito: https://tezos.stackexchange.com/questions/1102/How-Can-i-set-trused-peers-by-idityity-in-the-tezos-node-config-file@Frank Good idea, done: https://tezos.stackexchange.com/questions/1102/how-can-i-set-trusted-peers-by-identity-in-the-tezos-node-config-file
- 0
- 2019-04-17
- Svante
-
- 2019-03-07
Enquantoissonão responde diretamente suapergunta,ofornotem um recurso quepodenotificá-lo quando seunóprivadoperde conexões.
Quando você configura ofornoparamonitorar onóprivado,inclua um "númeromínimo depares"nainterface do usuário.Se ospares do seunóprivado caírem abaixo dessenúmero,você receberá umanotificação.
While this does not directly answer your question, Kiln has a feature that can notify you when your Private Node loses connections.
When you configure Kiln to monitor the Private Node, include a 'minimum number of peers' in the UI. If your Private Node's peers drop below that number, you'll receive a notification.
-
Obrigado.Configuração demonitoramentoe alerta realmente ajuda agarantir quenossonóesteja sendoexecutadoem estado saudável.Eunãopreciso verificarmeunó denovoe denovo agora.Thanks. Setting monitoring and alerting really helps to ensure our node is running in healthy state. I don't need to check my node again and again now.
- 0
- 2019-03-14
- Sachin Tomar
Eutenho umnóprivadoe umnópúblico.Eu adicionei um a outroendereçona respectiva lista deendereços de confiança usando o comando abaixo:
Inicialmente onóprivadonão se conectará aonópúblico,entãoeutenho que usar o comando connect donópúblico,conformemencionado abaixo:
Agora,meunóprivadoestá conectado aomeunópúblicoe comece a sincronizar oblockchain.Mas a conexão quebra depois de algumtempoe a sincronizaçãopára.Isso aconteceutrês vezesem 2 dias.
Eunãoestou confiante o suficientepara começar a cozernonóprivado se a única conexão única quebrar automaticamente.
qualquer outra coisa queeu devofazerparagarantir otempo de atividade de conexão 24x7?