I am following https://github.com/cosmos/cosmos-sdk/blob/master/examples/examples.md on macos.
when i run basecoind start, an exception throu below:
E[06-15|10:06:19.456] CONSENSUS FAILURE!!! module=consensus err="division by zero" stack="goroutine 65 [running]:\nruntime/debug.Stack(0xc4222751e0, 0x17bc9c0, 0x1ad20a0)\n\t/usr/local/Cellar/go/1.10.3/libexec/src/runtime/debug/stack.go:24 +0xa7\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine.func1(0xc4200d7600)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:538 +0x57\npanic(0x17bc9c0, 0x1ad20a0)\n\t/usr/local/Cellar/go/1.10.3/libexec/src/runtime/panic.go:502 +0x229\nmath/big.(*Rat).Quo(0xc422275350, 0xc4222753a0, 0xc4222753e0, 0x0)\n\t/usr/local/Cellar/go/1.10.3/libexec/src/math/big/rat.go:509 +0x167\ngithub.com/cosmos/cosmos-sdk/types.Rat.Quo(0x0, 0x0, 0x0, 0x0, 0x0, 0xc420991e90, 0x0, 0x5, 0x0, 0x0, ...)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/types/rational.go:91 +0x94\ngithub.com/cosmos/cosmos-sdk/x/stake.Keeper.nextInflation(0x1ad75a0, 0xc420ab4240, 0xc420ac4300, 0x1ad75a0, 0xc420ab4220, 0x1ae3160, 0xc420a98240, 0xc420ac4300, 0x4, 0x1addd60, ...)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/x/stake/inflation.go:43 +0x22b\ngithub.com/cosmos/cosmos-sdk/x/stake.Keeper.processProvisions(0x1ad75a0, 0xc420ab4240, 0xc420ac4300, 0x1ad75a0, 0xc420ab4220, 0x1ae3160, 0xc420a98240, 0xc420ac4300, 0x4, 0x1addd60, ...)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/x/stake/inflation.go:18 +0x149\ngithub.com/cosmos/cosmos-sdk/x/stake.EndBlocker(0x1addd60, 0xc42226a270, 0xc42221ea00, 0x9, 0x1ad75a0, 0xc420ab4240, 0xc420ac4300, 0x1ad75a0, 0xc420ab4220, 0x1ae3160, ...)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/x/stake/handler.go:36 +0x3e0\ngithub.com/cosmos/cosmos-sdk/examples/basecoin/app.(*BasecoinApp).EndBlocker(0xc420917400, 0x1addd60, 0xc42226a270, 0xc42221ea00, 0x9, 0x2, 0x0, 0x0, 0x0, 0x0, ...)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/examples/basecoin/app/app.go:125 +0xc1\ngithub.com/cosmos/cosmos-sdk/examples/basecoin/app.(*BasecoinApp).EndBlocker-fm(0x1addd60, 0xc42226a270, 0xc42221ea00, 0x9, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, ...)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/examples/basecoin/app/app.go:88 +0xa4\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).EndBlock(0xc4200f62a0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/baseapp/baseapp.go:553 +0xc9\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/abci/client.(*localClient).EndBlockSync(0xc420a98de0, 0x2, 0xc42221bd00, 0x0, 0x0)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/abci/client/local_client.go:213 +0x85\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/proxy.(*appConnConsensus).EndBlockSync(0xc420ab5c90, 0x2, 0x14, 0x20, 0xc422218c20)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/proxy/app_conn.go:77 +0x3d\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/state.execBlockOnProxyApp(0x1ade460, 0xc420a3a200, 0x1ae1300, 0xc420ab5c90, 0xc42090ba40, 0xc422239860, 0x1ae4960, 0xc420076728, 0x1, 0xc42097c520, ...)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/state/execution.go:210 +0x7b5\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/state.(*BlockExecutor).ApplyBlock(0xc4200c69c0, 0xc420ac12a0, 0x11, 0x1, 0x0, 0xc4209d7380, 0x14, 0x20, 0x1, 0xc42097c520, ...)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/state/execution.go:76 +0x12f\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).finalizeCommit(0xc4200d7600, 0x2)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1267 +0xbb2\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).tryFinalizeCommit(0xc4200d7600, 0x2)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1198 +0x468\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit.func1(0xc4200d7600, 0x0, 0x2)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1146 +0x98\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit(0xc4200d7600, 0x2, 0x0)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1175 +0x802\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).addVote(0xc4200d7600, 0xc4204854a0, 0x0, 0x0, 0xc420080998, 0xc4200809a0, 0xc420017b08)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1532 +0xbb4\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).tryAddVote(0xc4200d7600, 0xc4204854a0, 0x0, 0x0, 0xc420017b58, 0x16bca59)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1390 +0x56\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).handleMsg(0xc4200d7600, 0x17f4680, 0xc420f1c250, 0x0, 0x0)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:607 +0x643\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine(0xc4200d7600, 0x0)\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:564 +0x5a5\ncreated by github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).OnStart\n\t/Users/me/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:272 +0x140\n"
then lots of peer failure messages:
I[06-15|10:15:48.449] No addresses to dial nor connected peers. Falling back to seeds module=p2p
I[06-15|10:16:18.459] Ensure peers module=p2p numOutPeers=0 numInPeers=0 numDiali
how to start basecoind correctly?
and how to run basecoind on two nodes? run on multi nodes was not described in examples.md.
best regards
I have the same Issue, expecting someone to help, thx!
Me too. Full output:
}#2BF5A3F9B0EE5E094DD22B76716774A490A8D8A8 module=consensus
E[06-22|15:20:22.975] CONSENSUS FAILURE!!! module=consensus err="division by zero" stack="goroutine 129 [running]:\nruntime/debug.Stack(0xc4215b51e0, 0x17bd7a0, 0x1ad3230)\n\t/usr/local/Cellar/go/1.10/libexec/src/runtime/debug/stack.go:24 +0xa7\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine.func1(0xc422322000)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:538 +0x57\npanic(0x17bd7a0, 0x1ad3230)\n\t/usr/local/Cellar/go/1.10/libexec/src/runtime/panic.go:505 +0x229\nmath/big.(*Rat).Quo(0xc4215b5350, 0xc4215b53a0, 0xc4215b53e0, 0x0)\n\t/usr/local/Cellar/go/1.10/libexec/src/math/big/rat.go:509 +0x167\ngithub.com/cosmos/cosmos-sdk/types.Rat.Quo(0x0, 0x0, 0x0, 0x0, 0x0, 0xc420a17680, 0x0, 0x5, 0x0, 0x0, ...)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/types/rational.go:91 +0x94\ngithub.com/cosmos/cosmos-sdk/x/stake.Keeper.nextInflation(0x1ad8760, 0xc4200e8860, 0xc4200d0840, 0x1ad8760, 0xc4200e8840, 0x1ae4320, 0xc4200d0d20, 0xc4200d0840, 0x4, 0x1adef20, ...)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/x/stake/inflation.go:43 +0x22b\ngithub.com/cosmos/cosmos-sdk/x/stake.Keeper.processProvisions(0x1ad8760, 0xc4200e8860, 0xc4200d0840, 0x1ad8760, 0xc4200e8840, 0x1ae4320, 0xc4200d0d20, 0xc4200d0840, 0x4, 0x1adef20, ...)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/x/stake/inflation.go:18 +0x149\ngithub.com/cosmos/cosmos-sdk/x/stake.EndBlocker(0x1adef20, 0xc4215a0720, 0xc42158a340, 0x9, 0x1ad8760, 0xc4200e8860, 0xc4200d0840, 0x1ad8760, 0xc4200e8840, 0x1ae4320, ...)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/x/stake/handler.go:36 +0x3e0\ngithub.com/cosmos/cosmos-sdk/examples/basecoin/app.(*BasecoinApp).EndBlocker(0xc420a0e8c0, 0x1adef20, 0xc4215a0720, 0xc42158a340, 0x9, 0x2, 0x0, 0x0, 0x0, 0x0, ...)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/examples/basecoin/app/app.go:125 +0xc1\ngithub.com/cosmos/cosmos-sdk/examples/basecoin/app.(*BasecoinApp).EndBlocker-fm(0x1adef20, 0xc4215a0720, 0xc42158a340, 0x9, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, ...)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/examples/basecoin/app/app.go:88 +0xa4\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).EndBlock(0xc420100380, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/baseapp/baseapp.go:553 +0xc9\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/abci/client.(*localClient).EndBlockSync(0xc4200a0720, 0x2, 0xc421576dc0, 0x0, 0x0)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/abci/client/local_client.go:213 +0x85\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/proxy.(*appConnConsensus).EndBlockSync(0xc4209ccb50, 0x2, 0x14, 0x20, 0xc4204dfe80)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/proxy/app_conn.go:77 +0x3d\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/state.execBlockOnProxyApp(0x1adf620, 0xc42000d640, 0x1ae24c0, 0xc4209ccb50, 0xc4200cf770, 0xc42156fd10, 0x1ae5b20, 0xc420a46270, 0x1, 0xc4209ca620, ...)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/state/execution.go:210 +0x7b5\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/state.(*BlockExecutor).ApplyBlock(0xc4201c4ae0, 0xc4200325c0, 0x11, 0x1, 0x0, 0xc422bd0440, 0x14, 0x20, 0x1, 0xc4209ca620, ...)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/state/execution.go:76 +0x12f\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).finalizeCommit(0xc422322000, 0x2)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1267 +0xbb2\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).tryFinalizeCommit(0xc422322000, 0x2)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1198 +0x468\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit.func1(0xc422322000, 0x0, 0x2)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1146 +0x98\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit(0xc422322000, 0x2, 0x0)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1175 +0x802\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).addVote(0xc422322000, 0xc420a706e0, 0x0, 0x0, 0xc420a44b18, 0xc420a44b20, 0xc422b75b08)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1532 +0xbb4\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).tryAddVote(0xc422322000, 0xc420a706e0, 0x0, 0x0, 0xc422b75b58, 0x16bd6b9)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:1390 +0x56\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).handleMsg(0xc422322000, 0x17f5520, 0xc42000e1b8, 0x0, 0x0)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:607 +0x643\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine(0xc422322000, 0x0)\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:564 +0x5a5\ncreated by github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).OnStart\n\t/Users/admin/go/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:272 +0x140\n"
from
setup cosmos-sdk
rm -rf ~/.basecoind
basecoind init
basecoind start
democoin works fine.
Thanks!
You're right. This appears to be a division by zero error in staking. Heres the error for reference:
E[06-22|16:28:20.625] CONSENSUS FAILURE!!! module=consensus err="division by zero" stack="goroutine 67 [running]:\nruntime/debug.Stack(0xc42222b1e0, 0xbbd3a0, 0xed24f0)\n\t/usr/local/go/src/runtime/debug/stack.go:24 +0xa7\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus.(ConsensusState).receiveRoutine.func1(0xc4200c78c0)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/tendermint/consensus/state.go:538 +0x57\npanic(0xbbd3a0, 0xed24f0)\n\t/usr/local/go/src/runtime/panic.go:505 +0x229\nmath/big.(Rat).Quo(0xc42222b350, 0xc42222b3a0, 0xc42222b3e0, 0x0)\n\t/usr/local/go/src/math/big/rat.go:509 +0x167\ngithub.com/cosmos/cosmos-sdk/types.Rat.Quo(0x0, 0x0, 0x0, 0x0, 0x0, 0xc42096bd70, 0x0, 0x5, 0x0, 0x0, ...)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/types/rational.go:91 +0x94\ngithub.com/cosmos/cosmos-sdk/x/stake.Keeper.nextInflation(0xed7880, 0xc4209de490, 0xc4209d4060, 0xed7880, 0xc4209de470, 0xee33a0, 0xc4209d4300, 0xc4209d4060, 0x4, 0xede020, ...)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/x/stake/inflation.go:43 +0x22b\ngithub.com/cosmos/cosmos-sdk/x/stake.Keeper.processProvisions(0xed7880, 0xc4209de490, 0xc4209d4060, 0xed7880, 0xc4209de470, 0xee33a0, 0xc4209d4300, 0xc4209d4060, 0x4, 0xede020, ...)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/x/stake/inflation.go:18 +0x149\ngithub.com/cosmos/cosmos-sdk/x/stake.EndBlocker(0xede020, 0xc4222222a0, 0xc42092bf00, 0x9, 0xed7880, 0xc4209de490, 0xc4209d4060, 0xed7880, 0xc4209de470, 0xee33a0, ...)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/x/stake/handler.go:36 +0x3e0\ngithub.com/cosmos/cosmos-sdk/examples/basecoin/app.(BasecoinApp).EndBlocker(0xc4200f2b40, 0xede020, 0xc4222222a0, 0xc42092bf00, 0x9, 0x2, 0x0, 0x0, 0x0, 0x0, ...)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/examples/basecoin/app/app.go:125 +0xc1\ngithub.com/cosmos/cosmos-sdk/examples/basecoin/app.(BasecoinApp).EndBlocker-fm(0xede020, 0xc4222222a0, 0xc42092bf00, 0x9, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, ...)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/examples/basecoin/app/app.go:88 +0xa4\ngithub.com/cosmos/cosmos-sdk/baseapp.(BaseApp).EndBlock(0xc4200e22a0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/baseapp/baseapp.go:553 +0xc9\ngithub.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/abci/client.(localClient).EndBlockSync(0xc4200a9320, 0x2, 0xc42220c580, 0x0, 0x0)\n\t/root/goApps/src/github.com/cosmos/cosmos-sdk/vendor/github.com/tendermint/abci/client/local_client.go:213 +0x85\n... (rest ommitted)
The error is occuring on line 43 of inflation.go. Its due to params bonded being 0. I'll write a comment in the currently open staking PR for this.
LOL wow, nice catch. Okay but maybe we should panic... should there ever be a circumstance where Params.GoalBonded IS zero? I think this is a better indicator that Params is not set in basecoin, which I think the real issue is, maybe we throw an error much earlier during some initialization checks, it should be in the contract (currently non-existent, need better docs) as for what the bounds are for the different parameters... I think that's the better solution.
I think you're right. We should have this panic in a sanity check earlier on
cool - p.s. I don't think it needs to be a panic, a halting error during initialization should suffice, the params is in a way user input (panics shouldn't be used for bad user input)
We should just remove staking/slashing from basecoin. Doesn't belong there.
@ebuchman I'll take a look over and take this for now 馃憤
@alexanderbez we just need to remove the complex staking stuff from basecoin. We should just use the simplestake module