Commit Graph

204 Commits

Author SHA1 Message Date
ValarDragon 52775f3329 Make the slashing logger print a string representation of slashFactor
It used to print the decimal number, which has an extra factor of 10**10,
and is thus confusing.
2018-09-01 13:54:47 -07:00
ValarDragon f29fdcafdd Add comments 2018-09-01 13:21:42 -07:00
ValarDragon 3b4caa5dd2 fix lint 2018-09-01 12:59:36 -07:00
ValarDragon a991a2e1c4 Improve GetValidator speed
In simulation, this was shown to cause a 4x speedup. There are no safety
concerns here, as amino encoding is deterministic.
2018-09-01 12:59:36 -07:00
rigelrozanski f0c13bbfbd resolve merge errors 2018-08-31 21:38:50 -04:00
rigelrozanski a880242895 Merge remote-tracking branch 'origin/develop' into rigel/validator-unbonding 2018-08-31 20:28:48 -04:00
Christopher Goes 1204857694 Merge PR #2122: Implement slashing period
* Update PENDING.md

* SlashingPeriod struct

* Seperate keys.go, constant prefixes

* Make linter happy

* Update Gopkg.lock

* Seek slashing period by infraction height

* Slashing period hooks

* Slashing period unit tests; bugfix

* Add simple hook tests

* Add sdk.ValidatorHooks interface

* No-op hooks

* Real hooks

* Fix iteration direction & duplicate key, update Gaia

* Correctly simulate past validator set signatures

* Tiny rename

* Update dep; 'make format'

* Add quick slashing period functionality test

* Additional unit tests

* Use current validators when selected

* Panic in the right place

* Address @rigelrozanski comments

* Fix linter errors

* Address @melekes suggestion

* Rename hook

* Update for new bech32 types

* 'make format'
2018-08-31 20:01:23 -04:00
Rigel b92ac313ac
Merg PR #2198: Ensure Legacy Validator Delegation Invariants
* Test and allow jailed validator to self-bond

* Implement TestJailedValidatorDelegations

* Restructure TestJailedValidatorDelegations

* Add Delegation to Validator type and update handleMsgUnjail accordingly

* Update ErrMissingSelfDelegation error message

* Update democoin mock validator set impl

* Update pending log

* Add comment to ValidatorSet

