From 28fc15028a16ed866354ca8f4be853effda14ca6 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Thu, 28 Dec 2017 12:54:39 -0600 Subject: [PATCH] distinguish between seeds and manual peers in the config/flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - we only use seeds if we can’t connect to peers in the addrbook. - we always connect to nodes given in config/flags Refs #864 --- benchmarks/blockchain/localsync.sh | 2 +- cmd/tendermint/commands/run_node.go | 1 + config/config.go | 7 +++- config/toml.go | 2 + docs/deploy-testnets.rst | 6 +-- docs/specification/configuration.rst | 2 + docs/specification/rpc.rst | 2 +- docs/using-tendermint.rst | 10 ++--- node/node.go | 41 +++++++++---------- p2p/pex_reactor.go | 2 +- p2p/switch.go | 28 ++++++------- rpc/client/localclient.go | 4 +- rpc/client/mock/client.go | 4 +- rpc/core/doc.go | 2 +- rpc/core/net.go | 16 ++++---- rpc/core/pipe.go | 2 +- rpc/core/routes.go | 2 +- rpc/core/types/responses.go | 2 +- test/p2p/README.md | 2 +- test/p2p/fast_sync/test_peer.sh | 6 +-- test/p2p/local_testnet_start.sh | 10 ++--- test/p2p/manual_peers.sh | 12 ++++++ .../{dial_seeds.sh => dial_manual_peers.sh} | 12 +++--- test/p2p/pex/test.sh | 4 +- test/p2p/pex/test_addrbook.sh | 8 ++-- ...ial_seeds.sh => test_dial_manual_peers.sh} | 14 +++---- test/p2p/seeds.sh | 12 ------ test/p2p/test.sh | 4 +- 28 files changed, 112 insertions(+), 107 deletions(-) create mode 100644 test/p2p/manual_peers.sh rename test/p2p/pex/{dial_seeds.sh => dial_manual_peers.sh} (60%) rename test/p2p/pex/{test_dial_seeds.sh => test_dial_manual_peers.sh} (75%) delete mode 100644 test/p2p/seeds.sh diff --git a/benchmarks/blockchain/localsync.sh b/benchmarks/blockchain/localsync.sh index e181c5655..18afaee82 100755 --- a/benchmarks/blockchain/localsync.sh +++ b/benchmarks/blockchain/localsync.sh @@ -51,7 +51,7 @@ tendermint node \ --proxy_app dummy \ --p2p.laddr tcp://127.0.0.1:56666 \ --rpc.laddr tcp://127.0.0.1:56667 \ - --p2p.seeds 127.0.0.1:56656 \ + --p2p.manual_peers 127.0.0.1:56656 \ --log_level error & # wait for node to start up so we only count time where we are actually syncing diff --git a/cmd/tendermint/commands/run_node.go b/cmd/tendermint/commands/run_node.go index 0f37bb319..5b87a4b82 100644 --- a/cmd/tendermint/commands/run_node.go +++ b/cmd/tendermint/commands/run_node.go @@ -29,6 +29,7 @@ func AddNodeFlags(cmd *cobra.Command) { // p2p flags cmd.Flags().String("p2p.laddr", config.P2P.ListenAddress, "Node listen address. (0.0.0.0:0 means any interface, any port)") cmd.Flags().String("p2p.seeds", config.P2P.Seeds, "Comma delimited host:port seed nodes") + cmd.Flags().String("p2p.manual_peers", config.P2P.ManualPeers, "Comma delimited host:port manual peers") cmd.Flags().Bool("p2p.skip_upnp", config.P2P.SkipUPNP, "Skip UPNP configuration") cmd.Flags().Bool("p2p.pex", config.P2P.PexReactor, "Enable/disable Peer-Exchange") diff --git a/config/config.go b/config/config.go index 5d4a8ef65..2d38ed916 100644 --- a/config/config.go +++ b/config/config.go @@ -170,7 +170,7 @@ type RPCConfig struct { // NOTE: This server only supports /broadcast_tx_commit GRPCListenAddress string `mapstructure:"grpc_laddr"` - // Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool + // Activate unsafe RPC commands like /dial_manual_peers and /unsafe_flush_mempool Unsafe bool `mapstructure:"unsafe"` } @@ -203,8 +203,13 @@ type P2PConfig struct { ListenAddress string `mapstructure:"laddr"` // Comma separated list of seed nodes to connect to + // We only use these if we can’t connect to peers in the addrbook Seeds string `mapstructure:"seeds"` + // Comma separated list of manual peers to connect to + // We always connect to these + ManualPeers string `mapstructure:"manual_peers"` + // Skip UPNP port forwarding SkipUPNP bool `mapstructure:"skip_upnp"` diff --git a/config/toml.go b/config/toml.go index 735f45c12..59fc46dcf 100644 --- a/config/toml.go +++ b/config/toml.go @@ -42,6 +42,7 @@ laddr = "tcp://0.0.0.0:46657" [p2p] laddr = "tcp://0.0.0.0:46656" seeds = "" +manual_peers = "" ` func defaultConfig(moniker string) string { @@ -106,6 +107,7 @@ laddr = "tcp://0.0.0.0:36657" [p2p] laddr = "tcp://0.0.0.0:36656" seeds = "" +manual_peers = "" ` func testConfig(moniker string) (testConfig string) { diff --git a/docs/deploy-testnets.rst b/docs/deploy-testnets.rst index 89fa4b799..8c66c4b34 100644 --- a/docs/deploy-testnets.rst +++ b/docs/deploy-testnets.rst @@ -24,13 +24,13 @@ Here are the steps to setting up a testnet manually: ``tendermint gen_validator`` 4) Compile a list of public keys for each validator into a ``genesis.json`` file. -5) Run ``tendermint node --p2p.seeds=< seed addresses >`` on each node, - where ``< seed addresses >`` is a comma separated list of the IP:PORT +5) Run ``tendermint node --p2p.manual_peers=< peer addresses >`` on each node, + where ``< peer addresses >`` is a comma separated list of the IP:PORT combination for each node. The default port for Tendermint is ``46656``. Thus, if the IP addresses of your nodes were ``192.168.0.1, 192.168.0.2, 192.168.0.3, 192.168.0.4``, the command would look like: - ``tendermint node --p2p.seeds=192.168.0.1:46656,192.168.0.2:46656,192.168.0.3:46656,192.168.0.4:46656``. + ``tendermint node --p2p.manual_peers=192.168.0.1:46656,192.168.0.2:46656,192.168.0.3:46656,192.168.0.4:46656``. After a few seconds, all the nodes should connect to eachother and start making blocks! For more information, see the Tendermint Networks section diff --git a/docs/specification/configuration.rst b/docs/specification/configuration.rst index 74b41d09d..3271cd59d 100644 --- a/docs/specification/configuration.rst +++ b/docs/specification/configuration.rst @@ -49,6 +49,8 @@ The main config parameters are defined - ``p2p.pex``: Enable Peer-Exchange (dev feature). *Default*: ``false`` - ``p2p.seeds``: Comma delimited host:port seed nodes. *Default*: ``""`` +- ``p2p.manual_peers``: Comma delimited host:port manual peers. *Default*: + ``""`` - ``p2p.skip_upnp``: Skip UPNP detection. *Default*: ``false`` - ``rpc.grpc_laddr``: GRPC listen address (BroadcastTx only). Port diff --git a/docs/specification/rpc.rst b/docs/specification/rpc.rst index 33173d196..f637c1717 100644 --- a/docs/specification/rpc.rst +++ b/docs/specification/rpc.rst @@ -111,7 +111,7 @@ An HTTP Get request to the root RPC endpoint (e.g. http://localhost:46657/broadcast_tx_commit?tx=_ http://localhost:46657/broadcast_tx_sync?tx=_ http://localhost:46657/commit?height=_ - http://localhost:46657/dial_seeds?seeds=_ + http://localhost:46657/dial_manual_peers?manual_peers=_ http://localhost:46657/subscribe?event=_ http://localhost:46657/tx?hash=_&prove=_ http://localhost:46657/unsafe_start_cpu_profiler?filename=_ diff --git a/docs/using-tendermint.rst b/docs/using-tendermint.rst index 9076230ea..2ec5624ec 100644 --- a/docs/using-tendermint.rst +++ b/docs/using-tendermint.rst @@ -270,14 +270,14 @@ For instance, :: - tendermint node --p2p.seeds "1.2.3.4:46656,5.6.7.8:46656" + tendermint node --p2p.manual_peers "1.2.3.4:46656,5.6.7.8:46656" -Alternatively, you can use the ``/dial_seeds`` endpoint of the RPC to +Alternatively, you can use the ``/dial_manual_peers`` endpoint of the RPC to specify peers for a running node to connect to: :: - curl --data-urlencode "seeds=[\"1.2.3.4:46656\",\"5.6.7.8:46656\"]" localhost:46657/dial_seeds + curl --data-urlencode "manual_peers=[\"1.2.3.4:46656\",\"5.6.7.8:46656\"]" localhost:46657/dial_manual_peers Additionally, the peer-exchange protocol can be enabled using the ``--pex`` flag, though this feature is `still under @@ -290,7 +290,7 @@ Adding a Non-Validator Adding a non-validator is simple. Just copy the original ``genesis.json`` to ``~/.tendermint`` on the new machine and start the -node, specifying seeds as necessary. If no seeds are specified, the node +node, specifying manual_peers as necessary. If no manual_peers are specified, the node won't make any blocks, because it's not a validator, and it won't hear about any blocks, because it's not connected to the other peer. @@ -363,7 +363,7 @@ and the new ``priv_validator.json`` to the ``~/.tendermint`` on a new machine. Now run ``tendermint node`` on both machines, and use either -``--p2p.seeds`` or the ``/dial_seeds`` to get them to peer up. They +``--p2p.manual_peers`` or the ``/dial_manual_peers`` to get them to peer up. They should start making blocks, and will only continue to do so as long as both of them are online. diff --git a/node/node.go b/node/node.go index f8164955d..1970bb88e 100644 --- a/node/node.go +++ b/node/node.go @@ -380,40 +380,44 @@ func (n *Node) OnStart() error { return err } - err = n.dialSeedsIfAddrBookIsEmptyOrPEXFailedToConnect() - if err != nil { - return err + // Always connect to manual peers + if n.config.P2P.ManualPeers != "" { + err = n.sw.DialPeersAsync(n.addrBook, strings.Split(n.config.P2P.ManualPeers, ","), true) + if err != nil { + return err + } + } + + if n.config.P2P.Seeds != "" { + err = n.dialSeedsIfAddrBookIsEmptyOrPEXFailedToConnect(strings.Split(n.config.P2P.Seeds, ",")) + if err != nil { + return err + } } // start tx indexer return n.indexerService.Start() } -func (n *Node) dialSeedsIfAddrBookIsEmptyOrPEXFailedToConnect() error { - if n.config.P2P.Seeds == "" { - return nil - } - - seeds := strings.Split(n.config.P2P.Seeds, ",") - +func (n *Node) dialSeedsIfAddrBookIsEmptyOrPEXFailedToConnect(seeds []string) error { // prefer peers from address book if n.config.P2P.PexReactor && n.addrBook.Size() > 0 { - // give some time to PexReactor to connect us to other peers - const fallbackToSeedsAfterSec = 30 * time.Second + // give some time for PexReactor to connect us to other peers + const fallbackToSeedsAfter = 30 * time.Second go func() { - time.Sleep(fallbackToSeedsAfterSec) + time.Sleep(fallbackToSeedsAfter) // fallback to dialing seeds if for some reason we can't connect to any // peers outbound, inbound, _ := n.sw.NumPeers() if n.IsRunning() && outbound+inbound == 0 { - n.DialSeeds(seeds) + // TODO: ignore error? + n.sw.DialPeersAsync(n.addrBook, seeds, false) } }() return nil } - // add seeds to the address book and dial out - return n.DialSeeds(seeds) + return n.sw.DialPeersAsync(n.addrBook, seeds, false) } // OnStop stops the Node. It implements cmn.Service. @@ -599,11 +603,6 @@ func (n *Node) NodeInfo() *p2p.NodeInfo { return n.sw.NodeInfo() } -// DialSeeds dials the given seeds on the Switch. -func (n *Node) DialSeeds(seeds []string) error { - return n.sw.DialSeeds(n.addrBook, seeds) -} - //------------------------------------------------------------------------------ var ( diff --git a/p2p/pex_reactor.go b/p2p/pex_reactor.go index 2bfe7dcab..d4a8cbf18 100644 --- a/p2p/pex_reactor.go +++ b/p2p/pex_reactor.go @@ -100,7 +100,7 @@ func (r *PEXReactor) GetChannels() []*ChannelDescriptor { func (r *PEXReactor) AddPeer(p Peer) { if p.IsOutbound() { // For outbound peers, the address is already in the books. - // Either it was added in DialSeeds or when we + // Either it was added in DialManualPeers or when we // received the peer's address in r.Receive if r.book.NeedMoreAddrs() { r.RequestPEX(p) diff --git a/p2p/switch.go b/p2p/switch.go index 76b019806..4deee63d4 100644 --- a/p2p/switch.go +++ b/p2p/switch.go @@ -16,7 +16,7 @@ import ( const ( // wait a random amount of time from this interval - // before dialing seeds or reconnecting to help prevent DoS + // before dialing peers or reconnecting to help prevent DoS dialRandomizerIntervalMilliseconds = 3000 // repeatedly try to reconnect for a few minutes @@ -315,15 +315,15 @@ func (sw *Switch) startInitPeer(peer *peer) { } } -// DialSeeds dials a list of seeds asynchronously in random order. -func (sw *Switch) DialSeeds(addrBook *AddrBook, seeds []string) error { - netAddrs, errs := NewNetAddressStrings(seeds) +// DialPeersAsync dials a list of peers asynchronously in random order (optionally, making them persistent). +func (sw *Switch) DialPeersAsync(addrBook *AddrBook, peers []string, persistent bool) error { + netAddrs, errs := NewNetAddressStrings(peers) for _, err := range errs { - sw.Logger.Error("Error in seed's address", "err", err) + sw.Logger.Error("Error in peer's address", "err", err) } if addrBook != nil { - // add seeds to `addrBook` + // add manual peers to `addrBook` ourAddrS := sw.nodeInfo.ListenAddr ourAddr, _ := NewNetAddressString(ourAddrS) for _, netAddr := range netAddrs { @@ -342,7 +342,12 @@ func (sw *Switch) DialSeeds(addrBook *AddrBook, seeds []string) error { go func(i int) { sw.randomSleep(0) j := perm[i] - sw.dialSeed(netAddrs[j]) + peer, err := sw.DialPeerWithAddress(netAddrs[j], persistent) + if err != nil { + sw.Logger.Error("Error dialing peer", "err", err) + } else { + sw.Logger.Info("Connected to peer", "peer", peer) + } }(i) } return nil @@ -354,15 +359,6 @@ func (sw *Switch) randomSleep(interval time.Duration) { time.Sleep(r + interval) } -func (sw *Switch) dialSeed(addr *NetAddress) { - peer, err := sw.DialPeerWithAddress(addr, true) - if err != nil { - sw.Logger.Error("Error dialing seed", "err", err) - } else { - sw.Logger.Info("Connected to seed", "peer", peer) - } -} - // DialPeerWithAddress dials the given peer and runs sw.addPeer if it connects successfully. // If `persistent == true`, the switch will always try to reconnect to this peer if the connection ever fails. func (sw *Switch) DialPeerWithAddress(addr *NetAddress, persistent bool) (Peer, error) { diff --git a/rpc/client/localclient.go b/rpc/client/localclient.go index 71f25ef23..d30f7543c 100644 --- a/rpc/client/localclient.go +++ b/rpc/client/localclient.go @@ -84,8 +84,8 @@ func (Local) DumpConsensusState() (*ctypes.ResultDumpConsensusState, error) { return core.DumpConsensusState() } -func (Local) DialSeeds(seeds []string) (*ctypes.ResultDialSeeds, error) { - return core.UnsafeDialSeeds(seeds) +func (Local) DialManualPeers(manual_peers []string) (*ctypes.ResultDialManualPeers, error) { + return core.UnsafeDialManualPeers(manual_peers) } func (Local) BlockchainInfo(minHeight, maxHeight int64) (*ctypes.ResultBlockchainInfo, error) { diff --git a/rpc/client/mock/client.go b/rpc/client/mock/client.go index dc75e04cb..84f6aa2d7 100644 --- a/rpc/client/mock/client.go +++ b/rpc/client/mock/client.go @@ -107,8 +107,8 @@ func (c Client) NetInfo() (*ctypes.ResultNetInfo, error) { return core.NetInfo() } -func (c Client) DialSeeds(seeds []string) (*ctypes.ResultDialSeeds, error) { - return core.UnsafeDialSeeds(seeds) +func (c Client) DialManualPeers(manual_peers []string) (*ctypes.ResultDialManualPeers, error) { + return core.UnsafeDialManualPeers(manual_peers) } func (c Client) BlockchainInfo(minHeight, maxHeight int64) (*ctypes.ResultBlockchainInfo, error) { diff --git a/rpc/core/doc.go b/rpc/core/doc.go index a72cec020..1a59459dd 100644 --- a/rpc/core/doc.go +++ b/rpc/core/doc.go @@ -94,7 +94,7 @@ Endpoints that require arguments: /broadcast_tx_commit?tx=_ /broadcast_tx_sync?tx=_ /commit?height=_ -/dial_seeds?seeds=_ +/dial_manual_peers?manual_peers=_ /subscribe?event=_ /tx?hash=_&prove=_ /unsafe_start_cpu_profiler?filename=_ diff --git a/rpc/core/net.go b/rpc/core/net.go index b3f1c7ce5..845cda646 100644 --- a/rpc/core/net.go +++ b/rpc/core/net.go @@ -54,18 +54,18 @@ func NetInfo() (*ctypes.ResultNetInfo, error) { }, nil } -func UnsafeDialSeeds(seeds []string) (*ctypes.ResultDialSeeds, error) { +func UnsafeDialManualPeers(manual_peers []string) (*ctypes.ResultDialManualPeers, error) { - if len(seeds) == 0 { - return &ctypes.ResultDialSeeds{}, fmt.Errorf("No seeds provided") + if len(manual_peers) == 0 { + return &ctypes.ResultDialManualPeers{}, fmt.Errorf("No manual peers provided") } - // starts go routines to dial each seed after random delays - logger.Info("DialSeeds", "addrBook", addrBook, "seeds", seeds) - err := p2pSwitch.DialSeeds(addrBook, seeds) + // starts go routines to dial each peer after random delays + logger.Info("DialManualPeers", "addrBook", addrBook, "manual_peers", manual_peers) + err := p2pSwitch.DialPeersAsync(addrBook, manual_peers, true) if err != nil { - return &ctypes.ResultDialSeeds{}, err + return &ctypes.ResultDialManualPeers{}, err } - return &ctypes.ResultDialSeeds{"Dialing seeds in progress. See /net_info for details"}, nil + return &ctypes.ResultDialManualPeers{"Dialing manual peers in progress. See /net_info for details"}, nil } // Get genesis file. diff --git a/rpc/core/pipe.go b/rpc/core/pipe.go index 927d7ccad..6d67fd898 100644 --- a/rpc/core/pipe.go +++ b/rpc/core/pipe.go @@ -32,7 +32,7 @@ type P2P interface { NumPeers() (outbound, inbound, dialig int) NodeInfo() *p2p.NodeInfo IsListening() bool - DialSeeds(*p2p.AddrBook, []string) error + DialPeersAsync(*p2p.AddrBook, []string, bool) error } //---------------------------------------------- diff --git a/rpc/core/routes.go b/rpc/core/routes.go index fb5a1fd36..84d405ac6 100644 --- a/rpc/core/routes.go +++ b/rpc/core/routes.go @@ -38,7 +38,7 @@ var Routes = map[string]*rpc.RPCFunc{ func AddUnsafeRoutes() { // control API - Routes["dial_seeds"] = rpc.NewRPCFunc(UnsafeDialSeeds, "seeds") + Routes["dial_manual_peers"] = rpc.NewRPCFunc(UnsafeDialManualPeers, "manual_peers") Routes["unsafe_flush_mempool"] = rpc.NewRPCFunc(UnsafeFlushMempool, "") // profiler API diff --git a/rpc/core/types/responses.go b/rpc/core/types/responses.go index dae7c0046..4d8e79469 100644 --- a/rpc/core/types/responses.go +++ b/rpc/core/types/responses.go @@ -82,7 +82,7 @@ type ResultNetInfo struct { Peers []Peer `json:"peers"` } -type ResultDialSeeds struct { +type ResultDialManualPeers struct { Log string `json:"log"` } diff --git a/test/p2p/README.md b/test/p2p/README.md index e2a577cfa..692b730b2 100644 --- a/test/p2p/README.md +++ b/test/p2p/README.md @@ -38,7 +38,7 @@ for i in $(seq 1 4); do --name local_testnet_$i \ --entrypoint tendermint \ -e TMHOME=/go/src/github.com/tendermint/tendermint/test/p2p/data/mach$i/core \ - tendermint_tester node --p2p.seeds 172.57.0.101:46656,172.57.0.102:46656,172.57.0.103:46656,172.57.0.104:46656 --proxy_app=dummy + tendermint_tester node --p2p.manual_peers 172.57.0.101:46656,172.57.0.102:46656,172.57.0.103:46656,172.57.0.104:46656 --proxy_app=dummy done ``` diff --git a/test/p2p/fast_sync/test_peer.sh b/test/p2p/fast_sync/test_peer.sh index 8174be0e7..ab5d517d9 100644 --- a/test/p2p/fast_sync/test_peer.sh +++ b/test/p2p/fast_sync/test_peer.sh @@ -23,11 +23,11 @@ docker rm -vf local_testnet_$ID set -e # restart peer - should have an empty blockchain -SEEDS="$(test/p2p/ip.sh 1):46656" +MANUAL_PEERS="$(test/p2p/ip.sh 1):46656" for j in `seq 2 $N`; do - SEEDS="$SEEDS,$(test/p2p/ip.sh $j):46656" + MANUAL_PEERS="$MANUAL_PEERS,$(test/p2p/ip.sh $j):46656" done -bash test/p2p/peer.sh $DOCKER_IMAGE $NETWORK_NAME $ID $PROXY_APP "--p2p.seeds $SEEDS --p2p.pex --rpc.unsafe" +bash test/p2p/peer.sh $DOCKER_IMAGE $NETWORK_NAME $ID $PROXY_APP "--p2p.manual_peers $MANUAL_PEERS --p2p.pex --rpc.unsafe" # wait for peer to sync and check the app hash bash test/p2p/client.sh $DOCKER_IMAGE $NETWORK_NAME fs_$ID "test/p2p/fast_sync/check_peer.sh $ID" diff --git a/test/p2p/local_testnet_start.sh b/test/p2p/local_testnet_start.sh index f70bdf04c..c808c613d 100644 --- a/test/p2p/local_testnet_start.sh +++ b/test/p2p/local_testnet_start.sh @@ -7,10 +7,10 @@ N=$3 APP_PROXY=$4 set +u -SEEDS=$5 -if [[ "$SEEDS" != "" ]]; then - echo "Seeds: $SEEDS" - SEEDS="--p2p.seeds $SEEDS" +MANUAL_PEERS=$5 +if [[ "$MANUAL_PEERS" != "" ]]; then + echo "ManualPeers: $MANUAL_PEERS" + MANUAL_PEERS="--p2p.manual_peers $MANUAL_PEERS" fi set -u @@ -20,5 +20,5 @@ cd "$GOPATH/src/github.com/tendermint/tendermint" docker network create --driver bridge --subnet 172.57.0.0/16 "$NETWORK_NAME" for i in $(seq 1 "$N"); do - bash test/p2p/peer.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$i" "$APP_PROXY" "$SEEDS --p2p.pex --rpc.unsafe" + bash test/p2p/peer.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$i" "$APP_PROXY" "$MANUAL_PEERS --p2p.pex --rpc.unsafe" done diff --git a/test/p2p/manual_peers.sh b/test/p2p/manual_peers.sh new file mode 100644 index 000000000..90051b15b --- /dev/null +++ b/test/p2p/manual_peers.sh @@ -0,0 +1,12 @@ +#! /bin/bash +set -eu + +N=$1 + +cd "$GOPATH/src/github.com/tendermint/tendermint" + +manual_peers="$(test/p2p/ip.sh 1):46656" +for i in $(seq 2 $N); do + manual_peers="$manual_peers,$(test/p2p/ip.sh $i):46656" +done +echo "$manual_peers" diff --git a/test/p2p/pex/dial_seeds.sh b/test/p2p/pex/dial_manual_peers.sh similarity index 60% rename from test/p2p/pex/dial_seeds.sh rename to test/p2p/pex/dial_manual_peers.sh index 15c22af67..4ee79b869 100644 --- a/test/p2p/pex/dial_seeds.sh +++ b/test/p2p/pex/dial_manual_peers.sh @@ -19,13 +19,13 @@ for i in `seq 1 $N`; do done set -e -# seeds need quotes -seeds="\"$(test/p2p/ip.sh 1):46656\"" +# manual_peers need quotes +manual_peers="\"$(test/p2p/ip.sh 1):46656\"" for i in `seq 2 $N`; do - seeds="$seeds,\"$(test/p2p/ip.sh $i):46656\"" + manual_peers="$manual_peers,\"$(test/p2p/ip.sh $i):46656\"" done -echo $seeds +echo $manual_peers -echo $seeds +echo $manual_peers IP=$(test/p2p/ip.sh 1) -curl --data-urlencode "seeds=[$seeds]" "$IP:46657/dial_seeds" +curl --data-urlencode "manual_peers=[$manual_peers]" "$IP:46657/dial_manual_peers" diff --git a/test/p2p/pex/test.sh b/test/p2p/pex/test.sh index d54d81350..2c42781dd 100644 --- a/test/p2p/pex/test.sh +++ b/test/p2p/pex/test.sh @@ -11,5 +11,5 @@ cd $GOPATH/src/github.com/tendermint/tendermint echo "Test reconnecting from the address book" bash test/p2p/pex/test_addrbook.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP -echo "Test connecting via /dial_seeds" -bash test/p2p/pex/test_dial_seeds.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP +echo "Test connecting via /dial_manual_peers" +bash test/p2p/pex/test_dial_manual_peers.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP diff --git a/test/p2p/pex/test_addrbook.sh b/test/p2p/pex/test_addrbook.sh index 35dcb89d3..b215606d6 100644 --- a/test/p2p/pex/test_addrbook.sh +++ b/test/p2p/pex/test_addrbook.sh @@ -9,7 +9,7 @@ PROXY_APP=$4 ID=1 echo "----------------------------------------------------------------------" -echo "Testing pex creates the addrbook and uses it if seeds are not provided" +echo "Testing pex creates the addrbook and uses it if manual_peers are not provided" echo "(assuming peers are started with pex enabled)" CLIENT_NAME="pex_addrbook_$ID" @@ -22,7 +22,7 @@ set +e #CIRCLE docker rm -vf "local_testnet_$ID" set -e -# NOTE that we do not provide seeds +# NOTE that we do not provide manual_peers bash test/p2p/peer.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$ID" "$PROXY_APP" "--p2p.pex --rpc.unsafe" docker cp "/tmp/addrbook.json" "local_testnet_$ID:/go/src/github.com/tendermint/tendermint/test/p2p/data/mach1/core/addrbook.json" echo "with the following addrbook:" @@ -35,7 +35,7 @@ echo "" bash test/p2p/client.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$CLIENT_NAME" "test/p2p/pex/check_peer.sh $ID $N" echo "----------------------------------------------------------------------" -echo "Testing other peers connect to us if we have neither seeds nor the addrbook" +echo "Testing other peers connect to us if we have neither manual_peers nor the addrbook" echo "(assuming peers are started with pex enabled)" CLIENT_NAME="pex_no_addrbook_$ID" @@ -46,7 +46,7 @@ set +e #CIRCLE docker rm -vf "local_testnet_$ID" set -e -# NOTE that we do not provide seeds +# NOTE that we do not provide manual_peers bash test/p2p/peer.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$ID" "$PROXY_APP" "--p2p.pex --rpc.unsafe" # if the client runs forever, it means other peers have removed us from their books (which should not happen) diff --git a/test/p2p/pex/test_dial_seeds.sh b/test/p2p/pex/test_dial_manual_peers.sh similarity index 75% rename from test/p2p/pex/test_dial_seeds.sh rename to test/p2p/pex/test_dial_manual_peers.sh index ea72004db..ba3e1c4d0 100644 --- a/test/p2p/pex/test_dial_seeds.sh +++ b/test/p2p/pex/test_dial_manual_peers.sh @@ -11,7 +11,7 @@ ID=1 cd $GOPATH/src/github.com/tendermint/tendermint echo "----------------------------------------------------------------------" -echo "Testing full network connection using one /dial_seeds call" +echo "Testing full network connection using one /dial_manual_peers call" echo "(assuming peers are started with pex enabled)" # stop the existing testnet and remove local network @@ -21,16 +21,16 @@ set -e # start the testnet on a local network # NOTE we re-use the same network for all tests -SEEDS="" -bash test/p2p/local_testnet_start.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP $SEEDS +MANUAL_PEERS="" +bash test/p2p/local_testnet_start.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP $MANUAL_PEERS -# dial seeds from one node -CLIENT_NAME="dial_seeds" -bash test/p2p/client.sh $DOCKER_IMAGE $NETWORK_NAME $CLIENT_NAME "test/p2p/pex/dial_seeds.sh $N" +# dial manual_peers from one node +CLIENT_NAME="dial_manual_peers" +bash test/p2p/client.sh $DOCKER_IMAGE $NETWORK_NAME $CLIENT_NAME "test/p2p/pex/dial_manual_peers.sh $N" # test basic connectivity and consensus # start client container and check the num peers and height for all nodes -CLIENT_NAME="dial_seeds_basic" +CLIENT_NAME="dial_manual_peers_basic" bash test/p2p/client.sh $DOCKER_IMAGE $NETWORK_NAME $CLIENT_NAME "test/p2p/basic/test.sh $N" diff --git a/test/p2p/seeds.sh b/test/p2p/seeds.sh deleted file mode 100644 index 4bf866cba..000000000 --- a/test/p2p/seeds.sh +++ /dev/null @@ -1,12 +0,0 @@ -#! /bin/bash -set -eu - -N=$1 - -cd "$GOPATH/src/github.com/tendermint/tendermint" - -seeds="$(test/p2p/ip.sh 1):46656" -for i in $(seq 2 $N); do - seeds="$seeds,$(test/p2p/ip.sh $i):46656" -done -echo "$seeds" diff --git a/test/p2p/test.sh b/test/p2p/test.sh index 6a5537b98..f348efe4a 100644 --- a/test/p2p/test.sh +++ b/test/p2p/test.sh @@ -13,11 +13,11 @@ set +e bash test/p2p/local_testnet_stop.sh "$NETWORK_NAME" "$N" set -e -SEEDS=$(bash test/p2p/seeds.sh $N) +MANUAL_PEERS=$(bash test/p2p/manual_peers.sh $N) # start the testnet on a local network # NOTE we re-use the same network for all tests -bash test/p2p/local_testnet_start.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$N" "$PROXY_APP" "$SEEDS" +bash test/p2p/local_testnet_start.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$N" "$PROXY_APP" "$MANUAL_PEERS" # test basic connectivity and consensus # start client container and check the num peers and height for all nodes