Merge branch 'develop' into release/v0.20.0
This commit is contained in:
commit
46b957929c
|
@ -5,8 +5,6 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
tmconn "github.com/tendermint/tendermint/p2p/conn"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -306,7 +304,6 @@ type P2PConfig struct {
|
||||||
// Peer connection configuration.
|
// Peer connection configuration.
|
||||||
HandshakeTimeout time.Duration `mapstructure:"handshake_timeout"`
|
HandshakeTimeout time.Duration `mapstructure:"handshake_timeout"`
|
||||||
DialTimeout time.Duration `mapstructure:"dial_timeout"`
|
DialTimeout time.Duration `mapstructure:"dial_timeout"`
|
||||||
MConfig tmconn.MConnConfig `mapstructure:"connection"`
|
|
||||||
|
|
||||||
// Testing params.
|
// Testing params.
|
||||||
// Force dial to fail
|
// Force dial to fail
|
||||||
|
@ -332,7 +329,6 @@ func DefaultP2PConfig() *P2PConfig {
|
||||||
AllowDuplicateIP: true, // so non-breaking yet
|
AllowDuplicateIP: true, // so non-breaking yet
|
||||||
HandshakeTimeout: 20 * time.Second,
|
HandshakeTimeout: 20 * time.Second,
|
||||||
DialTimeout: 3 * time.Second,
|
DialTimeout: 3 * time.Second,
|
||||||
MConfig: tmconn.DefaultMConnConfig(),
|
|
||||||
TestDialFail: false,
|
TestDialFail: false,
|
||||||
TestFuzz: false,
|
TestFuzz: false,
|
||||||
TestFuzzConfig: DefaultFuzzConnConfig(),
|
TestFuzzConfig: DefaultFuzzConnConfig(),
|
||||||
|
|
|
@ -2,7 +2,11 @@ Install Tendermint
|
||||||
==================
|
==================
|
||||||
|
|
||||||
The fastest and easiest way to install the ``tendermint`` binary
|
The fastest and easiest way to install the ``tendermint`` binary
|
||||||
is to run `this script <https://github.com/tendermint/tendermint/blob/develop/scripts/install_tendermint.sh>`__ on a fresh Ubuntu instance. Read the comments / instructions carefully (i.e., reset your terminal after running the script).
|
is to run `this script <https://github.com/tendermint/tendermint/blob/develop/scripts/install/install_tendermint_ubuntu.sh>`__ on
|
||||||
|
a fresh Ubuntu instance,
|
||||||
|
or `this script <https://github.com/tendermint/tendermint/blob/develop/scripts/install/install_tendermint_bsd.sh>`__
|
||||||
|
on a fresh FreeBSD instance. Read the comments / instructions carefully (i.e., reset your terminal after running the script,
|
||||||
|
make sure your okay with the network connections being made).
|
||||||
|
|
||||||
From Binary
|
From Binary
|
||||||
-----------
|
-----------
|
||||||
|
|
|
@ -102,6 +102,7 @@ type peer struct {
|
||||||
|
|
||||||
func newPeer(
|
func newPeer(
|
||||||
pc peerConn,
|
pc peerConn,
|
||||||
|
mConfig tmconn.MConnConfig,
|
||||||
nodeInfo NodeInfo,
|
nodeInfo NodeInfo,
|
||||||
reactorsByCh map[byte]Reactor,
|
reactorsByCh map[byte]Reactor,
|
||||||
chDescs []*tmconn.ChannelDescriptor,
|
chDescs []*tmconn.ChannelDescriptor,
|
||||||
|
@ -120,7 +121,7 @@ func newPeer(
|
||||||
reactorsByCh,
|
reactorsByCh,
|
||||||
chDescs,
|
chDescs,
|
||||||
onPeerError,
|
onPeerError,
|
||||||
pc.config.MConfig,
|
mConfig,
|
||||||
)
|
)
|
||||||
p.BaseService = *cmn.NewBaseService(nil, "Peer", p)
|
p.BaseService = *cmn.NewBaseService(nil, "Peer", p)
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ func TestPeerBasic(t *testing.T) {
|
||||||
rp.Start()
|
rp.Start()
|
||||||
defer rp.Stop()
|
defer rp.Stop()
|
||||||
|
|
||||||
p, err := createOutboundPeerAndPerformHandshake(rp.Addr(), cfg)
|
p, err := createOutboundPeerAndPerformHandshake(rp.Addr(), cfg, tmconn.DefaultMConnConfig())
|
||||||
require.Nil(err)
|
require.Nil(err)
|
||||||
|
|
||||||
err = p.Start()
|
err = p.Start()
|
||||||
|
@ -53,7 +53,7 @@ func TestPeerSend(t *testing.T) {
|
||||||
rp.Start()
|
rp.Start()
|
||||||
defer rp.Stop()
|
defer rp.Stop()
|
||||||
|
|
||||||
p, err := createOutboundPeerAndPerformHandshake(rp.Addr(), config)
|
p, err := createOutboundPeerAndPerformHandshake(rp.Addr(), config, tmconn.DefaultMConnConfig())
|
||||||
require.Nil(err)
|
require.Nil(err)
|
||||||
|
|
||||||
err = p.Start()
|
err = p.Start()
|
||||||
|
@ -65,7 +65,11 @@ func TestPeerSend(t *testing.T) {
|
||||||
assert.True(p.Send(testCh, []byte("Asylum")))
|
assert.True(p.Send(testCh, []byte("Asylum")))
|
||||||
}
|
}
|
||||||
|
|
||||||
func createOutboundPeerAndPerformHandshake(addr *NetAddress, config *config.P2PConfig) (*peer, error) {
|
func createOutboundPeerAndPerformHandshake(
|
||||||
|
addr *NetAddress,
|
||||||
|
config *config.P2PConfig,
|
||||||
|
mConfig tmconn.MConnConfig,
|
||||||
|
) (*peer, error) {
|
||||||
chDescs := []*tmconn.ChannelDescriptor{
|
chDescs := []*tmconn.ChannelDescriptor{
|
||||||
{ID: testCh, Priority: 1},
|
{ID: testCh, Priority: 1},
|
||||||
}
|
}
|
||||||
|
@ -86,7 +90,7 @@ func createOutboundPeerAndPerformHandshake(addr *NetAddress, config *config.P2PC
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
p := newPeer(pc, nodeInfo, reactorsByCh, chDescs, func(p Peer, r interface{}) {})
|
p := newPeer(pc, mConfig, nodeInfo, reactorsByCh, chDescs, func(p Peer, r interface{}) {})
|
||||||
p.SetLogger(log.TestingLogger().With("peer", addr))
|
p.SetLogger(log.TestingLogger().With("peer", addr))
|
||||||
return p, nil
|
return p, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,6 +70,8 @@ type Switch struct {
|
||||||
filterConnByAddr func(net.Addr) error
|
filterConnByAddr func(net.Addr) error
|
||||||
filterConnByID func(ID) error
|
filterConnByID func(ID) error
|
||||||
|
|
||||||
|
mConfig conn.MConnConfig
|
||||||
|
|
||||||
rng *cmn.Rand // seed for randomizing dial times and orders
|
rng *cmn.Rand // seed for randomizing dial times and orders
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,10 +90,13 @@ func NewSwitch(cfg *config.P2PConfig) *Switch {
|
||||||
// Ensure we have a completely undeterministic PRNG.
|
// Ensure we have a completely undeterministic PRNG.
|
||||||
sw.rng = cmn.NewRand()
|
sw.rng = cmn.NewRand()
|
||||||
|
|
||||||
sw.config.MConfig.FlushThrottle = time.Duration(cfg.FlushThrottleTimeout) * time.Millisecond
|
mConfig := conn.DefaultMConnConfig()
|
||||||
sw.config.MConfig.SendRate = cfg.SendRate
|
mConfig.FlushThrottle = time.Duration(cfg.FlushThrottleTimeout) * time.Millisecond
|
||||||
sw.config.MConfig.RecvRate = cfg.RecvRate
|
mConfig.SendRate = cfg.SendRate
|
||||||
sw.config.MConfig.MaxPacketMsgPayloadSize = cfg.MaxPacketMsgPayloadSize
|
mConfig.RecvRate = cfg.RecvRate
|
||||||
|
mConfig.MaxPacketMsgPayloadSize = cfg.MaxPacketMsgPayloadSize
|
||||||
|
|
||||||
|
sw.mConfig = mConfig
|
||||||
|
|
||||||
sw.BaseService = *cmn.NewBaseService(nil, "P2P Switch", sw)
|
sw.BaseService = *cmn.NewBaseService(nil, "P2P Switch", sw)
|
||||||
return sw
|
return sw
|
||||||
|
@ -600,7 +605,7 @@ func (sw *Switch) addPeer(pc peerConn) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
peer := newPeer(pc, peerNodeInfo, sw.reactorsByCh, sw.chDescs, sw.StopPeerForError)
|
peer := newPeer(pc, sw.mConfig, peerNodeInfo, sw.reactorsByCh, sw.chDescs, sw.StopPeerForError)
|
||||||
peer.SetLogger(sw.Logger.With("peer", addr))
|
peer.SetLogger(sw.Logger.With("peer", addr))
|
||||||
|
|
||||||
peer.Logger.Info("Successful handshake with peer", "peerNodeInfo", peerNodeInfo)
|
peer.Logger.Info("Successful handshake with peer", "peerNodeInfo", peerNodeInfo)
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
#!/usr/bin/tcsh
|
||||||
|
|
||||||
|
# XXX: this script is intended to be run from
|
||||||
|
# a fresh Digital Ocean droplet with FreeBSD
|
||||||
|
# Just run tcsh install_tendermint_bsd.sh
|
||||||
|
|
||||||
|
# upon its completion, you must either reset
|
||||||
|
# your terminal or run `source ~/.tcshrc`
|
||||||
|
|
||||||
|
# This assumes your installing it through tcsh as root.
|
||||||
|
# Change the relevant lines from tcsh to csh if your
|
||||||
|
# installing as a different user, along with changing the
|
||||||
|
# gopath.
|
||||||
|
|
||||||
|
# change this to a specific release or branch
|
||||||
|
set BRANCH=master
|
||||||
|
|
||||||
|
sudo pkg update
|
||||||
|
|
||||||
|
sudo pkg upgrade -y
|
||||||
|
sudo pkg install -y gmake
|
||||||
|
sudo pkg install -y git
|
||||||
|
|
||||||
|
# get and unpack golang
|
||||||
|
curl -O https://storage.googleapis.com/golang/go1.10.freebsd-amd64.tar.gz
|
||||||
|
tar -xvf go1.10.freebsd-amd64.tar.gz
|
||||||
|
|
||||||
|
# move go binary and add to path
|
||||||
|
mv go /usr/local
|
||||||
|
set path=($path /usr/local/go/bin)
|
||||||
|
|
||||||
|
|
||||||
|
# create the go directory, set GOPATH, and put it on PATH
|
||||||
|
mkdir go
|
||||||
|
echo "setenv GOPATH /root/go" >> ~/.tcshrc
|
||||||
|
setenv GOPATH /root/go
|
||||||
|
echo "set path=($path $GOPATH/bin)" >> ~/.tcshrc
|
||||||
|
|
||||||
|
source ~/.tcshrc
|
||||||
|
|
||||||
|
# get the code and move into repo
|
||||||
|
set REPO=github.com/tendermint/tendermint
|
||||||
|
go get $REPO
|
||||||
|
cd $GOPATH/src/$REPO
|
||||||
|
|
||||||
|
# build & install master
|
||||||
|
git checkout $BRANCH
|
||||||
|
gmake get_tools
|
||||||
|
gmake get_vendor_deps
|
||||||
|
gmake install
|
||||||
|
|
||||||
|
# the binary is located in $GOPATH/bin
|
||||||
|
# run `source ~/.profile` or reset your terminal
|
||||||
|
# to persist the changes
|
Loading…
Reference in New Issue