* Fix conflicts/errors due to develop merge
2018-08-31 15:21:12 -04:00
Rigel ee0434e5a7
Revert "Merge PR #2176: Ensure Legacy Validator Delegation Invariants" (#2197)
This reverts commit df33452490.
2018-08-31 00:55:33 -04:00
Alexander Bezobchuk df33452490 Merge PR #2176: Ensure Legacy Validator Delegation Invariants
* Test and allow jailed validator to self-bond

* Implement TestJailedValidatorDelegations

* Restructure TestJailedValidatorDelegations

* Add Delegation to Validator type and update handleMsgUnjail accordingly

* Update ErrMissingSelfDelegation error message

* Update democoin mock validator set impl

* Update pending log

* Add comment to ValidatorSet
2018-08-31 00:10:51 -04:00
Alexander Bezobchuk 2d92803b9f Merge PR #2040: Refactor Validator Account Types/Bech32 Prefixing
* Add new account bech32 prefixes with godocs

* Restructure spacing of existing account code

* Update account godocs

* More account godoc updates + new tm pub/addr helpers

* Update validator type to use new account types/bech32 prefixes

* Fix account documentation errors

* Update Bech32 prefix for consensus nodes

* Update Bech32 spec doc

* Fix account type tests

* Add missing account consensus functions, clear up godocs, and fix tests

* Add to TestRandBech32PubkeyConsistency check

* Update initialization of validator public keys

* Update query signing info command

* Implement new ConsAddress type with associated unit tests

* [WIP] Update stake and slashing parameters

* Update all calls to MustBech32ifyValPub

* [WIP] Validator operator API updates

* [WIP] Fix and update unit tests

* Fix gov logs (helping to debug failing tests)

* Fix gov tally

* Fix all broken x/ unit tests

* Update gaia app genesis address logic

* Fix linting errors

* Fix broken LCD tests

* Fix broken CLI tests

* Implement command to get validator address and pubkey from key name

* Add support for getting validator key information via REST endpoint

* Update PENDING log

* Update docs

* Revert GaiaGenTx.PubKey bech32 prefix

* Fix broken docs and cli tests

* Update genesis to use correct Bech32 (cons) prefix for pubkeys

* Update docs and unit tests to reflect new cosmos account bech32 prefix

* minor formatting
2018-08-31 00:06:44 -04:00
rigelrozanski 8d02c3eba0 fix golint 2018-08-29 20:24:35 -04:00
rigelrozanski 6fd8299b1a ... 2018-08-29 18:54:02 -04:00
rigelrozanski 52b249b0cd complete tests 2018-08-29 18:44:40 -04:00
rigelrozanski d1a2fed2bc tests working 2018-08-29 02:28:27 -04:00
rigelrozanski 78f98fec16 Merge remote-tracking branch 'origin/develop' into rigel/validator-unbonding 2018-08-27 19:34:03 -04:00
HaoyangLiu 5ed1775681 Merge PR #2148: Change delegation amount from int64 to sdk.Int
* Change delegation amount from int64 to sdk.Int

* Refactor code according to code review

* leave freeFermionVal to int64 in case of overflow
2018-08-27 18:18:18 -04:00
rigelrozanski f2d47f9e91 slash contract, cwgoes comment 2018-08-27 14:46:38 -04:00
rigelrozanski 527320c9fc dummy tests 2018-08-27 00:38:31 -04:00
rigelrozanski ec42e66501 fix old tests 2018-08-27 00:20:40 -04:00
rigelrozanski 86f07d271d unbonding validators, delegtion effects 2018-08-24 21:47:31 -04:00
Christopher Goes 879f78cfc0 Rename revoke(d) to jail(ed) 2018-08-22 17:56:13 +02:00
Jae Kwon f076794c5a Fix bug introduced during merge 2018-08-20 21:55:23 -07:00
Christopher Goes 800ac2844e validator.Operator, sdk.Dec 2018-08-20 17:10:43 +02:00
Ethan Buchman af73b885e7 Merge branch 'develop' into bucky/merge-master 2018-08-19 16:24:45 -04:00
Alexander Bezobchuk 5794f3c3ce Merge PR #2083: Fix broken invariant of bonded validator power decrease 2018-08-18 13:41:12 +02:00
Alexander Bezobchuk cf03076a0a Merge PR #2047: Fix Invalid Cliff Validator Power Comparison 2018-08-17 17:33:13 +02:00
Alessio Treglia 187bc1972a Merge PR #1950: Validator.Owner -> .Operator
* Rename --address-validator flag to --validator

See #1901

* Update PENDING.md

* Rename Validator.Owner -> Validator.Operator

See #1901
2018-08-16 16:47:59 -04:00
Christopher Goes 3d50567034
Merge PR #1783: Slashing, validator set, and governance simulation 2018-08-16 17:36:15 +02:00
Alexander Bezobchuk 97ea51a335 Merge pull request #2023: Terminate Update Bonded Validators Iteration Properly 2018-08-15 14:51:19 -04:00
Rigel d9dc061b4f
Merge pull request #1819: rational -> decimal
* changelog

* ...

* decimal func working

* decimal complete, untested

* fixing tests

* decimal compile errors resolved

* test compile errors

* precision multiplier test

* 1% laptop battery

* fixed TestNewDecFromStr

* equalities working

* fix bankers round chop

* ...

* working, some decimal issues resolved

* fix rounding error

* rounding works

* decimal works

* ...

* deleted rational

* rational conversion working

* revert changelog

* code compiles (not tests)

* went through all NewDec, made sure they were converted from NewRat properly

* test debugging

* all testing bugs besides the json marshalling fixed

* json unmarshal

* lint

* document update

* fix lcd test

* cli test fix

* mostly undo Dece -> Rate

* val comments

* Efficiency improvements

This now caches all of the precision multipliers (as they were all
used in non-mutative functions), and caches the precisionInt calculation.
(Now it just copies the already calculated value)

* Cache another precisionInt() call.

* Improve banker rounding efficiency

* remove defer, make negation in-place.

* chris val comments

* bez comments

* Aditya comments

* ...

* val comments

* rebasing start

* ...

* compiling

* tests pass

* cli fix

* anton, cwgoes, val comments

* val and jae comments

* type

* undo reuse quo
2018-08-14 20:15:02 -04:00
Dev Ojha b2a4aecc44 Upgrade to tm version 23.0. (#1927)
* Start upgrade. Currently go test ./... hangs.

* (squash this) Fix staking tests

* wip

* note what changes need to be made to make this work on tm v0.23.0

* Fix addr -> pubkey map

* cleanup code

* Fix slashing test failures except for begin blocker

* fix all slashing tests

* fix lcd tests

* Address PR comments

* add link to changelog.

* (wip) start making addrToPubkey map persisted. Since amino can't handle maps,
we have to change from what this commit is doing.

* Use the correct method of storing a map

* (squash this) address PR comments

* Did you run 'make'?

* remove gaiadebug binary
2018-08-12 03:33:48 -04:00
Christopher Goes ac26d33547
Merge PR #1858: Fix Cliff Validator Update Bugs 2018-08-09 00:57:59 +02:00
Federico Kunze 1da1115a24 Merge PR #1880: Staking Gaia-lite (ex LCD) refactor 2018-08-08 12:38:39 +02:00
Joon 19b0781e60 Merge PR #1811: NewCoin takes sdk.Int 2018-07-31 02:09:50 +02:00
ValarDragon 0bb3497356 x/stake: Speed up handleMsgEditValidator
This removes running the power update logic on handleMsgEditValidator,
as its unnecessary.

Closes #1815
2018-07-27 21:42:59 -07:00
Dev Ojha 5d02a743fb Update to tendermint v0.22.6-rc0 (#1798)
* Update to tendermint v0.22.6-rc0

This is comprised of updating the crypto imports / API

* (squash this) switch to v0.22.6

If this passes tests, I'll squash this commit and update the PR.
2018-07-25 16:43:37 -04:00
Christopher Goes 4b7f6efd87
Merge PR #1805: Downtime slashing off-by-one-block fix
* Avoid slashing & revoking no longer stored or already revoked validators for downtime
* Add testcase
* Update PENDING.md
2018-07-25 04:12:48 +02:00
Christopher Goes 7e88a50b2a
Merge branch 'develop' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-19 08:49:20 +02:00
Joon aa525418e1 Merge PR #1373: Initialization of POS chain 2018-07-19 08:39:40 +02:00
Christopher Goes 966f26dfb2 Remove print, quickfix 2018-07-18 07:44:40 +02:00
Christopher Goes 6c61577b0b Misc, environment variables 2018-07-18 07:37:38 +02:00
Rigel 3231daa4d8 remove global shares (#1644)
* wip removing pool shares

* remove PoolShares/Tokens entirely

* worked through stake/type compile error

* work through a bunch of keeper errors

* worked through compile errors

* debugging tests

* resolve compilation error

* resolved types errors

* ...

* move inflation to pool type

* ...

* stumped problem

* Calculate newly issued shares, remove unnecessary pool arg from exchange rate calculation

* Rounding changed

* Update x/slashing tests for sdk.Rat BondedTokens

* testing fixes

* resolved test fixes

* cwgoes comments, changelog, lint

* cli bugfixes

* ..

* cli fixed

* spec update

* 'make format'

* cwgoes comments

* Increase test_cover parallelism
2018-07-13 21:46:14 +01:00
Rigel 2885ac586e Merge PR #1660: Redelegation doesn't subtract from liquid
* fix redelegation subtracting source coins
* changelog
* Add testcases for balance subtraction
* Move changelog entry
2018-07-13 01:38:35 +02:00
Christopher Goes a6cc85ae87
Merge PR #1619: R4R: Clearer staking logic 2018-07-12 19:39:51 +02:00
rigelrozanski 9eeb47517d cwgoes comments 2018-07-10 19:27:39 -04:00
Christopher Goes 75b4f4104a Merge branch 'develop' into joon/673-am-constructor 2018-07-11 00:57:46 +02:00
rigelrozanski 561eda3fc3 typo 2018-07-10 18:39:52 -04:00
rigelrozanski e8e5e8c600 bez updates 2018-07-10 18:36:57 -04:00
rigelrozanski c21e6a0642 Merge remote-tracking branch 'origin/develop' into rigel/clearer-staking-logic 2018-07-10 14:52:49 -04:00
rigelrozanski 12932de40f further cleanup, also reorg updateBondedValidators 2018-07-10 10:23:31 -04:00
rigelrozanski 61cbd12976 cleanup logic in updateValidator 2018-07-10 02:38:09 -04:00
ValarDragon 985037d2bd Fix unformatted files 2018-07-09 22:08:01 -07:00
mossid bc12880394 Merge pull request #1379: Account constructor in AccountMaper
fix

fix democoin

fix tests

pass lint

last fix

apply requests

fix build failing

fix docs
2018-07-09 20:29:14 -07:00
Christopher Goes 5a56c3f03d
Merge PR #1575: ready-for-review: sdk.AccAddress natively bech32 2018-07-10 04:18:23 +02:00
ValarDragon 99e91dd276 Add nolints on remaining functions 2018-07-09 16:16:43 -07:00
ValarDragon 17b5370c22 Continue fixing gocyclo errors 2018-07-09 16:08:35 -07:00
Sunny Aggarwal 896cd333f0 address comments 2018-07-09 16:06:05 -07:00
ValarDragon 2a419a3192 add helper to UpdateBondedValidatorsFull 2018-07-09 15:29:16 -07:00
ValarDragon 1433b61a92 Missed a min in slashing 2018-07-09 15:29:16 -07:00
ValarDragon 0c5358c267 Continue reducing code complexity:
* Adds a Min function to Int, and uses that in the slash function
* Adds a getHeight helper function to iavlstore
* Adds a splitPath function to baseapp
* Changes cyclo param from 10 to 11
2018-07-09 15:29:16 -07:00
Sunny Aggarwal 25d976feb4 works? 2018-07-09 01:47:38 -07:00
sunnya97 7ac220beb6 asdf 2018-07-09 00:59:51 -07:00
Sunny Aggarwal 50ed0fa1ae asdf 2018-07-09 00:35:28 -07:00
Christopher Goes 51a50210e9
Merge PR #1565: Validator Cliff Updates 2018-07-07 02:50:54 +02:00
rigelrozanski d36dda0267 address cwgoes comments 2018-07-06 20:29:39 -04:00
Christopher Goes 3630cde63e Address PR comments 2018-07-07 02:20:37 +02:00
Christopher Goes dbe7744b14 Simplify test slightly 2018-07-07 02:02:46 +02:00
rigelrozanski 062a683d11 completely fix dem tests 2018-07-06 20:00:33 -04:00
Christopher Goes eafd1e492f Update comments 2018-07-07 01:53:40 +02:00
rigelrozanski 37a5f2fd4c fix count in UpdateBondedValidators to not include revoked validators 2018-07-06 19:53:07 -04:00
Christopher Goes c456daae25 Merge remote-tracking branch 'origin/develop' into cwgoes/zero-power-should-not-be-bonded 2018-07-07 01:49:46 +02:00
Christopher Goes ad3e123c82 Ignore slashes on nonexistent validators; update testcases 2018-07-07 01:49:17 +02:00
rigelrozanski 2bf0b842fa Merge remote-tracking branch 'origin/develop' into rigel/a-validator-on-a-cliff 2018-07-06 18:04:49 -04:00
Christopher Goes 723e057d95 Merge pull request #1566: Fix validator power decrease bug
* Demonstrative testcase

* Update when decreasing but still bonded

* Only update when decreasing, not when equal

* Cleanup conditional; changelog

* Clarify comments

* Simplify conditional
2018-07-06 18:00:00 -04:00
rigelrozanski 926a6160c9 rearrage cliff tests to reveal new problem 2018-07-06 03:04:01 -04:00
Christopher Goes e8b841080d Update .Slash() and testcase 2018-07-05 20:21:56 +02:00
Christopher Goes b92f802835 Demonstrate failing testcase 2018-07-05 20:10:05 +02:00
rigelrozanski aed3a87366 address cwgoes comments 2018-07-04 17:07:06 -04:00
rigelrozanski f152b64952 Merge remote-tracking branch 'origin/develop' into rigel/no_keys_in_state_value 2018-07-04 14:29:12 -04:00
rigelrozanski a2f7b582df validators smaller values stored 2018-07-04 01:32:49 -04:00
rigelrozanski 04921b9ebd ubd and red more limited values 2018-07-04 00:29:02 -04:00
rigelrozanski 199c1e81eb delegations new key format ported 2018-07-03 23:44:54 -04:00
Rigel cae6b40221
Merge pull request #1467: staking index keys don't hold values
* docs: Explain the expected return type within the store (#1452)

* bug somewhere here

* ...

* ...

* fix appending over key

* keys cleanup

* changelog

* remove some junk

* address bucky comments - rearrange appends

* hard code address length
2018-07-03 19:15:48 -04:00
Christopher Goes 5c939cfab7 Demonstrative testcase, export GetCliffValidator 2018-07-04 00:08:37 +02:00
rigelrozanski 4f0c7d8746 address bucky comments - rearrange appends 2018-07-03 13:37:17 -04:00
Rigel 2a2f5db450
Merge branch 'develop' into rigel/stake-spec-compliance 2018-07-02 21:03:46 -04:00
rigelrozanski 6f3b4c1805 keys cleanup 2018-07-02 20:58:22 -04:00
rigelrozanski 96f2d2983b Merge branch 'rigel/stake-spec-compliance' of https://github.com/cosmos/cosmos-sdk into rigel/stake-spec-compliance 2018-07-02 20:08:55 -04:00
Ethan Buchman aa243565ce fix appending over key 2018-07-02 20:09:57 -04:00
rigelrozanski 2355e5ae6e ... 2018-07-02 20:05:52 -04:00
rigelrozanski b3d6a59c61 ... 2018-07-02 18:58:52 -04:00
rigelrozanski ab4661f88b bug somewhere here 2018-07-02 18:16:47 -04:00
Ethan Buchman f78f30c67a update for tm v0.22.0. tmlibs->tendermint/libs 2018-07-02 16:34:06 -04:00
Rigel f1937bc0e7
Merge branch 'develop' into rigel/stake-spec-compliance 2018-07-02 12:06:20 -04:00
Dev Ojha 6a864923fa types: Rename rational.Evaluate to rational.Round (#1487)
* rational.Evaluate -> rational.RoundInt64
	* rational.EvaluateInt -> rational.RoundInt

This done to improve clarity of the code.

Closes #1485
2018-07-02 11:57:33 -04:00
Christopher Goes 3654579ea7
Merge PR #1278: Slashing v2
Implement semifinal Gaia slashing spec (#1263), less #1348, #1378, and #1440 which are TBD.
2018-06-30 05:34:55 +02:00
Dev Ojha 955a0c9af7 Switch asserts to require (#1483)
* meta: Switch the majority of asserts to require

Switch most assert statements to require, to ease debugging.
Closes #1418

* Fix imports
2018-06-30 03:10:15 +02:00
Dev Ojha 097dd8a164 tools: Add unparam linter (#1443)
* tools: Add unparam linter

unparam detects unused parameters in functions, and a parameter to
a function which only ever takes on one value. The latter is an
indication that more tests are required.

There are many nolints in this PR, as I believe that writing tests
to fix alot of these situations is out of scope for this PR / it
will be changed in future commits. There are some nolints for
when we have to comply to normal api's.

* crypto/keys no longer used by x/gov/client/rest/rest.go
2018-06-29 18:22:24 -04:00
Dev Ojha 94a3ce4c83 docs: Explain the expected return type within the store (#1452) 2018-06-29 13:45:11 -04:00
Christopher Goes 59aadf42aa
Ledger integration (#931)
Merges the keybase and Ledger code from go-crypto (which is no more) into the SDK
Adds support for Ledger into gaiacli
Cherry-picks updated error handling from #1158
2018-06-29 02:54:47 +02:00
Dev Ojha ac3adff1e8 Merge PR #1438: Tools: Add errcheck linter
This linter ensures that all errors are checked.
This is disabled in the client directories, since its not needed on
those writes
2018-06-29 00:52:10 +02:00
Dev Ojha 3e14868bd6 Merge PR #1429: tools: Add ineffassign linter
* tools: Add ineffassign linter

This errors on assignments that don't actually do anything. i.e.

x, err := myFunc(1)
y, err = myFunc(2)

This will call out that the first function's call error was never
used.

* Fix makefile, add misspell to makefile
2018-06-28 19:12:02 +02:00
Rigel 6f140d7296 Merge PR #1119: Unbonding, Redelegation
* stake/fees spec updates
* staking overview.md revisions, moving files
* docs reorganization
* staking spec state revisions
* transaction stake updates
* complete staking spec update
* WIP adding unbonding/redelegation commands
* added msg types for unbonding, redelegation
* stake sub-package reorg
* working stake reorg
* modify lcd tests to not use hardcoded json strings
* add description update
* index keys
* key managment for unbonding redelegation complete
* update stake errors
* completed handleMsgCompleteUnbonding fn
* updated to use begin/complete unbonding/redelegation
* fix token shares bug
* develop docs into unbonding
* got non-tests compiling after merge develop
* working fixing tests
* PrivlegedKeeper -> PrivilegedKeeper
* tests compile
* fix some tests
* fixing tests
* remove PrivilegedKeeper
* get unbonding bug
* only rpc sig verification failed tests now
* move percent unbonding/redelegation to the CLI and out of handler logic
* remove min unbonding height
* add lcd txs
* add pool sanity checks, fix a buncha tests
* fix ante. set lcd log to debug (#1322)
* redelegation tests, adding query functionality for bonds
* add self-delegations at genesis ref #1165
* PR comments (mostly) addressed
* cleanup, added Query LCD functionality
* test cleanup/fixes
* fix governance test
* SlashValidatorSet -> ValidatorSet
* changelog
* stake lcd fix
* x/auth: fix chainID in ante
* fix lcd test
* fix lint, update lint make command for spelling
* lowercase error string
* don't expose coinkeeper in staking
* remove a few duplicate lines in changelog
* chain_id in stake lcd tests
* added transient redelegation
* 'transient' => 'transitive'
* Re-add nolint instruction
* Fix tiny linter error
2018-06-27 04:00:12 +02:00