接続が少なすぎます、config.json?
-
-
設定ファイルはconfig.jsonです.混乱を減らすために、質問を更新してください.The config file is config.json, please update the question to reduce confusion.
- 0
- 2019-08-29
- Phlogi
-
5 回答
- 投票
-
- 2019-05-23
「開始したばかりのノード」の中には、そのような状況に陥り、問題を取り除くための作業が行われる場合があります. シナリオは次のとおりです.
- ブートストラップピアは多数の接続を受け入れるため、接続に問題はありません.
- 次に、ピアの同じサブセットを常に送り返します.そして これらのピアは数百の接続を受け入れないため、最終的にはすべてになります 飽和しているため、返信はありません.
- ノードは、
admin-client connect address [...]
を介して手動で指定されるまで、この段階でスタックします.接続を受け入れ、いくつかのアドレスを提供する飽和していないノードのアドレス他の飽和していないノードとすべてが最終的に正常です.
私たちは、飽和状態のノードを作成し、追加の接続を拒否しながら、ピアのサブセットを返送して試行することで取り組んでいます...
Some "just started node" sometime ends up in a situation like that and work is done to get rid of the problem. The scenario is the following:
- The bootstrap peers accept a big number of connection so there is never any problem to connect to them
- Then, they send back always the same subset of their peers. And these peers do not accept hundred of connection so they end up being all saturate and therefore none reply.
- The node is stuck in this stage until being given by hand via
admin-client connect address [...]
the address of a non saturated node that accepts the connection and gives some addresses of some other non saturated nodes and everything is finally fine.
We are working on it by making saturated nodes while refusing an extra connection sending back anyway a subset of their peers to try...
-
- 2019-02-15
ノードはプライベートモードですか?ネットワークに数百のピアが存在するのに、接続が5つしかないのは奇妙なことです.ノードを再起動しようとしましたか?および/または新しいアイデンティティを生成するには?たぶん、他のノードがあなたのノードをブラックリストに載せています.
コマンドラインオプション -peerADDR:PORT を使用してピアを追加するか、config.jsonファイルに追加することができます.構成ファイルを介して、たとえば次のようにピアを追加できます.
{ "p2p": { "bootstrap-peers": ["127.0.0.1:9731"], }
Is your node in private mode ? It's bizarre to only have 5 connections while there are hundreds of peers in the networks. Have you tried to restart your node ? and/or to generate a new identity ? Maybe the other nodes have blacklisted yours.
You can either add peers with command line option --peer ADDR:PORT, or by adding them in the config.json file. Via the config file, you can for instance add the peers as follows:
{ "p2p": { "bootstrap-peers": ["127.0.0.1:9731"], }
-
プライベートモードはありません.そして、はい、私は数回再起動しようとしました.なぜ誰かが私をブラックリストに載せるべきなのですか?No private mode. And yes i've tried to restart several times. Why should somebody blacklist me?
- 0
- 2019-02-15
- Blindripper
-
たとえば、あなたが「通常の」ノードのように振る舞っていないと見なされた場合、ブラックリストに登録される可能性があります(データが適切に形成されていないため、同じ要求で他のノードをフラッディングしようとします...).(-vvvを使用して)より多くのデバッグトレースを出力して、接続が拒否/閉じられる理由を確認できます.One may blacklist you if, for instance, it considers that you are not behaving like a "normal" node: (your data are not well formed, you try to flood the other node with the same request, ....). You can try to print more debug traces (with -vvv) and see why connections are refused/closed.
- 2
- 2019-02-15
- iguerNL
-
そうではありえない、私は「普通」に振る舞う:)Ok that can't be the case, i behave "normal" :)
- 0
- 2019-02-15
- Blindripper
-
- 2019-02-16
わかりました.ポートを開こうとしました.新しいIDを生成し、ピアを手動で追加しました(iguerなど)アドバイスがありましたが、何も役に立ちませんでした.
しかし、Tezos Bakingslackの「Krixt」という男がこのスクリプトを作成しました.
#!/bin/bash # get foundation nodes for i in dubnodes franodes sinnodes nrtnodes pdxnodes; do for j in `dig $i.tzbeta.net +short`; do echo "Connecting foundation $j..." ~/tezos/tezos-admin-client connect address [$j]:9732 done done # public nodes for j in 0 1; do for i in `curl -s "http://api6.tzscan.io/v3/network?state=running&p=$j&number=50" \ | jq -r '.[] | .point_id' | xargs`; do # handle ipv4 or ipv6 numparts=$(echo $i | awk -F: '{print NF}') basenum=$((numparts-1)) port=$(echo $i | cut -d: -f$numparts) base=$(echo $i | cut -d: -f1-$basenum) formatted="[$base]:$port" echo "Connecting $formatted..." ~/tezos/tezos-admin-client connect address $formatted done done
出典: https://gist.github.com/utdrmac/2125a8514960e163837e86bc934f19b6
>このスクリプトは真の接続ブースターです:) 現在、100を超える接続があります(以前の5つから).
これが同じ
"too few connections"
の問題を抱えている他の人に役立つことを願っています;)Ok, i've tried to open ports, generated a new identity, added peers manually (like iguer) adviced, but nothing helped.
But a guy called "Krixt" in the Tezos Baking slack wrote this script:
#!/bin/bash # get foundation nodes for i in dubnodes franodes sinnodes nrtnodes pdxnodes; do for j in `dig $i.tzbeta.net +short`; do echo "Connecting foundation $j..." ~/tezos/tezos-admin-client connect address [$j]:9732 done done # public nodes for j in 0 1; do for i in `curl -s "http://api6.tzscan.io/v3/network?state=running&p=$j&number=50" \ | jq -r '.[] | .point_id' | xargs`; do # handle ipv4 or ipv6 numparts=$(echo $i | awk -F: '{print NF}') basenum=$((numparts-1)) port=$(echo $i | cut -d: -f$numparts) base=$(echo $i | cut -d: -f1-$basenum) formatted="[$base]:$port" echo "Connecting $formatted..." ~/tezos/tezos-admin-client connect address $formatted done done
Source: https://gist.github.com/utdrmac/2125a8514960e163837e86bc934f19b6
This script is a true connection booster :) I've now more than 100 connections (from 5 before).
I hope this will help others with the same
"too few connections"
problems ;)-
いいね!これは、ノードがそれ自体でネットワークを検出しない理由を説明していませんが.これはおそらく、開発チームによる調査とデバッグが必要なケースです.Nice ! Although this does not explain why the node is not discovering the network by its own. This is maybe a case that needs investigation and debug by dev team.
- 1
- 2019-02-16
- iguerNL
-
ええ、私はサイクル7から問題や変更なしで実行しています(コードの更新を除く).奇妙な.Yeah, i am running since cycle 7 without problems or changes (Except the code updates). Weired.
- 0
- 2019-02-16
- Blindripper
-
私はあなたのために何かがうまくいくことをうれしく思います.しかし、繰り返しになりますが、このスクリプトは他の人とつながります.問題は確かに他の人があなたに接続できないことです、あなたは絆創膏を使う代わりにそれをもっと掘り下げる必要があります.通常のノードは、安定した状態でそれ自体で約50以上の接続を取得し、最初の数分以内に10以上の接続を取得します.I'm glad something works for you. But again, this script makes connections to others. The problem is surely that others can't connect to you, you should dig more into it instead of using a bandaid. A normal node gets about 50+ connections on its own in its stable state, 10+ within the first few minutes.
- 0
- 2019-02-16
- Frank
-
新しいIDを作成した後にも問題が発生しました.ですから、ブラックリストとは何の関係もないと思います.そして、他のすべてのノードが私をブラックリストに載せるのに70サイクル以上かかったとしたら、それは奇妙なことです.The problem also raised after i've created a new identity. So I think it can not have anything to do with blacklisting. And it would be strange, if all other nodes took more than 70 cycles to blacklist me.
- 0
- 2019-02-17
- Blindripper
-
tzscanは使用できなくなりました.別の方法については、https://github.com/Phlogi/tezos-snapshots/blob/master/scripts/addpeers_2.0.shを確認してください.tzscan is not available anymore. Please check https://github.com/Phlogi/tezos-snapshots/blob/master/scripts/addpeers_2.0.sh for an alternative.
- 0
- 2020-01-23
- Phlogi
-
私はcarthagenetで作業していません、スクリプト出力はエラーです: 拒否されたピア接続:一般的なネットワークプロトコルはありません. >ファンデーションの接続34.246.245.155... エラー: 拒否されたピア接続:共通のネットワークプロトコルはありません. >ファンデーションの接続52.30.97.85... エラー: 拒否されたピア接続:共通のネットワークプロトコルはありません.I doesn't work on carthagenet, script output is Error: Rejected peer connection: no common network protocol. > Connecting foundation 34.246.245.155... Error: Rejected peer connection: no common network protocol. > Connecting foundation 52.30.97.85... Error: Rejected peer connection: no common network protocol.
- 0
- 2020-04-02
- saiwaixiaowangzi
-
- 2019-02-15
iguerが指摘したように、プライベートモードがこれを引き起こす理由の1つです.しかし、詳しく説明すると、これは主に、プライベートモードノードがピアノードの接続にあまり適していないために発生します.プライベートノードは基本的にネットワークへのリーチであるためです.他のノードをブートストラップしようとはしません.プライベートノードは、ほとんどの場合、ブロックチェーンを取得してそのmempoolを埋めるために監視するだけですが、ベイク処理やトランザクションなどの操作を共有することもあります.
基本的に、プライベートノードは他の人がそれに接続することを許可しません.同じ理由で、パブリックノードが他のユーザーの接続を許可しない場合、「接続が少なすぎる」という症状が発生します.ノード自体が既知のピアへの接続を試み、その方法でチェーンをブートストラップできるため、他のユーザーが接続できるようにすることはノードの要件ではありません.しかし、私の理論では、他のノードからの接続を許可しないノードも不利であると見なされます.したがって、一部のノードは、ネットワークへの到達範囲を拡大するのに役立たないため、ノードをピアとしてドロップまたは拒否する可能性があります.ポート
9732
がファイアウォールやルーターなどを介して接続可能であることを確認します. (公式ドキュメントにはポート19732 と記載されていますコード>ですが、私の経験からすると間違っていると思います.)
接続が少なすぎる
が発生する可能性がある3番目の理由はまれですが、指摘する必要があります.間違ったネットワーク、フォーク/チェーン、またはプロトコルを使用している場合は、互換性のあるノードにのみ接続します.接続しているすべてのノードも同じセットアップになります.注意すべき点は、master
ではなく、mainnet
ブランチを使用してバイナリをコンパイルすることです.また、正しいバイナリ(現在は003
プロトコル)を実行し、頻繁に再コンパイルする(またはRiotまたはSlackでそうするように通知される)ことでバイナリを最新の状態に保つことを忘れないでください.As iguer pointed out, private mode would be one reason to cause this. But to elaborate, this happens mostly because private mode nodes are less favorable for a peer node to connect to as the private node is basically a leech to the network. It will not try to bootstrap other nodes. Private nodes will mostly just monitor to get the blockchain and fill its mempool, only sometimes occasionally share an operation like baking or transaction.
Fundamentally, a private node does not allow others to connect to it. For the same reason, if your public node does not allow others to connect to it, it will share the "too few connections" symptoms. It's not a node requirement to allow others to connect because the node itself can try to connect to known peers and bootstrap the chain that way. But my theory is that nodes that does not allow connections from others are also considered less favorable, hence some nodes might drop or refuse your node as a peer because it doesn't help expand their reach to the network. I would certainly check to make sure your port
9732
is connectable through your firewall or router or whatever. (Official documentations says it's port19732
, but I believe that's wrong based on my experience.)Third reason why
too few connections
may happen is rare but should be pointed out. If you are on the wrong network or fork/chain or protocol, you will only connected to compatible nodes. All the nodes you are connected will be also on the same setup. Things to watch out for is to make sure to compile your binaries withmainnet
branch, notmaster
. Also, remember to run the correct binaries (currently at003
protocol) and keep your binaries up to date by recompiling every so often(or notified to do so on Riot or Slack).-
3つ目は私にとって有効でした:)メインネットではなくdocker/masterで実行していて、ノードはどのピアにも接続できませんでした.ありがとうございました!The third one was valid for me :) I was running on a docker/master instead of mainnet and the node could not connect to any peer. Thank you!
- 1
- 2019-02-20
- mitelone
-
- 2019-08-29
これは、tezosデータディレクトリのconfig.jsonファイルにピアを永続的に追加するコマンドです.
tezos-node config update --peer=13.251.160.63:9732 --peer=...
残念ながら、このコマンドは既存のエントリをチェックしません.そのため、同じピアを複数回追加することになります.
This is the command to add a peer permanently to the config.json file in the tezos data directory:
tezos-node config update --peer=13.251.160.63:9732 --peer=...
This command does unfortunately not check for already existing entries. So you can end up adding the same peers multiple times.
約2日後に
too few connections (5)
. 「.tezos-node/config.json」ファイルにピアを追加すると役立つと思いますが、どのように表示されるかわかりません.IPとポートを空のファイルに追加して./tezos-nodeフォルダーに入れるだけでいいですか?または、config.jsは特定の形式で、特定の(さらに)情報を含む必要がありますか?