diff --git a/CHANGELOG.md b/CHANGELOG.md index 4428f7a4c..e3de08a74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 0.19.1 + +*June 25, 2018* + +* Update to Tendermint v0.21.0 (fixes websocket memory leak and a few other + things) + +BREAKING CHANGES: +* Changes the default ports from `4665X` to `2665X` + + ## 0.19.0 *June 13, 2018* diff --git a/Gopkg.lock b/Gopkg.lock index 07a3c6d5b..21e9c44bb 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -256,7 +256,7 @@ "leveldb/table", "leveldb/util" ] - revision = "e2150783cd35f5b607daca48afd8c57ec54cc995" + revision = "0d5a0ceb10cf9ab89fdd744cc8c50a83134f6697" [[projects]] name = "github.com/tendermint/abci" @@ -267,8 +267,8 @@ "server", "types" ] - revision = "ebee2fe114020aa49c70bbbae50b7079fc7e7b90" - version = "v0.11.0" + revision = "198dccf0ddfd1bb176f87657e3286a05a6ed9540" + version = "v0.12.0" [[projects]] branch = "master" @@ -347,11 +347,10 @@ "types", "version" ] - revision = "27bd1deabe4ba6a2d9b463b8f3e3f1e31b993e61" - version = "v0.20.0" + revision = "46369a1ab76f274ab47179c4176221842b8207b4" + version = "v0.21.0" [[projects]] - branch = "develop" name = "github.com/tendermint/tmlibs" packages = [ "autofile", @@ -366,7 +365,8 @@ "merkle", "merkle/tmhash" ] - revision = "0c98d10b4ffbd87978d79c160e835b3d3df241ec" + revision = "49596e0a1f48866603813df843c9409fc19805c6" + version = "v0.9.0" [[projects]] branch = "master" @@ -374,6 +374,7 @@ packages = [ "blowfish", "curve25519", + "internal/subtle", "nacl/box", "nacl/secretbox", "openpgp/armor", @@ -382,7 +383,7 @@ "ripemd160", "salsa20/salsa" ] - revision = "8ac0e0d97ce45cd83d1d7243c060cb8461dda5e9" + revision = "a49355c7e3f8fe157a85be2f77e6e269a0f89602" [[projects]] branch = "master" @@ -396,13 +397,13 @@ "internal/timeseries", "trace" ] - revision = "db08ff08e8622530d9ed3a0e8ac279f6d4c02196" + revision = "afe8f62b1d6bbd81f31868121a50b06d8188e1f9" [[projects]] branch = "master" name = "golang.org/x/sys" packages = ["unix"] - revision = "bff228c7b664c5fce602223a05fb708fd8654986" + revision = "a200a19cb90b19de298170992778b1fda7217bd6" [[projects]] name = "golang.org/x/text" @@ -463,6 +464,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "31f69b235b2d8f879a215c9e8ca0919adc62d21f6830b17931a3a0efb058721f" + inputs-digest = "3a437ed2c22314c3762584ff52c76a58916fd9e9fef00035aa01ae65bce08637" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 77de1b78d..ff7f2bbd4 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -52,29 +52,29 @@ name = "github.com/stretchr/testify" version = "~1.2.1" -[[constraint]] +[[override]] name = "github.com/tendermint/abci" - version = "=0.11.0" + version = "=0.12.0" -[[constraint]] +[[override]] name = "github.com/tendermint/go-crypto" - version = "~0.6.2" + version = "=0.6.2" -[[constraint]] +[[override]] name = "github.com/tendermint/go-amino" version = "=0.9.9" -[[constraint]] +[[override]] name = "github.com/tendermint/iavl" - version = "0.8.0-rc0" + version = "=0.8.0-rc0" -[[constraint]] +[[override]] name = "github.com/tendermint/tendermint" - version = "=0.20.0" + version = "=0.21.0" [[override]] name = "github.com/tendermint/tmlibs" - branch = "develop" + version = "=v0.9.0" # this got updated and broke, so locked to an old working commit ... [[override]] diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index 4d32b92f5..e2159aa29 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -87,7 +87,6 @@ func NewBaseApp(name string, cdc *wire.Codec, logger log.Logger, db dbm.DB) *Bas txDecoder: defaultTxDecoder(cdc), } // Register the undefined & root codespaces, which should not be used by any modules - app.codespacer.RegisterOrPanic(sdk.CodespaceUndefined) app.codespacer.RegisterOrPanic(sdk.CodespaceRoot) return app } @@ -137,7 +136,7 @@ func defaultTxDecoder(cdc *wire.Codec) sdk.TxDecoder { // are registered by MakeTxCodec err := cdc.UnmarshalBinary(txBytes, &tx) if err != nil { - return nil, sdk.ErrTxDecode("").Trace(err.Error()) + return nil, sdk.ErrTxDecode("").TraceSDK(err.Error()) } return tx, nil } @@ -486,7 +485,6 @@ func (app *BaseApp) runTx(mode runTxMode, txBytes []byte, tx sdk.Tx) (result sdk // Validate the Msg. err := msg.ValidateBasic() if err != nil { - err = err.WithDefaultCodespace(sdk.CodespaceRoot) return err.Result() } diff --git a/cmd/gaia/testnets/STATUS.md b/cmd/gaia/testnets/STATUS.md index 0848f27ef..00f7a5860 100644 --- a/cmd/gaia/testnets/STATUS.md +++ b/cmd/gaia/testnets/STATUS.md @@ -1,5 +1,10 @@ # TESTNET STATUS +## *July 2, 2018, 1:00 EST* - Gaia-6002 slashing failure + +- Gaia-6002 has been halted due to a slashing issue. +- The team is taking its time to look into this Gaia-7000 will be introduced this week. + ## *June 13, 2018, 17:00 EST* - Gaia-6002 is making blocks! - Gaia-6002 is live and making blocks diff --git a/examples/democoin/x/cool/types.go b/examples/democoin/x/cool/types.go index b8640b211..77f49a0ba 100644 --- a/examples/democoin/x/cool/types.go +++ b/examples/democoin/x/cool/types.go @@ -41,13 +41,13 @@ func (msg MsgSetTrend) String() string { // Validate Basic is used to quickly disqualify obviously invalid messages quickly func (msg MsgSetTrend) ValidateBasic() sdk.Error { if len(msg.Sender) == 0 { - return sdk.ErrUnknownAddress(msg.Sender.String()).Trace("") + return sdk.ErrUnknownAddress(msg.Sender.String()).TraceSDK("") } if strings.Contains(msg.Cool, "hot") { - return sdk.ErrUnauthorized("").Trace("hot is not cool") + return sdk.ErrUnauthorized("").TraceSDK("hot is not cool") } if strings.Contains(msg.Cool, "warm") { - return sdk.ErrUnauthorized("").Trace("warm is not very cool") + return sdk.ErrUnauthorized("").TraceSDK("warm is not very cool") } return nil } @@ -91,7 +91,7 @@ func (msg MsgQuiz) String() string { // Validate Basic is used to quickly disqualify obviously invalid messages quickly func (msg MsgQuiz) ValidateBasic() sdk.Error { if len(msg.Sender) == 0 { - return sdk.ErrUnknownAddress(msg.Sender.String()).Trace("") + return sdk.ErrUnknownAddress(msg.Sender.String()).TraceSDK("") } return nil } diff --git a/server/tm_cmds.go b/server/tm_cmds.go index 7dccaf531..25d417a66 100644 --- a/server/tm_cmds.go +++ b/server/tm_cmds.go @@ -72,7 +72,7 @@ func UnsafeResetAllCmd(ctx *Context) *cobra.Command { Short: "Reset blockchain database, priv_validator.json file, and the logger", RunE: func(cmd *cobra.Command, args []string) error { cfg := ctx.Config - tcmd.ResetAll(cfg.DBDir(), cfg.PrivValidatorFile(), ctx.Logger) + tcmd.ResetAll(cfg.DBDir(), cfg.P2P.AddrBookFile(), cfg.PrivValidatorFile(), ctx.Logger) return nil }, } diff --git a/types/errors.go b/types/errors.go index 20d452464..65c258b0c 100644 --- a/types/errors.go +++ b/types/errors.go @@ -55,10 +55,7 @@ const ( CodeOutOfGas CodeType = 12 // CodespaceRoot is a codespace for error codes in this file only. - // Notice that 0 is an "unset" codespace, which can be overridden with - // Error.WithDefaultCodespace(). - CodespaceUndefined CodespaceType = 0 - CodespaceRoot CodespaceType = 1 + CodespaceRoot CodespaceType = 1 // Maximum reservable codespace (2^16 - 1) MaximumCodespace CodespaceType = 65535 @@ -141,49 +138,64 @@ func ErrOutOfGas(msg string) Error { //---------------------------------------- // Error & sdkError +type cmnError = cmn.Error + // sdk Error type type Error interface { - Error() string + // Implements cmn.Error + // Error() string + // Stacktrace() cmn.Error + // Trace(offset int, format string, args ...interface{}) cmn.Error + // Data() interface{} + cmnError + + // convenience + TraceSDK(format string, args ...interface{}) Error + Code() CodeType Codespace() CodespaceType ABCILog() string ABCICode() ABCICodeType - WithDefaultCodespace(codespace CodespaceType) Error - Trace(msg string) Error - T() interface{} Result() Result QueryResult() abci.ResponseQuery } -// NewError - create an error -func NewError(codespace CodespaceType, code CodeType, msg string) Error { - return newError(codespace, code, msg) +// NewError - create an error. +func NewError(codespace CodespaceType, code CodeType, format string, args ...interface{}) Error { + return newError(codespace, code, format, args...) } -func newErrorWithRootCodespace(code CodeType, msg string) *sdkError { - return newError(CodespaceRoot, code, msg) +func newErrorWithRootCodespace(code CodeType, format string, args ...interface{}) *sdkError { + return newError(CodespaceRoot, code, format, args...) } -func newError(codespace CodespaceType, code CodeType, msg string) *sdkError { - if msg == "" { - msg = CodeToDefaultMsg(code) +func newError(codespace CodespaceType, code CodeType, format string, args ...interface{}) *sdkError { + if format == "" { + format = CodeToDefaultMsg(code) } return &sdkError{ codespace: codespace, code: code, - err: cmn.NewErrorWithT(code, msg), + cmnError: cmn.NewError(format, args...), } } type sdkError struct { codespace CodespaceType code CodeType - err cmn.Error + cmnError } // Implements ABCIError. +func (err *sdkError) TraceSDK(format string, args ...interface{}) Error { + err.Trace(1, format, args...) + return err +} + +// Implements ABCIError. +// Overrides err.Error.Error(). func (err *sdkError) Error() string { - return fmt.Sprintf("Error{%d:%d,%#v}", err.codespace, err.code, err.err) + return fmt.Sprintf("Error{%d:%d,%#v}", err.codespace, err.code, err.cmnError) } // Implements ABCIError. @@ -209,33 +221,7 @@ Code: %v ABCICode: %v Error: %#v === /ABCI Log === -`, err.codespace, err.code, err.ABCICode(), err.err) -} - -// Add tracing information with msg. -func (err *sdkError) Trace(msg string) Error { - return &sdkError{ - codespace: err.codespace, - code: err.code, - err: err.err.Trace(msg), - } -} - -// Implements Error. -func (err *sdkError) WithDefaultCodespace(cs CodespaceType) Error { - codespace := err.codespace - if codespace == CodespaceUndefined { - codespace = cs - } - return &sdkError{ - codespace: codespace, - code: err.code, - err: err.err, - } -} - -func (err *sdkError) T() interface{} { - return err.err.T() +`, err.codespace, err.code, err.ABCICode(), err.cmnError) } func (err *sdkError) Result() Result { diff --git a/version/version.go b/version/version.go index e24ef62f1..cb866a001 100644 --- a/version/version.go +++ b/version/version.go @@ -7,9 +7,9 @@ package version const Maj = "0" const Min = "19" -const Fix = "0" +const Fix = "1" -const Version = "0.19.0" +const Version = "0.19.1" // GitCommit set by build flags var GitCommit = "" diff --git a/x/bank/msgs.go b/x/bank/msgs.go index 48e62d835..1a871979e 100644 --- a/x/bank/msgs.go +++ b/x/bank/msgs.go @@ -27,28 +27,28 @@ func (msg MsgSend) ValidateBasic() sdk.Error { // this just makes sure all the inputs and outputs are properly formatted, // not that they actually have the money inside if len(msg.Inputs) == 0 { - return ErrNoInputs(DefaultCodespace).Trace("") + return ErrNoInputs(DefaultCodespace).TraceSDK("") } if len(msg.Outputs) == 0 { - return ErrNoOutputs(DefaultCodespace).Trace("") + return ErrNoOutputs(DefaultCodespace).TraceSDK("") } // make sure all inputs and outputs are individually valid var totalIn, totalOut sdk.Coins for _, in := range msg.Inputs { if err := in.ValidateBasic(); err != nil { - return err.Trace("") + return err.TraceSDK("") } totalIn = totalIn.Plus(in.Coins) } for _, out := range msg.Outputs { if err := out.ValidateBasic(); err != nil { - return err.Trace("") + return err.TraceSDK("") } totalOut = totalOut.Plus(out.Coins) } // make sure inputs and outputs match if !totalIn.IsEqual(totalOut) { - return sdk.ErrInvalidCoins(totalIn.String()).Trace("inputs and outputs don't match") + return sdk.ErrInvalidCoins(totalIn.String()).TraceSDK("inputs and outputs don't match") } return nil } @@ -107,11 +107,11 @@ func (msg MsgIssue) Type() string { return "bank" } // TODO: "bank/issue" func (msg MsgIssue) ValidateBasic() sdk.Error { // XXX if len(msg.Outputs) == 0 { - return ErrNoOutputs(DefaultCodespace).Trace("") + return ErrNoOutputs(DefaultCodespace).TraceSDK("") } for _, out := range msg.Outputs { if err := out.ValidateBasic(); err != nil { - return err.Trace("") + return err.TraceSDK("") } } return nil diff --git a/x/ibc/types.go b/x/ibc/types.go index 4924aec4b..a311b9869 100644 --- a/x/ibc/types.go +++ b/x/ibc/types.go @@ -65,7 +65,7 @@ func (p IBCPacket) GetSignBytes() []byte { // validator the ibc packey func (p IBCPacket) ValidateBasic() sdk.Error { if p.SrcChain == p.DestChain { - return ErrIdenticalChains(DefaultCodespace).Trace("") + return ErrIdenticalChains(DefaultCodespace).TraceSDK("") } if !p.Coins.IsValid() { return sdk.ErrInvalidCoins("")