El nodo privado sigue desconectándose del nodo público
2 respuestas
- votos
-
- 2019-03-07
Actualización del 21/03/19 Los desarrolladoresprincipales habían lanzado una solución apartir de
366f64f3df266cf02a06412d6760f73626d0a2bf
commiten la ramamainnet
que abordaesteproblema que describí a continuación.En la configuración dondetiene unnodoen
--private-mode
(para hornear) que se conecta a losnodosfrontales (públicos),debeestablecerexplícitamente susnodosfrontalespara confiaren sunodoprivado (usandoel argumento--peer
detezos-node
oel archivo de configuración detezos-node
o RPC)! Más, Existe laposibilidad de queen algúnmomento susnodosfrontales decidan desconectarse de sunodoprivado afavor de unnuevo yfresco mirar. Elerrorfue que hubo casos de desconexión de pares-privados-confiables (no son realmente visiblesporque losnodos solíanfavorecer conexiones antiguas sobrenuevas,pero aún así). ahora hemosprotegido aesos conexiones.Esencialmente,hay unanueva característica que lepermite configurar sunodoprivado como unparen susnodospúblicos. Esofavorecerá sunodoprivado sobre losnuevosparesen sunodopúblico.
Respuesta original
Esteproblema haexistido desdeelprincipio. Elproblema se debe a queelnodoprivado setrata de lamismamanera que cualquier otroparen sunodopúblico (inclusoestableciendo uno como confiable). Básicamente,no setrata depriorizarmás sunodoprivado y,a veces,sunodopúblicopuede decidir que sunodoprivadoesmenos "útil" que otros. Quiero decir,si lopiensasbien,losnodosprivados son solo leechers,no contribuyen realmente atusnodospúblicos,por lo quetunodopúblicopodría desconectartunodoprivadopara otronodoen la red. Además,si sunodoprivado de algunamanera "se comportamal",comonofuncionar correctamente o consumir demasiados recursos,sunodopúblicopodríainclusoponerloen una listagris ynopermitir conexiones desde sunodoprivado. ¡Aunqueesperaría queestablecer como confiable debería aliviareso!
Lamayoría denosotros,losprimerospanaderos,solucionamosesteproblema aumentandoelnúmero de redundancias (nodospúblicos),por lo que cuando uno se desconectanoes ungranproblema y debería volver a conectarsetarde otemprano. Creo que,en general,estaes unabuenaidea,ya queprobablementenecesitará actualizar susnodos ynotener redundancia hará queelproceso seamuchomás complicado. Enestos días,encuentro quemi nodoprivado casinunca se desconecta a diferencia de losprimeros días. Mi sospechaes queelnodoprivadopodría haberganado "credibilidad",algo opuesto aestaren la listagris.
Hasta que se agregue unanuevafunción quepuedagarantizar una conexiónpriorizada sininterrupciones,susmejores opcionesestán realmente limitadas atraermásnodospúblicos o agregar losnodos debase (probablemente confiables) como susnodos confiables. Una cosa quepodríaintentares quicksync o copiar los datos de la cadenaen sunodoprivadopara queno lo hagatienes que arrancartunodoprivado. Esposible que duranteelproceso de sincronización,se desconecte debido a los recursos que requiere. Elproblemapodría ser que lostrabajadores de sunodoprivado,no sunodopúblico,lo desconecten.
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.
-
¿Puedeespecificar una lista denodosfundamentales de confianza?Can you specify list of trusted foundation nodes?
- 0
- 2019-03-08
- Sachin Tomar
-
https://tezos.stackexchange.com/questions/723/can-someone-provide-list-of-trusted-foundation-nodeshttps://tezos.stackexchange.com/questions/723/can-someone-provide-list-of-trusted-foundation-nodes
- 0
- 2019-03-08
- Frank
-
¿Quétalejecutar un scripten nuestronodopúblico que sigue verificandoelestado de la conexión conelnodoprivado y sinoencuentraninguna conexión,ejecuta un comandopara conectarse alnodoprivado automáticamente?¿Estaparece ser la solución además detenermúltiplesnodospú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 quenofuncionaráporque losnodosprivados rechazarán las conexionesexternas.¿Quizáspuedafuncionar si lo detectaen el lado delnodoprivado?@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
-
En realidad,estoyfrente a lo contrario de lo que dijiste.Cuandoejecuto ./mainnet.sh admin-client connect addressprivate-node-ip: 9732 desdeelnodopúblico,crea una conexión alnodoprivado.Peroelmismo comandoen elnodoprivado con laip delnodopúblicoen el comandofalla conelmensaje "No sepuede conectar. Elnodo seestáejecutandoen elnodoprivado" NOTA: He agregado la IP delnodopúblicoen la lista deparesen elnodoprivado.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
-
¿Cómo se configuraelpar como de confianzaen "el archivo de configuración detezos-node"?How do you set the peer as trusted in "the config file of tezos-node"?
- 0
- 2019-04-17
- Svante
-
@Svanteprobablemente valga lapena hacer unapregunta diferenteparapreguntar cómoespecificarparesen el archivo de configuración delnodo.@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 Buenaidea,hecho: https://tezos.stackexchange.com/questions/1102/how-can-i-set-trusted-peers-by-identity-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
Sibien estono responde directamente a supregunta,Kilntiene unafunción quepuedenotificarle cuando sunodoprivadopierde conexiones.
Cuando configure Kilnparamonitorearelnodoprivado,incluya un 'númeromínimo depares'en lainterfaz de usuario.Si lospares de sunodoprivado caenpor debajo deesenúmero,recibirá unanotificación.
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.
-
Gracias.Configurarelmonitoreo y las alertas realmente ayuda agarantizar quenuestronodo seestéejecutandoen buenestado.Nonecesito comprobarmi nodo una y otra vez ahora.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
Tengo unnodoprivado y unnodopúblico.He agregado las direcciones de cada unoen la lista de direcciones de confianza respectiva usandoel siguiente comando:
Inicialmente,elnodoprivadono se conectará alnodopúblico,así quetengo que usarel comando de conexión desdeelnodopúblico como semenciona a continuación:
Ahorami nodoprivadoestá conectado ami nodopúblico y comienza a sincronizar la cadena debloques.Pero la conexión seinterrumpe automáticamente después de untiempo y la sincronización se detiene.Esto ha sucedidotres vecesen dos días.
Notengo la suficiente confianzaparaempezar a hornearen unnodoprivado si la única conexión se rompe automáticamente.
¿Algomás que deba hacerpara asegurareltiempo de actividad de la conexión 24x7?