プライベートノードはパブリックノードから切断され続けます
2 回答
- 投票
-
- 2019-03-07
Update 3/21/19コア開発者は、
366f64f3df266cf02a06412d6760f73626d0a2bf
ブランチでのmainnet
commitの時点で、以下で説明するこの問題に対処する修正をプッシュしました.ノードが
--private-mode
にある設定(ベイクする) フロント(パブリック)ノードに接続する場合は、明示的に設定する必要があります フロントノードがプライベートノードを信頼する(--peer
引数を使用)tezos-node
またはtezos-node
またはRPCの設定ファイル)!そうしないと、 ある時点で、フロントノードが次のことを決定する可能性があります. 新しいものを優先して、プライベートノードから自分自身を切断します ピア.バグは、切断のケースがあったということでした 信頼できるプライベートピア(ノードが優先していたため、実際には表示されません 新しい接続よりも古い接続ですが、それでも).私たちは今それらを保護しました 接続.基本的に、プライベートノードをパブリックノードのピアとして設定できる新機能があります.これにより、パブリックノード上の新しいピアよりもプライベートノードが優先されます.
元の回答
この問題は最初からありました.この問題は、プライベートノードがパブリックノード内の他のすべてのピアと同じように扱われることに起因します(信頼できるものとして設定する場合でも).基本的に、プライベートノードの優先順位は高くなく、パブリックノードがプライベートノードの「有用性」が他のノードよりも低いと判断する場合があります.つまり、プライベートノードは単なるリーチャーであり、パブリックノードに実際に貢献していないため、パブリックノードがネットワーク内の別のノードのプライベートノードを切断する可能性があります.また、プライベートノードが正しく機能しない、リソースを大量に消費するなど、何らかの理由で「誤動作」した場合、パブリックノードはそれをグレーリストに登録し、プライベートノードからの接続を許可しない可能性があります.信頼できるものとして設定すると、それが軽減されるはずですが!
私たちのほとんどの初期のパン屋は、冗長性(パブリックノード)の数を増やすことでこの問題を解決しているため、切断しても大したことではなく、遅かれ早かれ再接続する必要があります.一般に、これはノードをアップグレードする必要があり、冗長性がないとプロセスが非常に複雑になるため、良い考えだと思います.最近では、初期の頃とは異なり、プライベートノードが切断されることはほとんどありません.私の疑惑は、プライベートノードが「信頼性」を獲得した可能性があるということです.これは、グレーリストに登録されるのとは逆です.
中断のない優先接続を保証できる新機能が追加されるまで、最善の選択肢は、パブリックノードを増やすか、信頼できるノードとして基盤ノード(信頼できる可能性が高い)を追加することだけです. quicksync を試すか、チェーンデータをプライベートノードにコピーして、コピーしないようにすることもできます.プライベートノードをブートストラップする必要があります.同期プロセス中に、必要なリソースが原因で切断される可能性があります.問題は、パブリックノードがノードを切断するのではなく、プライベートノードのワーカーである可能性があります.
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.
-
信頼できる基盤ノードのリストを指定できますか?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
-
プライベートノードとの接続ステータスをチェックし続けるパブリックノードでスクリプトを実行し、接続が見つからない場合は、プライベートノードに自動的に接続するコマンドを実行するのはどうですか.これは、複数のパブリックノードを持つこと以外の解決策のようですか?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は、プライベートノードが外部接続を拒否するため機能しません.プライベートノード側で検出すれば動作するのではないでしょうか.@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
-
実際、私はあなたが言ったことの反対に直面しています.パブリックノードから./mainnet.shadmin-client接続アドレスprivate-node-ip:9732を実行すると、プライベートノードへの接続が作成されます.しかし、public-nodeip inコマンドを使用したプライベートノードの同じコマンドは、「接続できません.ノードはプライベートノードで実行されています」というメッセージで失敗します.注:プライベートノードのピアリストにパブリックノードIPを追加しました.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
-
「tezos-nodeの設定ファイル」でピアを信頼できるものとしてどのように設定しますか?How do you set the peer as trusted in "the config file of tezos-node"?
- 0
- 2019-04-17
- Svante
-
@Svanteノード構成ファイルでピアを指定する方法を尋ねるのはおそらく別の質問の価値があります.@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良いアイデア、完了: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
これはあなたの質問に直接答えるものではありませんが、Kilnには、プライベートノードが接続を失ったときに通知できる機能があります.
プライベートノードを監視するようにKilnを構成する場合は、UIに「最小ピア数」を含めます.プライベートノードのピアがその数を下回ると、通知が届きます.
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.
-
ありがとう.監視とアラートを設定すると、ノードが正常な状態で実行されていることを確認できます.ノードを何度もチェックする必要はありません.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
プライベートノードとパブリックノードがあります.以下のコマンドを使用して、それぞれの信頼アドレスリストに相互のアドレスを追加しました:
最初はプライベートノードがパブリックノードに接続しないため、以下に説明するように、パブリックノードからconnectコマンドを使用する必要があります.
これで、プライベートノードがパブリックノードに接続され、ブロックチェーンの同期が開始されます.ただし、しばらくすると自動的に接続が切断され、同期が停止します.これは2日間で3回発生しました.
単一の接続のみが自動的に切断された場合、プライベートノードでベイクを開始するのに十分な自信がありません.
24時間年中無休の接続稼働時間を確保するために他にすべきことはありますか?