From 5b2a5c948ce6142ec2262886aafdc2a6a982cc54 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Thu, 24 May 2018 18:00:59 -0400 Subject: [PATCH 01/31] update to tm v0.19.6 --- CHANGELOG.md | 6 ++++++ Gopkg.lock | 20 ++++++++++---------- Gopkg.toml | 4 ++-- version/version.go | 4 ++-- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b0853dc0c..1075450e20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.17.3 + +*May 29, 2018* + +Update to Tendermint v0.19.6 (fix fast-sync halt) + ## 0.17.2 *May 20, 2018* diff --git a/Gopkg.lock b/Gopkg.lock index 37a32820c2..3216a0f79e 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -11,7 +11,7 @@ branch = "master" name = "github.com/btcsuite/btcd" packages = ["btcec"] - revision = "1432d294a5b055c297457c25434efbf13384cc46" + revision = "bc0944904505aab55e089371a892be2f87883161" [[projects]] name = "github.com/davecgh/go-spew" @@ -250,7 +250,7 @@ "leveldb/table", "leveldb/util" ] - revision = "e6d6b529196422703d54ff5c40e79809ec2020b3" + revision = "5d6fca44a948d2be89a9702de7717f0168403d3d" [[projects]] name = "github.com/tendermint/abci" @@ -341,8 +341,8 @@ "types/priv_validator", "version" ] - revision = "018e096748bafe1d2d1e69b909e4158f3b26f6b2" - version = "v0.19.5-rc1" + revision = "fd6021876b017cbf45cdf6dd55a0d6cdf431e826" + version = "v0.19.6-rc2" [[projects]] name = "github.com/tendermint/tmlibs" @@ -359,8 +359,8 @@ "pubsub", "pubsub/query" ] - revision = "cc5f287c4798ffe88c04d02df219ecb6932080fd" - version = "v0.8.3-rc0" + revision = "d970af87248a4e162590300dbb74e102183a417d" + version = "v0.8.3" [[projects]] branch = "master" @@ -376,7 +376,7 @@ "ripemd160", "salsa20/salsa" ] - revision = "1a580b3eff7814fc9b40602fd35256c63b50f491" + revision = "ab813273cd59e1333f7ae7bff5d027d4aadf528c" [[projects]] branch = "master" @@ -390,13 +390,13 @@ "internal/timeseries", "trace" ] - revision = "57065200b4b034a1c8ad54ff77069408c2218ae6" + revision = "dfa909b99c79129e1100513e5cd36307665e5723" [[projects]] branch = "master" name = "golang.org/x/sys" packages = ["unix"] - revision = "7c87d13f8e835d2fb3a70a2912c811ed0c1d241b" + revision = "c11f84a56e43e20a78cee75a7c034031ecf57d1f" [[projects]] name = "golang.org/x/text" @@ -457,6 +457,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "7540d2ecdb5d7d5084ab4e6132e929bbd501bd6add3006d8f08a6b2c127e0c7d" + inputs-digest = "2e868c5ad771cb647fd85a357375c559287602e886b7a040ddde0fac7f4f3365" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 5480bc03fc..3a7ee9cfc9 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -66,7 +66,7 @@ [[constraint]] name = "github.com/tendermint/go-amino" - version = "~0.9.9" + version = "=0.9.9" [[constraint]] name = "github.com/tendermint/iavl" @@ -74,7 +74,7 @@ [[constraint]] name = "github.com/tendermint/tendermint" - version = "0.19.5-rc1" + version = "0.19.6-rc2" [[override]] name = "github.com/tendermint/tmlibs" diff --git a/version/version.go b/version/version.go index ea365bda9e..ae9433bcd0 100644 --- a/version/version.go +++ b/version/version.go @@ -7,9 +7,9 @@ package version const Maj = "0" const Min = "17" -const Fix = "2" +const Fix = "3" -const Version = "0.17.2" +const Version = "0.17.3" // GitCommit set by build flags var GitCommit = "" From 36b3e530abb706c85f5373116d80850972c58324 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Thu, 31 May 2018 09:31:42 -0400 Subject: [PATCH 02/31] update tm to 0.17.4 --- CHANGELOG.md | 6 ++++++ Gopkg.lock | 17 +++++++++-------- Gopkg.toml | 2 +- version/version.go | 4 ++-- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1075450e20..271be8fb9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.17.4 + +*May 31, 2018* + +Update to Tendermint v0.19.7 (WAL fixes and more) + ## 0.17.3 *May 29, 2018* diff --git a/Gopkg.lock b/Gopkg.lock index 3216a0f79e..3873b91550 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -11,7 +11,7 @@ branch = "master" name = "github.com/btcsuite/btcd" packages = ["btcec"] - revision = "bc0944904505aab55e089371a892be2f87883161" + revision = "86fed781132ac890ee03e906e4ecd5d6fa180c64" [[projects]] name = "github.com/davecgh/go-spew" @@ -313,6 +313,9 @@ "consensus", "consensus/types", "evidence", + "libs/events", + "libs/pubsub", + "libs/pubsub/query", "lite", "lite/client", "lite/errors", @@ -341,8 +344,8 @@ "types/priv_validator", "version" ] - revision = "fd6021876b017cbf45cdf6dd55a0d6cdf431e826" - version = "v0.19.6-rc2" + revision = "a017f2fdd41496a81e04a2216630a405189da6e2" + version = "v0.19.7-rc0" [[projects]] name = "github.com/tendermint/tmlibs" @@ -355,9 +358,7 @@ "db", "flowrate", "log", - "merkle", - "pubsub", - "pubsub/query" + "merkle" ] revision = "d970af87248a4e162590300dbb74e102183a417d" version = "v0.8.3" @@ -390,7 +391,7 @@ "internal/timeseries", "trace" ] - revision = "dfa909b99c79129e1100513e5cd36307665e5723" + revision = "1e491301e022f8f977054da4c2d852decd59571f" [[projects]] branch = "master" @@ -457,6 +458,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "2e868c5ad771cb647fd85a357375c559287602e886b7a040ddde0fac7f4f3365" + inputs-digest = "a3a75136fb6921c4c4d413e4c8366f203b77367762763c97b8669ea854fbd62d" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 3a7ee9cfc9..b8838920a5 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -74,7 +74,7 @@ [[constraint]] name = "github.com/tendermint/tendermint" - version = "0.19.6-rc2" + version = "0.19.7-rc0" [[override]] name = "github.com/tendermint/tmlibs" diff --git a/version/version.go b/version/version.go index ae9433bcd0..0871aee005 100644 --- a/version/version.go +++ b/version/version.go @@ -7,9 +7,9 @@ package version const Maj = "0" const Min = "17" -const Fix = "3" +const Fix = "4" -const Version = "0.17.3" +const Version = "0.17.4" // GitCommit set by build flags var GitCommit = "" From f3f2729b117677977ce6740813d0d737e238d848 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 5 Jun 2018 18:04:16 -0700 Subject: [PATCH 03/31] update for tm v0.19.9 --- CHANGELOG.md | 7 +++++++ Gopkg.lock | 18 +++++++++--------- Gopkg.toml | 4 ++-- client/lcd/lcd_test.go | 2 +- server/init.go | 2 +- server/start.go | 2 +- server/tm_cmds.go | 2 +- version/version.go | 4 ++-- 8 files changed, 24 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 271be8fb9f..c017ca91ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 0.17.5 + +*June 5, 2018* + +Update to Tendermint v0.19.9 (Fix evidence reactor, mempool deadlock, WAL panic, +memory leak) + ## 0.17.4 *May 31, 2018* diff --git a/Gopkg.lock b/Gopkg.lock index 3873b91550..a084270421 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -164,8 +164,8 @@ [[projects]] name = "github.com/pelletier/go-toml" packages = ["."] - revision = "acdc4509485b587f5e675510c4f2c63e90ff68a8" - version = "v1.1.0" + revision = "c01d1270ff3e442a8a57cddc1c92dc1138598194" + version = "v1.2.0" [[projects]] name = "github.com/pkg/errors" @@ -327,6 +327,7 @@ "p2p/conn", "p2p/pex", "p2p/upnp", + "privval", "proxy", "rpc/client", "rpc/core", @@ -341,11 +342,10 @@ "state/txindex/kv", "state/txindex/null", "types", - "types/priv_validator", "version" ] - revision = "a017f2fdd41496a81e04a2216630a405189da6e2" - version = "v0.19.7-rc0" + revision = "775fef31c2b8fb7ea36f0d57bae3bfa74d353100" + version = "v0.19.9-rc0" [[projects]] name = "github.com/tendermint/tmlibs" @@ -360,8 +360,8 @@ "log", "merkle" ] - revision = "d970af87248a4e162590300dbb74e102183a417d" - version = "v0.8.3" + revision = "692f1d86a6e2c0efa698fd1e4541b68c74ffaf38" + version = "v0.8.4" [[projects]] branch = "master" @@ -377,7 +377,7 @@ "ripemd160", "salsa20/salsa" ] - revision = "ab813273cd59e1333f7ae7bff5d027d4aadf528c" + revision = "78e79280f680f7dd6b8e48c751887111ebdbcbd8" [[projects]] branch = "master" @@ -458,6 +458,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "a3a75136fb6921c4c4d413e4c8366f203b77367762763c97b8669ea854fbd62d" + inputs-digest = "71d11bd2a8f3f46ba3fd16759b501ad5b6b48037717d82020ebb25e021b67117" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index b8838920a5..c25623bba8 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -74,11 +74,11 @@ [[constraint]] name = "github.com/tendermint/tendermint" - version = "0.19.7-rc0" + version = "0.19.9-rc0" [[override]] name = "github.com/tendermint/tmlibs" - version = "~0.8.3-rc0" + version = "~0.8.4" # this got updated and broke, so locked to an old working commit ... [[override]] diff --git a/client/lcd/lcd_test.go b/client/lcd/lcd_test.go index 66a8a4085f..73f5ad2c55 100644 --- a/client/lcd/lcd_test.go +++ b/client/lcd/lcd_test.go @@ -24,7 +24,7 @@ import ( ctypes "github.com/tendermint/tendermint/rpc/core/types" tmrpc "github.com/tendermint/tendermint/rpc/lib/server" tmtypes "github.com/tendermint/tendermint/types" - pvm "github.com/tendermint/tendermint/types/priv_validator" + pvm "github.com/tendermint/tendermint/privval" "github.com/tendermint/tmlibs/cli" dbm "github.com/tendermint/tmlibs/db" "github.com/tendermint/tmlibs/log" diff --git a/server/init.go b/server/init.go index 68a1709bc8..512751bed0 100644 --- a/server/init.go +++ b/server/init.go @@ -20,7 +20,7 @@ import ( cfg "github.com/tendermint/tendermint/config" "github.com/tendermint/tendermint/p2p" tmtypes "github.com/tendermint/tendermint/types" - pvm "github.com/tendermint/tendermint/types/priv_validator" + pvm "github.com/tendermint/tendermint/privval" tmcli "github.com/tendermint/tmlibs/cli" cmn "github.com/tendermint/tmlibs/common" dbm "github.com/tendermint/tmlibs/db" diff --git a/server/start.go b/server/start.go index 23e38749be..9bf2d30cdb 100644 --- a/server/start.go +++ b/server/start.go @@ -10,7 +10,7 @@ import ( tcmd "github.com/tendermint/tendermint/cmd/tendermint/commands" "github.com/tendermint/tendermint/node" "github.com/tendermint/tendermint/proxy" - pvm "github.com/tendermint/tendermint/types/priv_validator" + pvm "github.com/tendermint/tendermint/privval" cmn "github.com/tendermint/tmlibs/common" ) diff --git a/server/tm_cmds.go b/server/tm_cmds.go index d581ca5f76..4d8edacabb 100644 --- a/server/tm_cmds.go +++ b/server/tm_cmds.go @@ -11,7 +11,7 @@ import ( tcmd "github.com/tendermint/tendermint/cmd/tendermint/commands" "github.com/tendermint/tendermint/p2p" - pvm "github.com/tendermint/tendermint/types/priv_validator" + pvm "github.com/tendermint/tendermint/privval" ) // ShowNodeIDCmd - ported from Tendermint, dump node ID to stdout diff --git a/version/version.go b/version/version.go index 0871aee005..be9f7858b0 100644 --- a/version/version.go +++ b/version/version.go @@ -7,9 +7,9 @@ package version const Maj = "0" const Min = "17" -const Fix = "4" +const Fix = "5" -const Version = "0.17.4" +const Version = "0.17.5" // GitCommit set by build flags var GitCommit = "" From 5ddcf23aca71a2adb13051c900b3dd6c65559b26 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 8 Jun 2018 21:34:26 -0700 Subject: [PATCH 04/31] update godep --- Gopkg.lock | 38 +++++++++----------------------------- Gopkg.toml | 6 +----- 2 files changed, 10 insertions(+), 34 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 0e62793003..612e8e3b32 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -256,7 +256,7 @@ "leveldb/table", "leveldb/util" ] - revision = "5d6fca44a948d2be89a9702de7717f0168403d3d" + revision = "e2150783cd35f5b607daca48afd8c57ec54cc995" [[projects]] name = "github.com/tendermint/abci" @@ -267,8 +267,8 @@ "server", "types" ] - revision = "9af8b7a7c87478869f8c280ed9539470b8f470b4" - version = "v0.11.0-rc4" + revision = "ebee2fe114020aa49c70bbbae50b7079fc7e7b90" + version = "v0.11.0" [[projects]] branch = "master" @@ -347,13 +347,8 @@ "types", "version" ] -<<<<<<< HEAD - revision = "b5baab0238c9ec26e3b2d229b0243f9ff9220bdb" - version = "v0.20.0-rc3" -======= - revision = "775fef31c2b8fb7ea36f0d57bae3bfa74d353100" - version = "v0.19.9-rc0" ->>>>>>> master + revision = "27bd1deabe4ba6a2d9b463b8f3e3f1e31b993e61" + version = "v0.20.0" [[projects]] branch = "develop" @@ -368,17 +363,10 @@ "db", "flowrate", "log", -<<<<<<< HEAD "merkle", "merkle/tmhash" ] - revision = "44f1bdb0d55cc6527e38d0a7aab406e2580f56a4" -======= - "merkle" - ] - revision = "692f1d86a6e2c0efa698fd1e4541b68c74ffaf38" - version = "v0.8.4" ->>>>>>> master + revision = "640af0205d98d1f45fb2f912f9c35c8bf816adc9" [[projects]] branch = "master" @@ -394,11 +382,7 @@ "ripemd160", "salsa20/salsa" ] -<<<<<<< HEAD - revision = "5ba7f63082460102a45837dbd1827e10f9479ac0" -======= - revision = "78e79280f680f7dd6b8e48c751887111ebdbcbd8" ->>>>>>> master + revision = "8ac0e0d97ce45cd83d1d7243c060cb8461dda5e9" [[projects]] branch = "master" @@ -418,7 +402,7 @@ branch = "master" name = "golang.org/x/sys" packages = ["unix"] - revision = "c11f84a56e43e20a78cee75a7c034031ecf57d1f" + revision = "9527bec2660bd847c050fda93a0f0c6dee0800bb" [[projects]] name = "golang.org/x/text" @@ -479,10 +463,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 -<<<<<<< HEAD - inputs-digest = "ccb2ab7644a38c2d0326280582f758256e37fc98c3ef0403581e3b85cff42188" -======= - inputs-digest = "71d11bd2a8f3f46ba3fd16759b501ad5b6b48037717d82020ebb25e021b67117" ->>>>>>> master + inputs-digest = "31f69b235b2d8f879a215c9e8ca0919adc62d21f6830b17931a3a0efb058721f" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 141371304a..77de1b78de 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -54,7 +54,7 @@ [[constraint]] name = "github.com/tendermint/abci" - version = "=0.11.0-rc4" + version = "=0.11.0" [[constraint]] name = "github.com/tendermint/go-crypto" @@ -76,10 +76,6 @@ name = "github.com/tendermint/tmlibs" branch = "develop" -[[override]] - name = "github.com/tendermint/tmlibs" - version = "~0.8.4" - # this got updated and broke, so locked to an old working commit ... [[override]] name = "google.golang.org/genproto" From aaaa0e16a294269ea4c9799443c39a0627715432 Mon Sep 17 00:00:00 2001 From: Dev Ojha Date: Fri, 8 Jun 2018 23:40:22 -0700 Subject: [PATCH 05/31] Merge PR #1195: gaiacli - Add error message for when account isn't found --- CHANGELOG.md | 14 +++++++++++++- x/auth/client/cli/account.go | 6 ++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0ed96190a..f8629ea1aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +BREAKING CHANGES +* msg.GetSignBytes() now returns bech32-encoded addresses in all cases + +FEATURES + +IMPROVEMENTS +* export command now writes current validator set for Tendermint +* [tests] Application module tests now use a mock application + +FIXES +* [lcd] Switch to bech32 for addresses on all human readable inputs and outputs + ## 0.18.0 _2018-06-05_ @@ -65,7 +77,7 @@ BUG FIXES * query sequence via account store * fixed duplicate pub_key in stake.Validator * Auto-sequencing now works correctly - +* [gaiacli] Fix error message when account isn't found when running gaiacli account ## 0.17.5 diff --git a/x/auth/client/cli/account.go b/x/auth/client/cli/account.go index b5af6a686a..e82b074148 100644 --- a/x/auth/client/cli/account.go +++ b/x/auth/client/cli/account.go @@ -52,6 +52,12 @@ func GetAccountCmd(storeName string, cdc *wire.Codec, decoder auth.AccountDecode return err } + // Check if account was found + if res == nil { + return sdk.ErrUnknownAddress("No account with address " + addr + + " was found in the state.\nAre you sure there has been a transaction involving it?") + } + // decode the value account, err := decoder(res) if err != nil { From d84296ed3731304e579ef339826740cc534a83f3 Mon Sep 17 00:00:00 2001 From: rigelrozanski Date: Sat, 9 Jun 2018 01:04:40 -0700 Subject: [PATCH 06/31] lawl viper --- client/flags.go | 1 + 1 file changed, 1 insertion(+) diff --git a/client/flags.go b/client/flags.go index ceaf5a3a9d..0b907604a2 100644 --- a/client/flags.go +++ b/client/flags.go @@ -37,6 +37,7 @@ func PostCommands(cmds ...*cobra.Command) []*cobra.Command { c.Flags().String(FlagFee, "", "Fee to pay along with transaction") c.Flags().String(FlagChainID, "", "Chain ID of tendermint node") c.Flags().String(FlagNode, "tcp://localhost:46657", ": to tendermint rpc interface for this chain") + c.Flags().Int64(FlagGas, 200000, "gas limit to set per-transaction") } return cmds } From c6796b8fba067ae1b1ff4dc3f6a7c5614e2de947 Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Sat, 9 Jun 2018 06:44:08 +0200 Subject: [PATCH 07/31] Add --gas flag to specify gas limit for a transaction --- CHANGELOG.md | 1 + client/context/helpers.go | 2 +- client/context/types.go | 7 +++++++ client/context/viper.go | 1 + client/flags.go | 2 ++ client/lcd/lcd_test.go | 3 ++- 6 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f8629ea1aa..5c3190842d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ IMPROVEMENTS FIXES * [lcd] Switch to bech32 for addresses on all human readable inputs and outputs +* [cli] Added `--gas` flag to specify transaction gas limit ## 0.18.0 diff --git a/client/context/helpers.go b/client/context/helpers.go index f47cc7ff41..880c4adb37 100644 --- a/client/context/helpers.go +++ b/client/context/helpers.go @@ -114,7 +114,7 @@ func (ctx CoreContext) SignAndBuild(name, passphrase string, msg sdk.Msg, cdc *w ChainID: chainID, Sequences: []int64{sequence}, Msg: msg, - Fee: auth.NewStdFee(10000, sdk.Coin{}), // TODO run simulate to estimate gas? + Fee: auth.NewStdFee(ctx.Gas, sdk.Coin{}), // TODO run simulate to estimate gas? } keybase, err := keys.GetKeyBase() diff --git a/client/context/types.go b/client/context/types.go index da15b32936..e9c97ffbc7 100644 --- a/client/context/types.go +++ b/client/context/types.go @@ -10,6 +10,7 @@ import ( type CoreContext struct { ChainID string Height int64 + Gas int64 TrustNode bool NodeURI string FromAddressName string @@ -31,6 +32,12 @@ func (c CoreContext) WithHeight(height int64) CoreContext { return c } +// WithGas - return a copy of the context with an updated gas +func (c CoreContext) WithGas(gas int64) CoreContext { + c.Gas = gas + return c +} + // WithTrustNode - return a copy of the context with an updated TrustNode flag func (c CoreContext) WithTrustNode(trustNode bool) CoreContext { c.TrustNode = trustNode diff --git a/client/context/viper.go b/client/context/viper.go index 4b3007f12a..081c9f5c28 100644 --- a/client/context/viper.go +++ b/client/context/viper.go @@ -30,6 +30,7 @@ func NewCoreContextFromViper() CoreContext { return CoreContext{ ChainID: chainID, Height: viper.GetInt64(client.FlagHeight), + Gas: viper.GetInt64(client.FlagGas), TrustNode: viper.GetBool(client.FlagTrustNode), FromAddressName: viper.GetString(client.FlagName), NodeURI: nodeURI, diff --git a/client/flags.go b/client/flags.go index 0b907604a2..f4ee4279b4 100644 --- a/client/flags.go +++ b/client/flags.go @@ -7,6 +7,7 @@ const ( FlagChainID = "chain-id" FlagNode = "node" FlagHeight = "height" + FlagGas = "gas" FlagTrustNode = "trust-node" FlagName = "name" FlagSequence = "sequence" @@ -25,6 +26,7 @@ func GetCommands(cmds ...*cobra.Command) []*cobra.Command { c.Flags().String(FlagChainID, "", "Chain ID of tendermint node") c.Flags().String(FlagNode, "tcp://localhost:46657", ": to tendermint rpc interface for this chain") c.Flags().Int64(FlagHeight, 0, "block height to query, omit to get most recent provable block") + c.Flags().Int64(FlagGas, 200000, "gas limit to set per-transaction") } return cmds } diff --git a/client/lcd/lcd_test.go b/client/lcd/lcd_test.go index 19eff52c4c..1b1257f34c 100644 --- a/client/lcd/lcd_test.go +++ b/client/lcd/lcd_test.go @@ -22,11 +22,11 @@ import ( tmcfg "github.com/tendermint/tendermint/config" nm "github.com/tendermint/tendermint/node" p2p "github.com/tendermint/tendermint/p2p" + pvm "github.com/tendermint/tendermint/privval" "github.com/tendermint/tendermint/proxy" ctypes "github.com/tendermint/tendermint/rpc/core/types" tmrpc "github.com/tendermint/tendermint/rpc/lib/server" tmtypes "github.com/tendermint/tendermint/types" - pvm "github.com/tendermint/tendermint/privval" "github.com/tendermint/tmlibs/cli" dbm "github.com/tendermint/tmlibs/db" "github.com/tendermint/tmlibs/log" @@ -385,6 +385,7 @@ func startTMAndLCD() (*nm.Node, net.Listener, error) { return nil, nil, err } viper.Set(cli.HomeFlag, dir) + viper.Set(client.FlagGas, 200000) kb, err := keys.GetKeyBase() // dbm.NewMemDB()) // :( if err != nil { return nil, nil, err From cb6534a8f89ad227c9d73b5edc6ecdbb26aa8fed Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 9 Jun 2018 09:32:59 -0700 Subject: [PATCH 08/31] version and changelog --- CHANGELOG.md | 2 +- version/version.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c3190842d..e2c7a09c4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ FIXES ## 0.18.0 -_2018-06-05_ +*June 9, 2018* BREAKING CHANGES diff --git a/version/version.go b/version/version.go index 116f1ff287..20074c7bcd 100644 --- a/version/version.go +++ b/version/version.go @@ -9,7 +9,7 @@ const Maj = "0" const Min = "18" const Fix = "0" -const Version = "0.18.0-dev" +const Version = "0.18.0" // GitCommit set by build flags var GitCommit = "" From e699e251f5ee1680a9d4246d1c57bc94b15dd75a Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sun, 10 Jun 2018 10:41:37 -0700 Subject: [PATCH 09/31] add cmd/gaia/testnets folder to deprecate cosmos/testnets repo --- cmd/gaia/testnets/README.md | 296 +++++ cmd/gaia/testnets/STATUS.md | 38 + cmd/gaia/testnets/gaia-5001/adrian.json | 20 + cmd/gaia/testnets/gaia-5001/anton.json | 20 + cmd/gaia/testnets/gaia-5001/aurel.json | 20 + cmd/gaia/testnets/gaia-5001/bucky.json | 20 + cmd/gaia/testnets/gaia-5001/cwgoes.json | 20 + cmd/gaia/testnets/gaia-5001/iris.json | 20 + cmd/gaia/testnets/gaia-5001/lino.json | 20 + cmd/gaia/testnets/gaia-5001/pbostrom.json | 20 + cmd/gaia/testnets/gaia-5001/poldsam.json | 20 + cmd/gaia/testnets/gaia-5001/staked.json | 20 + cmd/gaia/testnets/gaia-5001/zach.json | 20 + cmd/gaia/testnets/gaia-5001/zaki.json | 20 + cmd/gaia/testnets/gaia-6000/genesis.json | 1459 +++++++++++++++++++++ cmd/gaia/testnets/gaia-6001/genesis.json | 1459 +++++++++++++++++++++ 16 files changed, 3492 insertions(+) create mode 100644 cmd/gaia/testnets/README.md create mode 100644 cmd/gaia/testnets/STATUS.md create mode 100644 cmd/gaia/testnets/gaia-5001/adrian.json create mode 100644 cmd/gaia/testnets/gaia-5001/anton.json create mode 100644 cmd/gaia/testnets/gaia-5001/aurel.json create mode 100644 cmd/gaia/testnets/gaia-5001/bucky.json create mode 100644 cmd/gaia/testnets/gaia-5001/cwgoes.json create mode 100644 cmd/gaia/testnets/gaia-5001/iris.json create mode 100644 cmd/gaia/testnets/gaia-5001/lino.json create mode 100644 cmd/gaia/testnets/gaia-5001/pbostrom.json create mode 100644 cmd/gaia/testnets/gaia-5001/poldsam.json create mode 100644 cmd/gaia/testnets/gaia-5001/staked.json create mode 100644 cmd/gaia/testnets/gaia-5001/zach.json create mode 100644 cmd/gaia/testnets/gaia-5001/zaki.json create mode 100644 cmd/gaia/testnets/gaia-6000/genesis.json create mode 100644 cmd/gaia/testnets/gaia-6001/genesis.json diff --git a/cmd/gaia/testnets/README.md b/cmd/gaia/testnets/README.md new file mode 100644 index 0000000000..e5c6522796 --- /dev/null +++ b/cmd/gaia/testnets/README.md @@ -0,0 +1,296 @@ +# Connect to a Testnet + +This document explains how to connect to the Testnet of a [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk/) based blockchain. It can be used to connect to the latest Testnet for the Cosmos Hub. + +## Software Setup (Manual Installation) + +Follow these instructions to install the Cosmos-SDK and connect to the latest Testnet. This instructions work for both a local machine and a VM in a cloud server. + +If you want to run a non-validator full-node, installing the SDK on a Cloud server is a good option. However, if you are want to become a validator for the Hub's `mainnet` you should look at more complex setups, including [Sentry Node Architecture](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#how-can-validators-protect-themselves-from-denial-of-service-attacks), to protect your node from DDOS and ensure high-availability (see the [technical requirements](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#technical-requirements)). You can find more information on validators in our [website](https://cosmos.network/validators), in the [Validator FAQ](https://cosmos.network/resources/validator-faq) and in the [Validator Chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org). + +### Install [Go](https://golang.org/) + +Install `go` following the [instructions](https://golang.org/doc/install) in the official golang website. +You will require **Go 1.10+** for this tutorial. + +#### Set GOPATH + +First, you will need to set up your `GOPATH`. Make sure that the location `$HOME` is something like `/Users/`, you can corroborate it by typing `echo $HOME` in your terminal. + +Go to `$HOME` with the command `cd $HOME` and open the the hidden file `.bashrc` with a code editor and paste the following lines \(or `.bash_profile` if your're using OS X\). + +``` +export GOPATH=$HOME/go +export PATH=$PATH:$GOROOT/bin:$GOPATH/bin +``` + +Save and restart the terminal. + +_Note_: If you can't see the hidden file, use the shortcut `Command + Shift + .` in Finder. + + +### Install [GNU Wget](https://www.gnu.org/software/wget/) + +**MacOS** + +``` +brew install wget +``` + +**Linux** + +``` +sudo apt-get install wget +``` + +Note: You can check other available options for downloading `wget` [here](https://www.gnu.org/software/wget/faq.html#download). + +### Install Gaia + +Now we can fetch the correct versions of each dependency by running: + +``` +mkdir -p $GOPATH/src/github.com/cosmos/cosmos-sdk +git clone https://github.com/cosmos/cosmos-sdk.git +git checkout v0.18.0-rc0 +make get_tools // run $ make update_tools if already installed +make get_vendor_deps +make install +``` + +This will install the `gaiad` and `gaiacli` binaries. Verify that everything is OK by running: + +``` +gaiad version +``` + +You should see: + +``` +0.18.0-dev-af15f89 +``` + +And also: + +``` +gaiacli version +``` + +You should see: + +``` +0.18.0-dev-af15f89 +``` + +## Full Node Setup + +Clone the testnet repo. + +``` +git clone https://github.com/cosmos/testnets + +mkdir -p $HOME/.gaiad/config +cp -a testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json +gaiad unsafe_reset_all +``` + +Add a seed node by changing `seed = ""` in `config.toml` to `seed = "80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656"`. + +Lastly change the `moniker` string in the`config.toml`to identify your node. + +``` +# A custom human readable name for this node +moniker = "" +``` + +## Upgrading from a previous network + +These instructions are for anyone that ran a previous network and would like to upgrade to a newer version. + +Remove the ephemeral files and reset the data. +``` +rm $HOME/.gaiad/config/addrbook.json $HOME/.gaiad/config/genesis.json +gaiad unsafe_reset_all +``` + +Now your node is in a prestine state without changing your validator key. If you had any +sentry nodes or full nodes setup correctly previously they should work. + +**Make sure that every node has a unique `priv_validator.json`. Do not copy the `priv_validator.json` from an old node to multiple new nodes. Running two nodes with the same `priv_validator.json` will cause you to double sign.**\ + + +Now it is time to upgrade the software. +``` +cd $GOPATH/src/github.com/cosmos/cosmos-sdk +git fetch --all +git checkout v0.18.0-rc0 +make update_tools +make get_vendor_deps +make install +``` + +The next step is to obtain the new genesis file from `https://github.com/cosmos/testnets`. +``` +cd $HOME/testnets +git pull origin master + +cp -a gaia-6001/genesis.json $HOME/.gaiad/config +``` + +The last step is the adjust the `config.toml`. Make sure that you are connected to healthy peers or seed nodes. +These are some seeds nodes and they can be put into the config under the `seeds` key. Alternatively you can also +ask user validators directly for a persistent peer and add it under the `persisent_peers` key. +``` +80a35a46ce09cfb31ee220c8141a25e73e0b239b@cosmos.cryptium.ch:46656 +``` + +## Run a Full Node + +Start the full node: + +``` +gaiad start +``` + +Check the everything is running smoothly: + +``` +gaiacli status +``` + +## Generate keys + +You'll need a private and public key pair \(a.k.a. `sk, pk` respectively\) to be able to receive funds, send txs, bond tx, etc. + +To generate your a new key \(default _ed25519_ elliptic curve\): + +``` +gaiacli keys add +``` + +Next, you will have to enter a passphrase for your key twice. Save the _seed_ _phrase_ in a safe place in case you forget the password. + +Now if you check your private keys you will see the `` key among them: + +``` +gaiacli keys show +``` + +You can see all your other available keys by typing: + +``` +gaiacli keys list +``` + +The validator pubkey from your node should be the same as the one printed with the command: + +``` +gaiad tendermint show_validator +``` + +Finally, save your address and pubkey into a variable to use them afterwards. + +``` +MYADDR= +MYPUBKEY= +``` + +**IMPORTANT:** We strongly recommend to **NOT** use the same passphrase for your different keys. The Tendermint team and the Interchain Foundation will not be responsible for the lost of funds. + +### Get coins + +The best way to get coins at the moment is to ask in Riot chat. We plan to have a reliable faucet in future testnets. + +## Send tokens + +``` +gaiacli send --amount=1000fermion --chain-id= --sequence=0 --name= --to= +``` + +The `--amount` flag defines the corresponding amount of the coin in the format `--amount=` + +The `--sequence` flag corresponds to the sequence number to sign the tx. + +Now check the destination account and your own account to check the updated balances \(by default the latest block\): + +``` +gaiacli account +gaiacli account +``` + +You can also check your balance at a given block by using the `--block` flag: + +``` +gaiacli account --block= +``` + +## Run a Validator Node + +[Validators](https://cosmos.network/validators) are actors from the network that are responsible from committing new blocks to the blockchain by submitting their votes. In terms of security, validators' stake is slashed in all the zones they belong if they become unavailable, double sign a transaction, or don't cast their votes. We strongly recommend entities intending to run validators in the Cosmos Hub's `mainnet` to check the [technical requirements](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#technical-requirements) and take the necessary precautions to ensure high-availability, such as setting a Sentry Node architecture. If you have any question about validators, read the [Validator FAQ](https://cosmos.network/resources/validator-faq) and join the [Validator Chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org). + +This section covers the instructions necessary to stake tokens to become a testnet validator candidate. + +Your `pubkey` can be used to create a new validator candidate by staking some tokens: + +You can find your node pubkey by running +``` +gaiad tendermint show_validator +``` + +and this returns your public key for the declare-candidate command + + +``` +gaiacli stake create-validator --amount=500steak --pubkey= --address-candidate= --moniker=satoshi --chain-id= --sequence=1 --name= +``` + +You can add more information of the validator candidate such as`--website`, `--keybase-sig `or additional `--details`. If you want to edit the candidate info: + +``` +gaiacli stake edit-validator --details="To the cosmos !" --website="https://cosmos.network" +``` + +Finally, you can check all the candidate information by typing: + +``` +gaiacli stake validator --address-candidate= --chain-id= +``` + +To check that the validator is active you can find it on the validator set list: + +``` +gaiacli advanced tendermint validator-set +``` + +**Note:** Remember that to be in the validator set you need to have more total power than the Xnd validator, where X is the assigned size for the validator set \(by default _`X = 100`_\). + +## Delegate your tokens + +You can delegate \(_i.e._ bind\) **Atoms** to a validator to become a [delegator](https://cosmos.network/resources/delegators) and obtain a part of its fee revenue in **Photons**. For more information about the Cosmos Token Model, refer to our [whitepaper](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). + +### Bond your tokens + +Bond your tokens to a validator candidate with the following command: + +``` +gaiacli stake delegate --amount=10steak --address-delegator= --address-candidate= --name= --chain-id= --sequence=2 +``` + +When tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain shares that represent their stake in this pool. + +### Unbond + +If for any reason the validator misbehaves or you just want to unbond a certain amount of the bonded tokens: + +``` +gaiacli stake unbond --address-delegator= --address-candidate= --shares=MAX --name= --chain-id= --sequence=3 +``` + +You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\). + +You should now see the unbonded tokens reflected in your balance and in your delegator bond: + +``` +gaiacli account +gaiacli stake delegation --address-delegator= --address-candidate= --chain-id= +``` diff --git a/cmd/gaia/testnets/STATUS.md b/cmd/gaia/testnets/STATUS.md new file mode 100644 index 0000000000..fb21ff9a44 --- /dev/null +++ b/cmd/gaia/testnets/STATUS.md @@ -0,0 +1,38 @@ +# TESTNET STATUS + +## *June 5, 2018, 21:00 EST* - New Release + +- Released gaia + [v0.17.5](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.17.5) + with update for Tendermint + [v0.19.9](https://github.com/tendermint/tendermint/releases/tag/v0.19.9) +- Fixes many bugs! + - evidence gossipping + - mempool deadlock + - WAL panic + - memory leak +- Please update to this to put a stop to the rampant invalid evidence gossiping + :) + +## *May 31, 2018, 14:00 EST* - New Release + +- Released gaia + [v0.17.4](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.17.4) with update for Tendermint v0.19.7 +- Fixes a WAL bug and some more +- Please update to this if you have trouble restarting a node + +## *May 31, 2018, 2:00 EST* - Testnet Halt + +- A validator equivocated last week and Evidence is being rampantly gossipped +- Peers that can't process the evidence (either too far behind or too far ahead) are disconnecting from the peers that + sent it, causing high peer turn-over +- The high peer turn-over may be causing a memory-leak, resulting in some nodes + crashing and the testnet halting +- We need to fix some issues in the EvidenceReactor to address this and also + investigate the possible memory-leak + +## *May 29, 2018* - New Release + +- Released v0.17.3 with update for Tendermint v0.19.6 +- Fixes fast-sync bug +- Please update to this to sync with the testnet diff --git a/cmd/gaia/testnets/gaia-5001/adrian.json b/cmd/gaia/testnets/gaia-5001/adrian.json new file mode 100644 index 0000000000..7ca99cb1e9 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/adrian.json @@ -0,0 +1,20 @@ +{ + "node_id": "1ebc5ca705b3ae1c06a0888ff1287ada82149dc3", + "ip": "138.68.77.24", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "power": 100, + "name": "adrian" + }, + "app_gen_tx": { + "name": "default", + "address": "D9C12CB5186FE0018179742FD3110EE534C63460", + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/anton.json b/cmd/gaia/testnets/gaia-5001/anton.json new file mode 100644 index 0000000000..701e858874 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/anton.json @@ -0,0 +1,20 @@ +{ + "node_id": "c272ae3cff7558db2c6195eea38fd43fd08406dc", + "ip": "206.189.31.178", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI=" + }, + "power": 100, + "name": "anton" + }, + "app_gen_tx": { + "name": "default", + "address": "E766088FD171906289617F60BF0014C46F0F85EC", + "pub_key": { + "type": "AC26791624DE60", + "value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/aurel.json b/cmd/gaia/testnets/gaia-5001/aurel.json new file mode 100644 index 0000000000..0c2ea81668 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/aurel.json @@ -0,0 +1,20 @@ +{ + "node_id": "aef085c4bfed0c1ffc6705f2e1e3bf85e5164600", + "ip": "45.77.53.208", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "power": 100, + "name": "aurel" + }, + "app_gen_tx": { + "name": "aurel", + "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/bucky.json b/cmd/gaia/testnets/gaia-5001/bucky.json new file mode 100644 index 0000000000..fc4bb51cde --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/bucky.json @@ -0,0 +1,20 @@ +{ + "node_id": "b0dd378c3fbc4c156cd6d302a799f0d2e4227201", + "ip": "159.89.121.174", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "power": 100, + "name": "bucky" + }, + "app_gen_tx": { + "name": "bucky", + "address": "935E48ED79F1006ED135553768E1D9A768747CF6", + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/cwgoes.json b/cmd/gaia/testnets/gaia-5001/cwgoes.json new file mode 100644 index 0000000000..dce7e20c9f --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/cwgoes.json @@ -0,0 +1,20 @@ +{ + "node_id": "e25603602d8cf8542570ad0e311d50f55f497f85", + "ip": "158.69.63.13", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "power": 100, + "name": "cwgoes" + }, + "app_gen_tx": { + "name": "cwgoes", + "address": "328FBB8EA315D070DF908982A5F91A3618001D20", + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/iris.json b/cmd/gaia/testnets/gaia-5001/iris.json new file mode 100644 index 0000000000..1a1019672c --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/iris.json @@ -0,0 +1,20 @@ +{ + "node_id": "aabf05a67b2f399807dc602d05bf97b0ed283ac2", + "ip": "116.62.62.39", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "power": 100, + "name": "iris" + }, + "app_gen_tx": { + "name": "=suyu", + "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + } + } +} \ No newline at end of file diff --git a/cmd/gaia/testnets/gaia-5001/lino.json b/cmd/gaia/testnets/gaia-5001/lino.json new file mode 100644 index 0000000000..5bc98bb6ed --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/lino.json @@ -0,0 +1,20 @@ +{ + "node_id": "79466a03e9d4b4648a7dd8cead1fa7121ce76ee3", + "ip": "34.235.130.1", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "power": 100, + "name": "lino" + }, + "app_gen_tx": { + "name": "lino", + "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/pbostrom.json b/cmd/gaia/testnets/gaia-5001/pbostrom.json new file mode 100644 index 0000000000..59cd469504 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/pbostrom.json @@ -0,0 +1,20 @@ +{ + "node_id": "adb290585a2753bf1a520c76802b0dab3dffa895", + "ip": "34.201.21.179", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "power": 100, + "name": "pbostrom" + }, + "app_gen_tx": { + "name": "default", + "address": "109720515B4F8C0858DA3521E448262334534FFD", + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/poldsam.json b/cmd/gaia/testnets/gaia-5001/poldsam.json new file mode 100644 index 0000000000..8149a92592 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/poldsam.json @@ -0,0 +1,20 @@ +{ + "node_id": "678503e6c8f50db7279c7da3cb9b072aac4bc0d5", + "ip": "35.193.188.125", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "power": 100, + "name": "polsdam" + }, + "app_gen_tx": { + "name": "poldsam", + "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/staked.json b/cmd/gaia/testnets/gaia-5001/staked.json new file mode 100644 index 0000000000..f39cced6b8 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/staked.json @@ -0,0 +1,20 @@ +{ + "node_id": "3519f05985394107e0b2e285361b7e012adb1113", + "ip": "54.209.118.64", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ=" + }, + "power": 100, + "name": "staked" + }, + "app_gen_tx": { + "name": "default", + "address": "935E04662697134905706A4CCDB822AC6FC11C2E", + "pub_key": { + "type": "AC26791624DE60", + "value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/zach.json b/cmd/gaia/testnets/gaia-5001/zach.json new file mode 100644 index 0000000000..76a08cc925 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/zach.json @@ -0,0 +1,20 @@ +{ + "node_id": "8a2802fb25d352f3e7e277559a4f683780c3ef22", + "ip": "167.99.191.184", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "power": 100, + "name": "" + }, + "app_gen_tx": { + "name": "zach", + "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/zaki.json b/cmd/gaia/testnets/gaia-5001/zaki.json new file mode 100644 index 0000000000..956f2bf8ce --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/zaki.json @@ -0,0 +1,20 @@ +{ + "node_id": "30b45459e4881680c0ef1750fde136fefa6c3b98", + "ip": "35.184.182.143", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "power": 100, + "name": "zaki" + }, + "app_gen_tx": { + "name": "zaki", + "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-6000/genesis.json b/cmd/gaia/testnets/gaia-6000/genesis.json new file mode 100644 index 0000000000..aefab92869 --- /dev/null +++ b/cmd/gaia/testnets/gaia-6000/genesis.json @@ -0,0 +1,1459 @@ +{ + "genesis_time": "2018-05-15T18:29:12.38288148Z", + "chain_id": "gaia-6000", + "consensus_params": { + "block_size_params": { + "max_bytes": 22020096, + "max_txs": 100000, + "max_gas": -1 + }, + "tx_size_params": { + "max_bytes": 10240, + "max_gas": -1 + }, + "block_gossip_params": { + "block_part_size_bytes": 65536 + }, + "evidence_params": { + "max_age": 100000 + } + }, + "validators": [ + { + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "power": 1000, + "name": "adrian" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "power": 1000, + "name": "zaki" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" + }, + "power": 100, + "name": "staked" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "power": 1000, + "name": "polsdam" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "power": 1000, + "name": "lino" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "power": 100, + "name": "" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "power": 1000, + "name": "iris" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "power": 1000, + "name": "pbostrom" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "power": 1000, + "name": "aurel" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "power": 1000, + "name": "bucky" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "power": 100, + "name": "cwgoes" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" + }, + "power": 1000, + "name": "bdnet" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" + }, + "power": 1000, + "name": "melea-trust" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" + }, + "power": 1000, + "name": "naruemon" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" + }, + "power": 1000, + "name": "idoor" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" + }, + "power": 1000, + "name": "ATEAM1" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" + }, + "power": 1000, + "name": "figmatt" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" + }, + "power": 1000, + "name": "jla-bsd" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" + }, + "power": 1000, + "name": "Gold" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" + }, + "power": 1000, + "name": "nylira" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" + }, + "power": 1000, + "name": "BKCM" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" + }, + "power": 1000, + "name": "Dev's Validator" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" + }, + "power": 1000, + "name": "Staking Facilities" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" + }, + "power": 1000, + "name": "nuevax" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" + }, + "power": 1000, + "name": "vultr.guest" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" + }, + "power": 1000, + "name": "forebole" + } + ], + "app_hash": "", + "app_state": { + "accounts": [ + { + "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "coins": [ + { + "denom": "devToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "coins": [ + { + "denom": "adrianToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "109720515B4F8C0858DA3521E448262334534FFD", + "coins": [ + { + "denom": "defaultToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "coins": [ + { + "denom": "aurelToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "328FBB8EA315D070DF908982A5F91A3618001D20", + "coins": [ + { + "denom": "cwgoesToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "coins": [ + { + "denom": "BKCMToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "coins": [ + { + "denom": "BDToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "coins": [ + { + "denom": "suyuToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "coins": [ + { + "denom": "linoToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "coins": [ + { + "denom": "stakingToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "935E04662697134905706A4CCDB822AC6FC11C2E", + "coins": [ + { + "denom": "defaultToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "935E48ED79F1006ED135553768E1D9A768747CF6", + "coins": [ + { + "denom": "buckyToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", + "coins": [ + { + "denom": "kwunyeungToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "zachToken", + "amount": 1000 + } + ] + }, + { + "address": "A323EC45243D600204BA3D298E3C20322D08C84C", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "nuevaxToken", + "amount": 1000 + } + ] + }, + { + "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "dokiaToken", + "amount": 1000 + } + ] + }, + { + "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "forboleToken", + "amount": 1000 + } + ] + }, + { + "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "coins": [ + { + "denom": "steak", + "amount": 100 + }, + { + "denom": "pengToken", + "amount": 1000 + } + ] + }, + { + "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", + "coins": [ + { + "denom": "steak", + "amount": 900 + }, + { + "denom": "faucetToken", + "amount": 10000000 + } + ] + }, + { + "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "goldToken", + "amount": 100 + } + ] + }, + { + "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "jlaToken", + "amount": 100 + } + ] + }, + { + "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "figmattToken", + "amount": 100 + } + ] + }, + { + "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "ATEAM1Token", + "amount": 100 + } + ] + }, + { + "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "idoorToken", + "amount": 100 + } + ] + }, + { + "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "naruemonToken", + "amount": 100 + } + ] + }, + { + "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "zakiToken", + "amount": 1000 + } + ] + }, + { + "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "trustToken", + "amount": 1000 + } + ] + }, + { + "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "coins": [ + { + "denom": "poldsamToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + } + ], + "stake": { + "pool": { + "loose_unbonded_tokens": 2350, + "unbonded_tokens": 0, + "unbonding_tokens": 0, + "bonded_tokens": 25200, + "unbonded_shares": "0", + "unbonding_shares": "0", + "bonded_shares": "25200", + "inflation_last_time": 0, + "inflation": "9012837/100000000", + "date_last_commission_reset": 0, + "prev_bonded_shares": "0" + }, + "params": { + "inflation_rate_change": "13/100", + "inflation_max": "1/5", + "inflation_min": "7/100", + "goal_bonded": "67/100", + "max_validators": 100, + "bond_denom": "steak" + }, + "bonds": [ + { + "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", + "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", + "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", + "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", + "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", + "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "shares": "1000", + "height": 0 + } + ], + "validators": [ + { + "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "pub_key": { + "type": "AC26791624DE60", + "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" + }, + "description": { + "moniker": "Dev's Validator", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "109720515B4F8C0858DA3521E448262334534FFD", + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "description": { + "moniker": "", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "description": { + "moniker": "aurel", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "description": { + "moniker": "cwgoes", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "pub_key": { + "type": "AC26791624DE60", + "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" + }, + "description": { + "moniker": "BKCM", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "pub_key": { + "type": "AC26791624DE60", + "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" + }, + "description": { + "moniker": "bdnet", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "description": { + "moniker": "suyu", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "description": { + "moniker": "lino", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "pub_key": { + "type": "AC26791624DE60", + "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" + }, + "description": { + "moniker": "Staking Facilities", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", + "pub_key": { + "type": "AC26791624DE60", + "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" + }, + "description": { + "moniker": "default", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "description": { + "moniker": "bucky", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "description": { + "moniker": "zach", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", + "pub_key": { + "type": "AC26791624DE60", + "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" + }, + "description": { + "moniker": "nuevax", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "pub_key": { + "type": "AC26791624DE60", + "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" + }, + "description": { + "moniker": "vultr.guest", + "identity": "", + "website": "https://ion.dokia.capital/", + "details": "DokiaValidator" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "pub_key": { + "type": "AC26791624DE60", + "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" + }, + "description": { + "moniker": "forbole", + "identity": "", + "website": "https://www.forbole.com", + "details": "Recommend. Refer. Reward" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "pub_key": { + "type": "AC26791624DE60", + "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" + }, + "description": { + "moniker": "nylira", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "pub_key": { + "type": "AC26791624DE60", + "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" + }, + "description": { + "moniker": "Gold", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "pub_key": { + "type": "AC26791624DE60", + "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" + }, + "description": { + "moniker": "jla-bsd", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "pub_key": { + "type": "AC26791624DE60", + "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" + }, + "description": { + "moniker": "figmatt", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "pub_key": { + "type": "AC26791624DE60", + "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" + }, + "description": { + "moniker": "ATEAM1", + "identity": "", + "website": "", + "details": "ATEAM1" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "pub_key": { + "type": "AC26791624DE60", + "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" + }, + "description": { + "moniker": "idoor", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "pub_key": { + "type": "AC26791624DE60", + "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" + }, + "description": { + "moniker": "naruemon", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "description": { + "moniker": "Adrian Brink - Cryptium Labs", + "identity": "", + "website": "https://cryptium.ch", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "description": { + "moniker": "zaki", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "pub_key": { + "type": "AC26791624DE60", + "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" + }, + "description": { + "moniker": "trust", + "identity": "", + "website": "http://cosmos-trust.com", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "description": { + "moniker": "proof-of-audit", + "identity": "", + "website": "https://proof-of-audit.com", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + } + ] + } + } +} diff --git a/cmd/gaia/testnets/gaia-6001/genesis.json b/cmd/gaia/testnets/gaia-6001/genesis.json new file mode 100644 index 0000000000..512d761bed --- /dev/null +++ b/cmd/gaia/testnets/gaia-6001/genesis.json @@ -0,0 +1,1459 @@ +{ + "genesis_time": "2018-05-15T18:29:12.38288148Z", + "chain_id": "gaia-6001", + "consensus_params": { + "block_size_params": { + "max_bytes": 22020096, + "max_txs": 100000, + "max_gas": -1 + }, + "tx_size_params": { + "max_bytes": 10240, + "max_gas": -1 + }, + "block_gossip_params": { + "block_part_size_bytes": 65536 + }, + "evidence_params": { + "max_age": 100000 + } + }, + "validators": [ + { + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "power": 1000, + "name": "adrian" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "power": 1000, + "name": "zaki" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" + }, + "power": 100, + "name": "staked" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "power": 1000, + "name": "polsdam" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "power": 1000, + "name": "lino" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "power": 100, + "name": "" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "power": 1000, + "name": "iris" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "power": 1000, + "name": "pbostrom" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "power": 1000, + "name": "aurel" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "power": 1000, + "name": "bucky" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "power": 100, + "name": "cwgoes" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" + }, + "power": 1000, + "name": "bdnet" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" + }, + "power": 1000, + "name": "melea-trust" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" + }, + "power": 1000, + "name": "naruemon" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" + }, + "power": 1000, + "name": "idoor" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" + }, + "power": 1000, + "name": "ATEAM1" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" + }, + "power": 1000, + "name": "figmatt" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" + }, + "power": 1000, + "name": "jla-bsd" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" + }, + "power": 1000, + "name": "Gold" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" + }, + "power": 1000, + "name": "nylira" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" + }, + "power": 1000, + "name": "BKCM" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" + }, + "power": 1000, + "name": "Dev's Validator" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" + }, + "power": 1000, + "name": "Staking Facilities" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" + }, + "power": 1000, + "name": "nuevax" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" + }, + "power": 1000, + "name": "vultr.guest" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" + }, + "power": 1000, + "name": "forebole" + } + ], + "app_hash": "", + "app_state": { + "accounts": [ + { + "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "coins": [ + { + "denom": "devToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "coins": [ + { + "denom": "adrianToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "109720515B4F8C0858DA3521E448262334534FFD", + "coins": [ + { + "denom": "defaultToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "coins": [ + { + "denom": "aurelToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "328FBB8EA315D070DF908982A5F91A3618001D20", + "coins": [ + { + "denom": "cwgoesToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "coins": [ + { + "denom": "BKCMToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "coins": [ + { + "denom": "BDToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "coins": [ + { + "denom": "suyuToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "coins": [ + { + "denom": "linoToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "coins": [ + { + "denom": "stakingToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "935E04662697134905706A4CCDB822AC6FC11C2E", + "coins": [ + { + "denom": "defaultToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "935E48ED79F1006ED135553768E1D9A768747CF6", + "coins": [ + { + "denom": "buckyToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", + "coins": [ + { + "denom": "kwunyeungToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "zachToken", + "amount": 1000 + } + ] + }, + { + "address": "A323EC45243D600204BA3D298E3C20322D08C84C", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "nuevaxToken", + "amount": 1000 + } + ] + }, + { + "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "dokiaToken", + "amount": 1000 + } + ] + }, + { + "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "forboleToken", + "amount": 1000 + } + ] + }, + { + "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "coins": [ + { + "denom": "steak", + "amount": 100 + }, + { + "denom": "pengToken", + "amount": 1000 + } + ] + }, + { + "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", + "coins": [ + { + "denom": "steak", + "amount": 900 + }, + { + "denom": "faucetToken", + "amount": 10000000 + } + ] + }, + { + "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "goldToken", + "amount": 100 + } + ] + }, + { + "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "jlaToken", + "amount": 100 + } + ] + }, + { + "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "figmattToken", + "amount": 100 + } + ] + }, + { + "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "ATEAM1Token", + "amount": 100 + } + ] + }, + { + "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "idoorToken", + "amount": 100 + } + ] + }, + { + "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "naruemonToken", + "amount": 100 + } + ] + }, + { + "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "zakiToken", + "amount": 1000 + } + ] + }, + { + "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "trustToken", + "amount": 1000 + } + ] + }, + { + "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "coins": [ + { + "denom": "poldsamToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + } + ], + "stake": { + "pool": { + "loose_unbonded_tokens": 2300, + "unbonded_tokens": 0, + "unbonding_tokens": 0, + "bonded_tokens": 23300, + "unbonded_shares": "0", + "unbonding_shares": "0", + "bonded_shares": "23300", + "inflation_last_time": 0, + "inflation": "9012837/100000000", + "date_last_commission_reset": 0, + "prev_bonded_shares": "0" + }, + "params": { + "inflation_rate_change": "13/100", + "inflation_max": "1/5", + "inflation_min": "7/100", + "goal_bonded": "67/100", + "max_validators": 100, + "bond_denom": "steak" + }, + "bonds": [ + { + "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", + "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", + "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", + "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", + "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", + "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "shares": "1000", + "height": 0 + } + ], + "validators": [ + { + "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "pub_key": { + "type": "AC26791624DE60", + "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" + }, + "description": { + "moniker": "Dev's Validator", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "109720515B4F8C0858DA3521E448262334534FFD", + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "description": { + "moniker": "", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "description": { + "moniker": "aurel", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "description": { + "moniker": "cwgoes", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "pub_key": { + "type": "AC26791624DE60", + "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" + }, + "description": { + "moniker": "BKCM", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "pub_key": { + "type": "AC26791624DE60", + "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" + }, + "description": { + "moniker": "bdnet", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "description": { + "moniker": "suyu", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "description": { + "moniker": "lino", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "pub_key": { + "type": "AC26791624DE60", + "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" + }, + "description": { + "moniker": "Staking Facilities", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", + "pub_key": { + "type": "AC26791624DE60", + "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" + }, + "description": { + "moniker": "default", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "description": { + "moniker": "bucky", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "description": { + "moniker": "zach", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", + "pub_key": { + "type": "AC26791624DE60", + "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" + }, + "description": { + "moniker": "nuevax", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "pub_key": { + "type": "AC26791624DE60", + "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" + }, + "description": { + "moniker": "vultr.guest", + "identity": "", + "website": "https://ion.dokia.capital/", + "details": "DokiaValidator" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "pub_key": { + "type": "AC26791624DE60", + "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" + }, + "description": { + "moniker": "forbole", + "identity": "", + "website": "https://www.forbole.com", + "details": "Recommend. Refer. Reward" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "pub_key": { + "type": "AC26791624DE60", + "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" + }, + "description": { + "moniker": "nylira", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "pub_key": { + "type": "AC26791624DE60", + "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" + }, + "description": { + "moniker": "Gold", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "pub_key": { + "type": "AC26791624DE60", + "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" + }, + "description": { + "moniker": "jla-bsd", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "pub_key": { + "type": "AC26791624DE60", + "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" + }, + "description": { + "moniker": "figmatt", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "pub_key": { + "type": "AC26791624DE60", + "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" + }, + "description": { + "moniker": "ATEAM1", + "identity": "", + "website": "", + "details": "ATEAM1" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "pub_key": { + "type": "AC26791624DE60", + "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" + }, + "description": { + "moniker": "idoor", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "pub_key": { + "type": "AC26791624DE60", + "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" + }, + "description": { + "moniker": "naruemon", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "description": { + "moniker": "Adrian Brink - Cryptium Labs", + "identity": "", + "website": "https://cryptium.ch", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "description": { + "moniker": "zaki", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "pub_key": { + "type": "AC26791624DE60", + "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" + }, + "description": { + "moniker": "trust", + "identity": "", + "website": "http://cosmos-trust.com", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "description": { + "moniker": "proof-of-audit", + "identity": "", + "website": "https://proof-of-audit.com", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + } + ] + } + } +} From eceb56b709e6d2fb1ec9a401af4d2c0e82a33a18 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sun, 10 Jun 2018 10:51:18 -0700 Subject: [PATCH 10/31] cmd/gaia/testnets: update status.md with recent history --- cmd/gaia/testnets/STATUS.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/cmd/gaia/testnets/STATUS.md b/cmd/gaia/testnets/STATUS.md index fb21ff9a44..d53c49e092 100644 --- a/cmd/gaia/testnets/STATUS.md +++ b/cmd/gaia/testnets/STATUS.md @@ -1,5 +1,41 @@ # TESTNET STATUS +## *June 10, 2018, 8:30 EST* - Gaia-6001 consensus failure + +- Validator unbonding and revocation activity caused a consensus failure +- There is a bug in the staking module that must be fixed +- The team is taking its time to look into this and release a fix following a + proper protocol for hotfix upgrades to the testnet +- Please stay tuned! + +## *June 9, 2018, 14:00 EST* - New Release + +- Released gaia + [v0.18.0](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.18.0) with + update for Tendermint + [v0.20.0](https://github.com/tendermint/tendermint/releases/tag/v0.20.0) +- Includes bug fix for declaring candidacy from the command line + +## *June 8, 2018, 23:30 EST* - Gaia-6001 is making blocks + +- +2/3 of the voting power is finally online for Gaia-6001 and it is making + blocks! +- This is a momentous achievement - a successful asynchronous decentralized + testnet launch +- Congrats everyone! + +## *June 8, 2018, 12:00 EST* - New Testnet Gaia-6001 + +- After some confusion around testnet deployment and a contention testnet + hardfork, a new genesis file and network was released for `gaia-6001` + +## *June 7, 2018, 9:00 EST* - New Testnet Gaia-6000 + +- Released a new `genesis.json` file for `gaia-6000` +- Initial validators include those that were most active in + the gaia-5001 testnet +- Join the network via gaia `v0.18.0-rc0` + ## *June 5, 2018, 21:00 EST* - New Release - Released gaia From 9430ba1baa3001c2686be2b2ff2991d18a0ca4bf Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sun, 10 Jun 2018 11:02:19 -0700 Subject: [PATCH 11/31] cmd/gaia/testnets: update versions, use a working seed --- cmd/gaia/testnets/README.md | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/cmd/gaia/testnets/README.md b/cmd/gaia/testnets/README.md index e5c6522796..a6f6bbb5eb 100644 --- a/cmd/gaia/testnets/README.md +++ b/cmd/gaia/testnets/README.md @@ -2,6 +2,12 @@ This document explains how to connect to the Testnet of a [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk/) based blockchain. It can be used to connect to the latest Testnet for the Cosmos Hub. +NOTE: We are aware this documentation is sub-par and are actively working to +improve both the tooling and the documentation to make this as painless as +possible. In the meantime, join the +[chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org) for technical support. Thanks very +much for your patience :) + ## Software Setup (Manual Installation) Follow these instructions to install the Cosmos-SDK and connect to the latest Testnet. This instructions work for both a local machine and a VM in a cloud server. @@ -52,7 +58,7 @@ Now we can fetch the correct versions of each dependency by running: ``` mkdir -p $GOPATH/src/github.com/cosmos/cosmos-sdk git clone https://github.com/cosmos/cosmos-sdk.git -git checkout v0.18.0-rc0 +git checkout v0.18.0 make get_tools // run $ make update_tools if already installed make get_vendor_deps make install @@ -67,7 +73,7 @@ gaiad version You should see: ``` -0.18.0-dev-af15f89 +0.18.0-eceb56b7 ``` And also: @@ -79,22 +85,20 @@ gaiacli version You should see: ``` -0.18.0-dev-af15f89 +0.18.0-eceb56b7 ``` ## Full Node Setup -Clone the testnet repo. +Copy the testnet initialization files to a new data directory: ``` -git clone https://github.com/cosmos/testnets - mkdir -p $HOME/.gaiad/config -cp -a testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json +cp -a cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json gaiad unsafe_reset_all ``` -Add a seed node by changing `seed = ""` in `config.toml` to `seed = "80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656"`. +Add a seed node by changing `seed = ""` in `config.toml` to `seed = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656" Lastly change the `moniker` string in the`config.toml`to identify your node. @@ -123,25 +127,24 @@ Now it is time to upgrade the software. ``` cd $GOPATH/src/github.com/cosmos/cosmos-sdk git fetch --all -git checkout v0.18.0-rc0 +git checkout v0.18.0 make update_tools make get_vendor_deps make install ``` -The next step is to obtain the new genesis file from `https://github.com/cosmos/testnets`. -``` -cd $HOME/testnets -git pull origin master +The next step is to copy the new genesis file: -cp -a gaia-6001/genesis.json $HOME/.gaiad/config +``` +cp -a cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json ``` The last step is the adjust the `config.toml`. Make sure that you are connected to healthy peers or seed nodes. These are some seeds nodes and they can be put into the config under the `seeds` key. Alternatively you can also ask user validators directly for a persistent peer and add it under the `persisent_peers` key. + ``` -80a35a46ce09cfb31ee220c8141a25e73e0b239b@cosmos.cryptium.ch:46656 +38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656" ``` ## Run a Full Node From 74f5b26666b893bb22a679a732c3c0563afeff47 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 11 Jun 2018 11:35:12 -0700 Subject: [PATCH 12/31] readme points to testnet folder --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 3faf2c8afd..7713633d0d 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,14 @@ master | [![CircleCI](https://circleci.com/gh/cosmos/cosmos-sdk/tree/master.s **Note**: Requires [Go 1.10+](https://golang.org/dl/) +## Testnet + +For more information on connecting to the testnet, see +[cmd/gaia/testnets](/cmd/gaia/testnets) + +For the latest status of the testnet, see the [status +file](/cmd/gaia/testnets/status.md). + ## Overview From 5e975fc675cf780de5019427f1e9d9c5cea09d59 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 11 Jun 2018 11:35:18 -0700 Subject: [PATCH 13/31] add fixes from billy --- cmd/gaia/testnets/README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cmd/gaia/testnets/README.md b/cmd/gaia/testnets/README.md index a6f6bbb5eb..891cffdfdc 100644 --- a/cmd/gaia/testnets/README.md +++ b/cmd/gaia/testnets/README.md @@ -98,9 +98,13 @@ cp -a cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json gaiad unsafe_reset_all ``` -Add a seed node by changing `seed = ""` in `config.toml` to `seed = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656" +Add a seed node by changing `seed = ""` in `$HOME/.gaiad/config/config.toml` to -Lastly change the `moniker` string in the`config.toml`to identify your node. +``` +seed = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656" +``` + +Lastly change the `moniker` string in the `$HOME/.gaiad/config/config.toml`to identify your node. ``` # A custom human readable name for this node @@ -139,12 +143,12 @@ The next step is to copy the new genesis file: cp -a cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json ``` -The last step is the adjust the `config.toml`. Make sure that you are connected to healthy peers or seed nodes. +The last step is the adjust the `$HOME/.gaiad/config/config.toml`. Make sure that you are connected to healthy peers or seed nodes. These are some seeds nodes and they can be put into the config under the `seeds` key. Alternatively you can also ask user validators directly for a persistent peer and add it under the `persisent_peers` key. ``` -38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656" +38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656 ``` ## Run a Full Node From f07573708316b429e8e070ae7f03a418861e57a7 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 11 Jun 2018 11:37:05 -0700 Subject: [PATCH 14/31] fix status.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7713633d0d..3af98fb4f2 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ For more information on connecting to the testnet, see [cmd/gaia/testnets](/cmd/gaia/testnets) For the latest status of the testnet, see the [status -file](/cmd/gaia/testnets/status.md). +file](/cmd/gaia/testnets/STATUS.md). ## Overview From 4dcf41df4b4f64c243a45c389abe0ba897d9c5fb Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 11 Jun 2018 11:40:38 -0700 Subject: [PATCH 15/31] seed->seeds --- cmd/gaia/testnets/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/gaia/testnets/README.md b/cmd/gaia/testnets/README.md index 891cffdfdc..42484c5990 100644 --- a/cmd/gaia/testnets/README.md +++ b/cmd/gaia/testnets/README.md @@ -98,10 +98,10 @@ cp -a cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json gaiad unsafe_reset_all ``` -Add a seed node by changing `seed = ""` in `$HOME/.gaiad/config/config.toml` to +Add a seed node by changing `seeds = ""` in `$HOME/.gaiad/config/config.toml` to ``` -seed = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656" +seeds = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656" ``` Lastly change the `moniker` string in the `$HOME/.gaiad/config/config.toml`to identify your node. From 3b9cb4949782f21dc28eedd6858aaaf2d2e60ed1 Mon Sep 17 00:00:00 2001 From: Peng Zhong <172531+nylira@users.noreply.github.com> Date: Tue, 12 Jun 2018 13:50:49 +0800 Subject: [PATCH 16/31] readme improvements add link to official faucet, remove sequence from cmds readme improvements wording improvements and simplifications add link to cosmos explorer remove instances of candidate add apostrophe small fixes improve the installing software section fixes based on feedback add note about querying an empty account remove panic note update introduction add full cp path for copying genesis.json update moniker warning remove redundant sections add error message when querying empty account don't need a link to golang.org link to sections, better section names fix section link reorganize sections add h3s remove & symbol add whitespace update h3 to h2 add note about explorer not connecting to every node --- cmd/gaia/testnets/README.md | 247 +++++++++++++++--------------------- 1 file changed, 99 insertions(+), 148 deletions(-) diff --git a/cmd/gaia/testnets/README.md b/cmd/gaia/testnets/README.md index 42484c5990..8ea2d43fca 100644 --- a/cmd/gaia/testnets/README.md +++ b/cmd/gaia/testnets/README.md @@ -1,228 +1,185 @@ -# Connect to a Testnet +# Connect to the `gaia-6001` Testnet -This document explains how to connect to the Testnet of a [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk/) based blockchain. It can be used to connect to the latest Testnet for the Cosmos Hub. - -NOTE: We are aware this documentation is sub-par and are actively working to -improve both the tooling and the documentation to make this as painless as +Note: We are aware this documentation is sub-par. We are working to +improve the tooling and the documentation to make this process as painless as possible. In the meantime, join the -[chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org) for technical support. Thanks very -much for your patience :) +[Validator Chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org) +for technical support. Thanks very much for your patience. :) -## Software Setup (Manual Installation) +## Setting Up a New Node -Follow these instructions to install the Cosmos-SDK and connect to the latest Testnet. This instructions work for both a local machine and a VM in a cloud server. +These instructions are for setting up a brand new full node from scratch. If you ran a full node on a previous testnet, please skip to [Upgrading From Previous Testnet](#upgrading-from-previous-testnet). -If you want to run a non-validator full-node, installing the SDK on a Cloud server is a good option. However, if you are want to become a validator for the Hub's `mainnet` you should look at more complex setups, including [Sentry Node Architecture](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#how-can-validators-protect-themselves-from-denial-of-service-attacks), to protect your node from DDOS and ensure high-availability (see the [technical requirements](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#technical-requirements)). You can find more information on validators in our [website](https://cosmos.network/validators), in the [Validator FAQ](https://cosmos.network/resources/validator-faq) and in the [Validator Chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org). +### Install Go -### Install [Go](https://golang.org/) +Install `go` by following the [official docs](https://golang.org/doc/install). +**Go 1.10+** is required for the Cosmos SDK. -Install `go` following the [instructions](https://golang.org/doc/install) in the official golang website. -You will require **Go 1.10+** for this tutorial. +### Install Cosmos SDK -#### Set GOPATH - -First, you will need to set up your `GOPATH`. Make sure that the location `$HOME` is something like `/Users/`, you can corroborate it by typing `echo $HOME` in your terminal. - -Go to `$HOME` with the command `cd $HOME` and open the the hidden file `.bashrc` with a code editor and paste the following lines \(or `.bash_profile` if your're using OS X\). +Next, let's install the testnet's version of the Cosmos SDK. ``` -export GOPATH=$HOME/go -export PATH=$PATH:$GOROOT/bin:$GOPATH/bin +go get github.com/cosmos/cosmos-sdk +cd $GOPATH/src/github.com/cosmos/cosmos-sdk && git checkout v0.18.0 +make get_tools && make get_vendor_deps && make install ``` -Save and restart the terminal. - -_Note_: If you can't see the hidden file, use the shortcut `Command + Shift + .` in Finder. - - -### Install [GNU Wget](https://www.gnu.org/software/wget/) - -**MacOS** - -``` -brew install wget -``` - -**Linux** - -``` -sudo apt-get install wget -``` - -Note: You can check other available options for downloading `wget` [here](https://www.gnu.org/software/wget/faq.html#download). - -### Install Gaia - -Now we can fetch the correct versions of each dependency by running: - -``` -mkdir -p $GOPATH/src/github.com/cosmos/cosmos-sdk -git clone https://github.com/cosmos/cosmos-sdk.git -git checkout v0.18.0 -make get_tools // run $ make update_tools if already installed -make get_vendor_deps -make install -``` - -This will install the `gaiad` and `gaiacli` binaries. Verify that everything is OK by running: +That will install the `gaiad` and `gaiacli` binaries. Verify that everything is OK: ``` gaiad version -``` - -You should see: - -``` 0.18.0-eceb56b7 ``` -And also: +### Node Setup + +Create the required configuration files: ``` -gaiacli version +gaiad init ``` -You should see: - -``` -0.18.0-eceb56b7 -``` - -## Full Node Setup - -Copy the testnet initialization files to a new data directory: - -``` -mkdir -p $HOME/.gaiad/config -cp -a cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json -gaiad unsafe_reset_all -``` - -Add a seed node by changing `seeds = ""` in `$HOME/.gaiad/config/config.toml` to - -``` -seeds = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656" -``` - -Lastly change the `moniker` string in the `$HOME/.gaiad/config/config.toml`to identify your node. +Name your node by editing the `moniker` in `$HOME/.gaiad/config/config.toml`. Note that only ASCII characters are supported. Using Unicode renders your node unconnectable. ``` # A custom human readable name for this node moniker = "" ``` -## Upgrading from a previous network +Your full node has been initialized! Please skip to [Genesis & Seeds](#genesis--seeds). -These instructions are for anyone that ran a previous network and would like to upgrade to a newer version. +## Upgrading From Previous Testnet + +These instructions are for full nodes that have ran on previous testnets and would like to upgrade to the latest testnet. + +### Reset Data + +First, remove the outdated files and reset the data. -Remove the ephemeral files and reset the data. ``` rm $HOME/.gaiad/config/addrbook.json $HOME/.gaiad/config/genesis.json gaiad unsafe_reset_all ``` -Now your node is in a prestine state without changing your validator key. If you had any -sentry nodes or full nodes setup correctly previously they should work. +Your node is now in a pristine state while keeping the original `priv_validator.json`. If you had any sentry nodes or full nodes setup before, they should continue to work. -**Make sure that every node has a unique `priv_validator.json`. Do not copy the `priv_validator.json` from an old node to multiple new nodes. Running two nodes with the same `priv_validator.json` will cause you to double sign.**\ +**WARNING:** Make sure that every node has a unique `priv_validator.json`. Do not copy the `priv_validator.json` from an old node to multiple new nodes. Running two nodes with the same `priv_validator.json` will cause you to double sign. +### Software Upgrade + +Now it is time to upgrade the software: -Now it is time to upgrade the software. ``` cd $GOPATH/src/github.com/cosmos/cosmos-sdk -git fetch --all -git checkout v0.18.0 -make update_tools -make get_vendor_deps -make install +git fetch --all && git checkout v0.18.0 +make update_tools && make get_vendor_deps && make install ``` -The next step is to copy the new genesis file: +Your full node has been cleanly upgraded! + +## Genesis & Seeds + +### Copy the Genesis File + +Copy the testnet's `genesis.json` file and place it in `gaiad`'s config directory. ``` -cp -a cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json +mkdir -p $HOME/.gaiad/config +cp -a $GOPATH/src/github.com/cosmos/cosmos-sdk/cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json ``` -The last step is the adjust the `$HOME/.gaiad/config/config.toml`. Make sure that you are connected to healthy peers or seed nodes. -These are some seeds nodes and they can be put into the config under the `seeds` key. Alternatively you can also -ask user validators directly for a persistent peer and add it under the `persisent_peers` key. +### Add Seed Nodes + +Your node needs to know how to find peers. You'll need to add healthy seed nodes to `$HOME/.gaiad/config/config.toml`. Here are some seed nodes you can use: ``` -38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656 +# Comma separated list of seed nodes to connect to +seeds = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656" ``` +You can also [ask other validators](https://riot.im/app/#/room/#cosmos_validators:matrix.org) for a persistent peer and add it under the `persistent_peers` key. For more information on seeds and peers, [read this](https://github.com/tendermint/tendermint/blob/develop/docs/using-tendermint.md#peers). + ## Run a Full Node -Start the full node: +Start the full node with this command: ``` gaiad start ``` -Check the everything is running smoothly: +Check that everything is running smoothly: ``` gaiacli status ``` -## Generate keys +View the status of the network with the [Cosmos Explorer](https://explorecosmos.network). Once your full node syncs up to the current block height, you should see it appear on the [list of full nodes](https://explorecosmos.network/validators). If it doesn't show up, that's ok--the Explorer does not connect to every node. + +## Generate Keys You'll need a private and public key pair \(a.k.a. `sk, pk` respectively\) to be able to receive funds, send txs, bond tx, etc. -To generate your a new key \(default _ed25519_ elliptic curve\): +To generate a new key \(default _ed25519_ elliptic curve\): ``` gaiacli keys add ``` -Next, you will have to enter a passphrase for your key twice. Save the _seed_ _phrase_ in a safe place in case you forget the password. +Next, you will have to create a passphrase. Save the _seed_ _phrase_ in a safe place in case you forget the password. -Now if you check your private keys you will see the `` key among them: +If you check your private keys, you'll now see ``: ``` gaiacli keys show ``` -You can see all your other available keys by typing: +You can see all your available keys by typing: ``` gaiacli keys list ``` -The validator pubkey from your node should be the same as the one printed with the command: +View the validator pubkey for your node by typing: ``` gaiad tendermint show_validator ``` -Finally, save your address and pubkey into a variable to use them afterwards. +Save your address and pubkey to environment variables for later use: ``` MYADDR= MYPUBKEY= ``` -**IMPORTANT:** We strongly recommend to **NOT** use the same passphrase for your different keys. The Tendermint team and the Interchain Foundation will not be responsible for the lost of funds. +**WARNING:** We strongly recommend NOT using the same passphrase for multiple keys. The Tendermint team and the Interchain Foundation will not be responsible for the loss of funds. -### Get coins +## Get Tokens -The best way to get coins at the moment is to ask in Riot chat. We plan to have a reliable faucet in future testnets. +The best way to get tokens is from the [Cosmos Testnet Faucet](https://faucetcosmos.network). If the faucet is not working for you, try asking [#cosmos-validators](https://riot.im/app/#/room/#cosmos-validators:matrix.org). -## Send tokens +After receiving tokens to your address, you can view your account's balance by typing: ``` -gaiacli send --amount=1000fermion --chain-id= --sequence=0 --name= --to= +gaiacli account ``` -The `--amount` flag defines the corresponding amount of the coin in the format `--amount=` +Note: When you query an account balance with zero tokens, you will get this error: `No account with address was found in the state.` This is expected! We're working on improving our error messages. -The `--sequence` flag corresponds to the sequence number to sign the tx. - -Now check the destination account and your own account to check the updated balances \(by default the latest block\): +## Send Tokens ``` +gaiacli send --amount=10faucetToken --chain-id= --name= --to= +``` + +Note: The `--amount` flag accepts the format `--amount=`. + +Now, view the updated balances of the origin and destination accounts: + +``` +gaiacli account gaiacli account -gaiacli account ``` You can also check your balance at a given block by using the `--block` flag: @@ -233,71 +190,65 @@ gaiacli account --block= ## Run a Validator Node -[Validators](https://cosmos.network/validators) are actors from the network that are responsible from committing new blocks to the blockchain by submitting their votes. In terms of security, validators' stake is slashed in all the zones they belong if they become unavailable, double sign a transaction, or don't cast their votes. We strongly recommend entities intending to run validators in the Cosmos Hub's `mainnet` to check the [technical requirements](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#technical-requirements) and take the necessary precautions to ensure high-availability, such as setting a Sentry Node architecture. If you have any question about validators, read the [Validator FAQ](https://cosmos.network/resources/validator-faq) and join the [Validator Chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org). +[Validators](https://cosmos.network/validators) are responsible for committing new blocks to the blockchain through voting. A validator's stake is slashed if they become unavailable, double sign a transaction, or don't cast their votes. If you only want to run a full node, a VM in the cloud is fine. However, if you are want to become a validator for the Hub's `mainnet`, you should research hardened setups. Please read [Sentry Node Architecture](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#how-can-validators-protect-themselves-from-denial-of-service-attacks) to protect your node from DDOS and ensure high-availability. Also see the [technical requirements](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#technical-requirements)). There's also more info on our [website](https://cosmos.network/validators). -This section covers the instructions necessary to stake tokens to become a testnet validator candidate. +Your `pubkey` can be used to create a new validator by staking tokens. You can find your validator pubkey by running: -Your `pubkey` can be used to create a new validator candidate by staking some tokens: - -You can find your node pubkey by running ``` gaiad tendermint show_validator ``` -and this returns your public key for the declare-candidate command - +Next, craft your `gaiacli stake create-validator` command: ``` -gaiacli stake create-validator --amount=500steak --pubkey= --address-candidate= --moniker=satoshi --chain-id= --sequence=1 --name= +gaiacli stake create-validator --amount=5steak --pubkey= --address-validator= --moniker=satoshi --chain-id= --name= ``` -You can add more information of the validator candidate such as`--website`, `--keybase-sig `or additional `--details`. If you want to edit the candidate info: +You can add more information to the validator, such as`--website`, `--keybase-sig`, or `--details`. Here's how: ``` gaiacli stake edit-validator --details="To the cosmos !" --website="https://cosmos.network" ``` -Finally, you can check all the candidate information by typing: +View the validator's information with this command: ``` -gaiacli stake validator --address-candidate= --chain-id= +gaiacli stake validator --address-validator= --chain-id= ``` -To check that the validator is active you can find it on the validator set list: +To check that the validator is active, look for it here: ``` gaiacli advanced tendermint validator-set ``` -**Note:** Remember that to be in the validator set you need to have more total power than the Xnd validator, where X is the assigned size for the validator set \(by default _`X = 100`_\). +**Note:** To be in the validator set, you need to have more total voting power than the 100th validator. -## Delegate your tokens +## Delegating to a Validator -You can delegate \(_i.e._ bind\) **Atoms** to a validator to become a [delegator](https://cosmos.network/resources/delegators) and obtain a part of its fee revenue in **Photons**. For more information about the Cosmos Token Model, refer to our [whitepaper](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). +On the upcoming mainnet, you can delegate `atom` to a validator. These [delegators](https://cosmos.network/resources/delegators) can receive part of the validator's fee revenue in `photon`. Read more more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). -### Bond your tokens +### Bond Tokens -Bond your tokens to a validator candidate with the following command: +On the testnet, we delegate `steak` instead of `atom`. Here's how you can bond tokens to a testnet validator: ``` -gaiacli stake delegate --amount=10steak --address-delegator= --address-candidate= --name= --chain-id= --sequence=2 +gaiacli stake delegate --amount=10steak --address-delegator= --address-validator= --name= --chain-id= ``` -When tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain shares that represent their stake in this pool. +While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool. -### Unbond +### Unbond Tokens -If for any reason the validator misbehaves or you just want to unbond a certain amount of the bonded tokens: +If for any reason the validator misbehaves, or you want to unbond a certain amount of tokens, use this following command. You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\). ``` -gaiacli stake unbond --address-delegator= --address-candidate= --shares=MAX --name= --chain-id= --sequence=3 +gaiacli stake unbond --address-delegator= --address-validator= --shares=MAX --name= --chain-id= ``` -You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\). - -You should now see the unbonded tokens reflected in your balance and in your delegator bond: +You can check your balance and your stake delegation to see that the unbonding went through successfully. ``` gaiacli account -gaiacli stake delegation --address-delegator= --address-candidate= --chain-id= +gaiacli stake delegation --address-delegator= --address-validator= --chain-id= ``` From a03770d73d2a0035f49a7fc5d575be5d7edfdad9 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 12 Jun 2018 21:13:28 -0700 Subject: [PATCH 17/31] testnets: minor readme update --- cmd/gaia/testnets/README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cmd/gaia/testnets/README.md b/cmd/gaia/testnets/README.md index 8ea2d43fca..b34926aede 100644 --- a/cmd/gaia/testnets/README.md +++ b/cmd/gaia/testnets/README.md @@ -20,8 +20,10 @@ Install `go` by following the [official docs](https://golang.org/doc/install). Next, let's install the testnet's version of the Cosmos SDK. ``` -go get github.com/cosmos/cosmos-sdk -cd $GOPATH/src/github.com/cosmos/cosmos-sdk && git checkout v0.18.0 +mkdir -p $GOPATH/src/github.com/cosmos +cd $GOPATH/src/github.com/cosmos +git clone https://github.com/cosmos/cosmos-sdk +cd cosmos-sdk && git checkout v0.18.0 make get_tools && make get_vendor_deps && make install ``` @@ -62,7 +64,9 @@ rm $HOME/.gaiad/config/addrbook.json $HOME/.gaiad/config/genesis.json gaiad unsafe_reset_all ``` -Your node is now in a pristine state while keeping the original `priv_validator.json`. If you had any sentry nodes or full nodes setup before, they should continue to work. +Your node is now in a pristine state while keeping the original `priv_validator.json` and `config.toml`. If you had any sentry nodes or full nodes setup before, +your node will still try to connect to them, but may fail if they haven't also +been upgraded. **WARNING:** Make sure that every node has a unique `priv_validator.json`. Do not copy the `priv_validator.json` from an old node to multiple new nodes. Running two nodes with the same `priv_validator.json` will cause you to double sign. @@ -226,7 +230,7 @@ gaiacli advanced tendermint validator-set ## Delegating to a Validator -On the upcoming mainnet, you can delegate `atom` to a validator. These [delegators](https://cosmos.network/resources/delegators) can receive part of the validator's fee revenue in `photon`. Read more more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). +On the upcoming mainnet, you can delegate `atom` to a validator. These [delegators](https://cosmos.network/resources/delegators) can receive part of the validator's fee revenue. Read more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). ### Bond Tokens From 1c8dbd1087fbc6e93332ec8dd25f4277d57a0b92 Mon Sep 17 00:00:00 2001 From: Dev Ojha Date: Tue, 12 Jun 2018 21:42:52 -0700 Subject: [PATCH 18/31] Merge PR #1228: Update to Tendermint develop --- Gopkg.lock | 9 ++++----- Gopkg.toml | 4 ++-- server/tm_cmds.go | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 07a3c6d5b9..515c4dc4f2 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -267,8 +267,8 @@ "server", "types" ] - revision = "ebee2fe114020aa49c70bbbae50b7079fc7e7b90" - version = "v0.11.0" + revision = "198dccf0ddfd1bb176f87657e3286a05a6ed9540" + version = "v0.12.0" [[projects]] branch = "master" @@ -347,8 +347,7 @@ "types", "version" ] - revision = "27bd1deabe4ba6a2d9b463b8f3e3f1e31b993e61" - version = "v0.20.0" + revision = "fa32dc51819c5eb85a51a239b785c930ac8ad5f0" [[projects]] branch = "develop" @@ -463,6 +462,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "31f69b235b2d8f879a215c9e8ca0919adc62d21f6830b17931a3a0efb058721f" + inputs-digest = "4f488b27a585db0df82292eb72740bee8b6c1e50e7d593bf1e45785195d09938" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 77de1b78de..5428e74214 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -54,7 +54,7 @@ [[constraint]] name = "github.com/tendermint/abci" - version = "=0.11.0" + version = "=0.12.0" [[constraint]] name = "github.com/tendermint/go-crypto" @@ -70,7 +70,7 @@ [[constraint]] name = "github.com/tendermint/tendermint" - version = "=0.20.0" + revision = "fa32dc51819c5eb85a51a239b785c930ac8ad5f0" [[override]] name = "github.com/tendermint/tmlibs" diff --git a/server/tm_cmds.go b/server/tm_cmds.go index 7dccaf5319..25d417a666 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 }, } From 8753d6d59a569e1d8949a5e068d4b6dfc555b429 Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Wed, 13 Jun 2018 07:25:14 +0200 Subject: [PATCH 19/31] Revert "Merge PR #1228: Update to Tendermint develop" (#1231) This reverts commit 1c8dbd1087fbc6e93332ec8dd25f4277d57a0b92. --- Gopkg.lock | 9 +++++---- Gopkg.toml | 4 ++-- server/tm_cmds.go | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 515c4dc4f2..07a3c6d5b9 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -267,8 +267,8 @@ "server", "types" ] - revision = "198dccf0ddfd1bb176f87657e3286a05a6ed9540" - version = "v0.12.0" + revision = "ebee2fe114020aa49c70bbbae50b7079fc7e7b90" + version = "v0.11.0" [[projects]] branch = "master" @@ -347,7 +347,8 @@ "types", "version" ] - revision = "fa32dc51819c5eb85a51a239b785c930ac8ad5f0" + revision = "27bd1deabe4ba6a2d9b463b8f3e3f1e31b993e61" + version = "v0.20.0" [[projects]] branch = "develop" @@ -462,6 +463,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "4f488b27a585db0df82292eb72740bee8b6c1e50e7d593bf1e45785195d09938" + inputs-digest = "31f69b235b2d8f879a215c9e8ca0919adc62d21f6830b17931a3a0efb058721f" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 5428e74214..77de1b78de 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -54,7 +54,7 @@ [[constraint]] name = "github.com/tendermint/abci" - version = "=0.12.0" + version = "=0.11.0" [[constraint]] name = "github.com/tendermint/go-crypto" @@ -70,7 +70,7 @@ [[constraint]] name = "github.com/tendermint/tendermint" - revision = "fa32dc51819c5eb85a51a239b785c930ac8ad5f0" + version = "=0.20.0" [[override]] name = "github.com/tendermint/tmlibs" diff --git a/server/tm_cmds.go b/server/tm_cmds.go index 25d417a666..7dccaf5319 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.P2P.AddrBookFile(), cfg.PrivValidatorFile(), ctx.Logger) + tcmd.ResetAll(cfg.DBDir(), cfg.PrivValidatorFile(), ctx.Logger) return nil }, } From ef2e7a5129d0848e99daa14357b6be8f3f9907c3 Mon Sep 17 00:00:00 2001 From: suyuhuang Date: Wed, 13 Jun 2018 13:27:24 +0800 Subject: [PATCH 20/31] Merge PR #1229: Fix 'gaiad init gen-tx' not showing seed --- cmd/gaia/app/genesis.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/gaia/app/genesis.go b/cmd/gaia/app/genesis.go index 813796c0d8..558bca38ab 100644 --- a/cmd/gaia/app/genesis.go +++ b/cmd/gaia/app/genesis.go @@ -108,7 +108,8 @@ func GaiaAppGenTx(cdc *wire.Codec, pk crypto.PubKey) ( return } cliPrint = json.RawMessage(bz) - return GaiaAppGenTxNF(cdc, pk, addr, name, overwrite) + appGenTx,_,validator,err = GaiaAppGenTxNF(cdc, pk, addr, name, overwrite) + return } // Generate a gaia genesis transaction without flags From 522042fd1200fbdbf49c76e55b4bceeebb80a0f9 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 12 Jun 2018 22:17:11 -0700 Subject: [PATCH 21/31] gaiadebug tool --- Makefile | 5 +- cmd/gaia/cmd/gaiadebug/main.go | 122 +++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 cmd/gaia/cmd/gaiadebug/main.go diff --git a/Makefile b/Makefile index d6444b0b62..c0d18c4a39 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,9 @@ install_examples: go install $(BUILD_FLAGS) ./examples/democoin/cmd/democoind go install $(BUILD_FLAGS) ./examples/democoin/cmd/democli +install_debug: + go install $(BUILD_FLAGS) ./cmd/gaia/cmd/gaiadebug + dist: @bash publish/dist.sh @bash publish/publish.sh @@ -157,4 +160,4 @@ remotenet-status: # To avoid unintended conflicts with file names, always add to .PHONY # unless there is a reason not to. # https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html -.PHONY: build build_examples install install_examples dist check_tools get_tools get_vendor_deps draw_deps test test_cli test_unit test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update remotenet-start remotenet-stop remotenet-status +.PHONY: build build_examples install install_examples install_debug dist check_tools get_tools get_vendor_deps draw_deps test test_cli test_unit test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update remotenet-start remotenet-stop remotenet-status diff --git a/cmd/gaia/cmd/gaiadebug/main.go b/cmd/gaia/cmd/gaiadebug/main.go new file mode 100644 index 0000000000..ed5344bdd0 --- /dev/null +++ b/cmd/gaia/cmd/gaiadebug/main.go @@ -0,0 +1,122 @@ +package main + +import ( + "bytes" + "encoding/base64" + "encoding/hex" + "encoding/json" + "fmt" + "os" + + gaia "github.com/cosmos/cosmos-sdk/cmd/gaia/app" + "github.com/cosmos/cosmos-sdk/x/auth" + "github.com/spf13/cobra" + crypto "github.com/tendermint/go-crypto" +) + +func init() { + rootCmd.AddCommand(txCmd) + rootCmd.AddCommand(pubkeyCmd) +} + +var rootCmd = &cobra.Command{ + Use: "gaiadebug", + Short: "Gaia debug tool", + SilenceUsage: true, +} + +var txCmd = &cobra.Command{ + Use: "tx", + Short: "Decode a gaia tx from hex or base64", + RunE: runTxCmd, +} + +var pubkeyCmd = &cobra.Command{ + Use: "pubkey", + Short: "Decode a pubkey from hex or base64", + RunE: runPubKeyCmd, +} + +func runPubKeyCmd(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return fmt.Errorf("Expected single arg") + } + + pubkeyString := args[0] + + // try hex, then base64 + pubkeyBytes, err := hex.DecodeString(pubkeyString) + if err != nil { + var err2 error + pubkeyBytes, err2 = base64.StdEncoding.DecodeString(pubkeyString) + if err2 != nil { + return fmt.Errorf(`Expected hex or base64. Got errors: + hex: %v, + base64: %v + `, err, err2) + } + } + + cdc := gaia.MakeCodec() + var pubKey crypto.PubKeyEd25519 + copy(pubKey[:], pubkeyBytes) + pubKeyJSONBytes, err := cdc.MarshalJSON(pubKey) + if err != nil { + return err + } + fmt.Println("Address:", pubKey.Address()) + fmt.Printf("Hex: %X\n", pubkeyBytes) + fmt.Println("JSON (base64):", string(pubKeyJSONBytes)) + return nil +} + +func runTxCmd(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return fmt.Errorf("Expected single arg") + } + + txString := args[0] + + // try hex, then base64 + txBytes, err := hex.DecodeString(txString) + if err != nil { + var err2 error + txBytes, err2 = base64.StdEncoding.DecodeString(txString) + if err2 != nil { + return fmt.Errorf(`Expected hex or base64. Got errors: + hex: %v, + base64: %v + `, err, err2) + } + } + + var tx = auth.StdTx{} + cdc := gaia.MakeCodec() + + err = cdc.UnmarshalBinary(txBytes, &tx) + if err != nil { + return err + } + + bz, err := cdc.MarshalJSON(tx) + if err != nil { + return err + } + + buf := bytes.NewBuffer([]byte{}) + err = json.Indent(buf, bz, "", " ") + if err != nil { + return err + } + + fmt.Println(buf.String()) + return nil +} + +func main() { + err := rootCmd.Execute() + if err != nil { + os.Exit(1) + } + os.Exit(0) +} From cb93cbee3d138bb7199f84d226fd850967a19126 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 12 Jun 2018 22:27:13 -0700 Subject: [PATCH 22/31] gaiadebug: add hack command --- cmd/gaia/cmd/gaiadebug/hack.go | 243 +++++++++++++++++++++++++++++++++ cmd/gaia/cmd/gaiadebug/main.go | 7 + 2 files changed, 250 insertions(+) create mode 100644 cmd/gaia/cmd/gaiadebug/hack.go diff --git a/cmd/gaia/cmd/gaiadebug/hack.go b/cmd/gaia/cmd/gaiadebug/hack.go new file mode 100644 index 0000000000..2c84184bf7 --- /dev/null +++ b/cmd/gaia/cmd/gaiadebug/hack.go @@ -0,0 +1,243 @@ +package main + +import ( + "encoding/base64" + "encoding/hex" + "fmt" + "os" + "path" + + "github.com/spf13/cobra" + abci "github.com/tendermint/abci/types" + crypto "github.com/tendermint/go-crypto" + cmn "github.com/tendermint/tmlibs/common" + dbm "github.com/tendermint/tmlibs/db" + "github.com/tendermint/tmlibs/log" + + bam "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/cosmos/cosmos-sdk/wire" + "github.com/cosmos/cosmos-sdk/x/auth" + "github.com/cosmos/cosmos-sdk/x/bank" + "github.com/cosmos/cosmos-sdk/x/ibc" + "github.com/cosmos/cosmos-sdk/x/slashing" + "github.com/cosmos/cosmos-sdk/x/stake" + + gaia "github.com/cosmos/cosmos-sdk/cmd/gaia/app" +) + +func runHackCmd(cmd *cobra.Command, args []string) error { + + if len(args) != 1 { + return fmt.Errorf("Expected 1 arg") + } + + // ".gaiad" + dataDir := args[0] + dataDir = path.Join(dataDir, "data") + + // load the app + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) + db, err := dbm.NewGoLevelDB("gaia", dataDir) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + app := NewGaiaApp(logger, db) + + // print some info + id := app.LastCommitID() + lastBlockHeight := app.LastBlockHeight() + fmt.Println("ID", id) + fmt.Println("LastBlockHeight", lastBlockHeight) + + //---------------------------------------------------- + // XXX: start hacking! + //---------------------------------------------------- + // eg. gaia-6001 testnet bug + // We paniced when iterating through the "bypower" keys. + // The following powerKey was there, but the corresponding "trouble" validator did not exist. + // So here we do a binary search on the past states to find when the powerKey first showed up ... + + // owner of the validator the bonds, gets revoked, later unbonds, and then later is still found in the bypower store + trouble := hexToBytes("D3DC0FF59F7C3B548B7AFA365561B87FD0208AF8") + // this is his "bypower" key + powerKey := hexToBytes("05303030303030303030303033FFFFFFFFFFFF4C0C0000FFFED3DC0FF59F7C3B548B7AFA365561B87FD0208AF8") + + topHeight := lastBlockHeight + bottomHeight := int64(0) + checkHeight := topHeight + for { + // load the given version of the state + err = app.LoadVersion(checkHeight, app.keyMain) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + ctx := app.NewContext(true, abci.Header{}) + + // check for the powerkey and the validator from the store + store := ctx.KVStore(app.keyStake) + res := store.Get(powerKey) + val, _ := app.stakeKeeper.GetValidator(ctx, trouble) + fmt.Println("checking height", checkHeight, res, val) + if res == nil { + bottomHeight = checkHeight + } else { + topHeight = checkHeight + } + checkHeight = (topHeight + bottomHeight) / 2 + } +} + +func base64ToPub(b64 string) crypto.PubKeyEd25519 { + data, _ := base64.StdEncoding.DecodeString(b64) + var pubKey crypto.PubKeyEd25519 + copy(pubKey[:], data) + return pubKey + +} + +func hexToBytes(h string) []byte { + trouble, _ := hex.DecodeString(h) + return trouble + +} + +//-------------------------------------------------------------------------------- +// NOTE: This is all copied from gaia/app/app.go +// so we can access internal fields! + +const ( + appName = "GaiaApp" +) + +// default home directories for expected binaries +var ( + DefaultCLIHome = os.ExpandEnv("$HOME/.gaiacli") + DefaultNodeHome = os.ExpandEnv("$HOME/.gaiad") +) + +// Extended ABCI application +type GaiaApp struct { + *bam.BaseApp + cdc *wire.Codec + + // keys to access the substores + keyMain *sdk.KVStoreKey + keyAccount *sdk.KVStoreKey + keyIBC *sdk.KVStoreKey + keyStake *sdk.KVStoreKey + keySlashing *sdk.KVStoreKey + + // Manage getting and setting accounts + accountMapper auth.AccountMapper + feeCollectionKeeper auth.FeeCollectionKeeper + coinKeeper bank.Keeper + ibcMapper ibc.Mapper + stakeKeeper stake.Keeper + slashingKeeper slashing.Keeper +} + +func NewGaiaApp(logger log.Logger, db dbm.DB) *GaiaApp { + cdc := MakeCodec() + + // create your application object + var app = &GaiaApp{ + BaseApp: bam.NewBaseApp(appName, cdc, logger, db), + cdc: cdc, + keyMain: sdk.NewKVStoreKey("main"), + keyAccount: sdk.NewKVStoreKey("acc"), + keyIBC: sdk.NewKVStoreKey("ibc"), + keyStake: sdk.NewKVStoreKey("stake"), + keySlashing: sdk.NewKVStoreKey("slashing"), + } + + // define the accountMapper + app.accountMapper = auth.NewAccountMapper( + app.cdc, + app.keyAccount, // target store + &auth.BaseAccount{}, // prototype + ) + + // add handlers + app.coinKeeper = bank.NewKeeper(app.accountMapper) + app.ibcMapper = ibc.NewMapper(app.cdc, app.keyIBC, app.RegisterCodespace(ibc.DefaultCodespace)) + app.stakeKeeper = stake.NewKeeper(app.cdc, app.keyStake, app.coinKeeper, app.RegisterCodespace(stake.DefaultCodespace)) + app.slashingKeeper = slashing.NewKeeper(app.cdc, app.keySlashing, app.stakeKeeper, app.RegisterCodespace(slashing.DefaultCodespace)) + + // register message routes + app.Router(). + AddRoute("bank", bank.NewHandler(app.coinKeeper)). + AddRoute("ibc", ibc.NewHandler(app.ibcMapper, app.coinKeeper)). + AddRoute("stake", stake.NewHandler(app.stakeKeeper)) + + // initialize BaseApp + app.SetInitChainer(app.initChainer) + app.SetBeginBlocker(app.BeginBlocker) + app.SetEndBlocker(app.EndBlocker) + app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, app.feeCollectionKeeper)) + app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake, app.keySlashing) + err := app.LoadLatestVersion(app.keyMain) + if err != nil { + cmn.Exit(err.Error()) + } + + return app +} + +// custom tx codec +func MakeCodec() *wire.Codec { + var cdc = wire.NewCodec() + ibc.RegisterWire(cdc) + bank.RegisterWire(cdc) + stake.RegisterWire(cdc) + slashing.RegisterWire(cdc) + auth.RegisterWire(cdc) + sdk.RegisterWire(cdc) + wire.RegisterCrypto(cdc) + return cdc +} + +// application updates every end block +func (app *GaiaApp) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock { + tags := slashing.BeginBlocker(ctx, req, app.slashingKeeper) + + return abci.ResponseBeginBlock{ + Tags: tags.ToKVPairs(), + } +} + +// application updates every end block +func (app *GaiaApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock { + validatorUpdates := stake.EndBlocker(ctx, app.stakeKeeper) + + return abci.ResponseEndBlock{ + ValidatorUpdates: validatorUpdates, + } +} + +// custom logic for gaia initialization +func (app *GaiaApp) initChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { + stateJSON := req.AppStateBytes + // TODO is this now the whole genesis file? + + var genesisState gaia.GenesisState + err := app.cdc.UnmarshalJSON(stateJSON, &genesisState) + if err != nil { + panic(err) // TODO https://github.com/cosmos/cosmos-sdk/issues/468 + // return sdk.ErrGenesisParse("").TraceCause(err, "") + } + + // load the accounts + for _, gacc := range genesisState.Accounts { + acc := gacc.ToAccount() + app.accountMapper.SetAccount(ctx, acc) + } + + // load the initial stake information + stake.InitGenesis(ctx, app.stakeKeeper, genesisState.StakeData) + return abci.ResponseInitChain{} + +} diff --git a/cmd/gaia/cmd/gaiadebug/main.go b/cmd/gaia/cmd/gaiadebug/main.go index ed5344bdd0..914746dbd8 100644 --- a/cmd/gaia/cmd/gaiadebug/main.go +++ b/cmd/gaia/cmd/gaiadebug/main.go @@ -17,6 +17,7 @@ import ( func init() { rootCmd.AddCommand(txCmd) rootCmd.AddCommand(pubkeyCmd) + rootCmd.AddCommand(hackCmd) } var rootCmd = &cobra.Command{ @@ -37,6 +38,12 @@ var pubkeyCmd = &cobra.Command{ RunE: runPubKeyCmd, } +var hackCmd = &cobra.Command{ + Use: "hack", + Short: "Boilerplate to Hack on an existing state by scripting some Go...", + RunE: runHackCmd, +} + func runPubKeyCmd(cmd *cobra.Command, args []string) error { if len(args) != 1 { return fmt.Errorf("Expected single arg") From 2219548d0e538cd5652e83253bf6102f1b5f96a5 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 12 Jun 2018 22:45:51 -0700 Subject: [PATCH 23/31] fix from merge --- client/lcd/lcd_test.go | 186 +---------------------------------------- 1 file changed, 3 insertions(+), 183 deletions(-) diff --git a/client/lcd/lcd_test.go b/client/lcd/lcd_test.go index f0d5d80e81..ba2937e050 100644 --- a/client/lcd/lcd_test.go +++ b/client/lcd/lcd_test.go @@ -1,44 +1,26 @@ package lcd import ( - "bytes" "encoding/hex" "encoding/json" "fmt" - "io/ioutil" - "net" "net/http" - "os" "regexp" "testing" - "github.com/spf13/viper" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" abci "github.com/tendermint/abci/types" - crypto "github.com/tendermint/go-crypto" cryptoKeys "github.com/tendermint/go-crypto/keys" - tmcfg "github.com/tendermint/tendermint/config" - nm "github.com/tendermint/tendermint/node" p2p "github.com/tendermint/tendermint/p2p" - pvm "github.com/tendermint/tendermint/privval" - "github.com/tendermint/tendermint/proxy" ctypes "github.com/tendermint/tendermint/rpc/core/types" - tmrpc "github.com/tendermint/tendermint/rpc/lib/server" - tmtypes "github.com/tendermint/tendermint/types" - "github.com/tendermint/tmlibs/cli" - dbm "github.com/tendermint/tmlibs/db" - "github.com/tendermint/tmlibs/log" client "github.com/cosmos/cosmos-sdk/client" keys "github.com/cosmos/cosmos-sdk/client/keys" rpc "github.com/cosmos/cosmos-sdk/client/rpc" - gapp "github.com/cosmos/cosmos-sdk/cmd/gaia/app" - "github.com/cosmos/cosmos-sdk/server" tests "github.com/cosmos/cosmos-sdk/tests" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/stake" stakerest "github.com/cosmos/cosmos-sdk/x/stake/client/rest" @@ -414,172 +396,10 @@ func TestBonding(t *testing.T) { // TODO fix shares fn in staking // query sender - acc := getAccount(t, sendAddr) - coins := acc.GetCoins() - assert.Equal(t, int64(98), coins.AmountOf(coinDenom)) + //acc := getAccount(t, sendAddr) + //coins := acc.GetCoins() + //assert.Equal(t, int64(98), coins.AmountOf(coinDenom)) - // query candidate - bond := getDelegation(t, sendAddr, validatorAddr1) - assert.Equal(t, "9/1", bond.Shares.String()) -} - -//__________________________________________________________ -// helpers - -// strt TM and the LCD in process, listening on their respective sockets -func startTMAndLCD() (*nm.Node, net.Listener, error) { - - dir, err := ioutil.TempDir("", "lcd_test") - if err != nil { - return nil, nil, err - } - viper.Set(cli.HomeFlag, dir) - viper.Set(client.FlagGas, 200000) - kb, err := keys.GetKeyBase() // dbm.NewMemDB()) // :( - if err != nil { - return nil, nil, err - } - - config := GetConfig() - config.Consensus.TimeoutCommit = 1000 - config.Consensus.SkipTimeoutCommit = false - - logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) - logger = log.NewFilter(logger, log.AllowError()) - privValidatorFile := config.PrivValidatorFile() - privVal := pvm.LoadOrGenFilePV(privValidatorFile) - db := dbm.NewMemDB() - app := gapp.NewGaiaApp(logger, db) - cdc = gapp.MakeCodec() // XXX - - genesisFile := config.GenesisFile() - genDoc, err := tmtypes.GenesisDocFromFile(genesisFile) - if err != nil { - return nil, nil, err - } - - genDoc.Validators = append(genDoc.Validators, - tmtypes.GenesisValidator{ - PubKey: crypto.GenPrivKeyEd25519().PubKey(), - Power: 1, - Name: "val", - }, - ) - - pk1 := genDoc.Validators[0].PubKey - pk2 := genDoc.Validators[1].PubKey - validatorAddr1 = hex.EncodeToString(pk1.Address()) - validatorAddr2 = hex.EncodeToString(pk2.Address()) - - // NOTE it's bad practice to reuse pk address for the owner address but doing in the - // test for simplicity - var appGenTxs [2]json.RawMessage - appGenTxs[0], _, _, err = gapp.GaiaAppGenTxNF(cdc, pk1, pk1.Address(), "test_val1", true) - if err != nil { - return nil, nil, err - } - appGenTxs[1], _, _, err = gapp.GaiaAppGenTxNF(cdc, pk2, pk2.Address(), "test_val2", true) - if err != nil { - return nil, nil, err - } - - genesisState, err := gapp.GaiaAppGenState(cdc, appGenTxs[:]) - if err != nil { - return nil, nil, err - } - - // add the sendAddr to genesis - var info cryptoKeys.Info - info, seed, err = kb.Create(name, password, cryptoKeys.AlgoEd25519) // XXX global seed - if err != nil { - return nil, nil, err - } - sendAddr = info.PubKey.Address().String() // XXX global - accAuth := auth.NewBaseAccountWithAddress(info.PubKey.Address()) - accAuth.Coins = sdk.Coins{{"steak", 100}} - acc := gapp.NewGenesisAccount(&accAuth) - genesisState.Accounts = append(genesisState.Accounts, acc) - - appState, err := wire.MarshalJSONIndent(cdc, genesisState) - if err != nil { - return nil, nil, err - } - genDoc.AppStateJSON = appState - - // LCD listen address - var listenAddr string - listenAddr, port, err = server.FreeTCPAddr() - if err != nil { - return nil, nil, err - } - - // XXX: need to set this so LCD knows the tendermint node address! - viper.Set(client.FlagNode, config.RPC.ListenAddress) - viper.Set(client.FlagChainID, genDoc.ChainID) - - node, err := startTM(config, logger, genDoc, privVal, app) - if err != nil { - return nil, nil, err - } - lcd, err := startLCD(logger, listenAddr, cdc) - if err != nil { - return nil, nil, err - } - - tests.WaitForStart(port) - - return node, lcd, nil -} - -// Create & start in-process tendermint node with memdb -// and in-process abci application. -// TODO: need to clean up the WAL dir or enable it to be not persistent -func startTM(cfg *tmcfg.Config, logger log.Logger, genDoc *tmtypes.GenesisDoc, privVal tmtypes.PrivValidator, app abci.Application) (*nm.Node, error) { - genDocProvider := func() (*tmtypes.GenesisDoc, error) { return genDoc, nil } - dbProvider := func(*nm.DBContext) (dbm.DB, error) { return dbm.NewMemDB(), nil } - n, err := nm.NewNode(cfg, - privVal, - proxy.NewLocalClientCreator(app), - genDocProvider, - dbProvider, - logger.With("module", "node")) - if err != nil { - return nil, err - } - - err = n.Start() - if err != nil { - return nil, err - } - - // wait for rpc - tests.WaitForRPC(GetConfig().RPC.ListenAddress) - - logger.Info("Tendermint running!") - return n, err -} - -// start the LCD. note this blocks! -func startLCD(logger log.Logger, listenAddr string, cdc *wire.Codec) (net.Listener, error) { - handler := createHandler(cdc) - return tmrpc.StartHTTPServer(listenAddr, handler, logger) -} - -func request(t *testing.T, port, method, path string, payload []byte) (*http.Response, string) { - var res *http.Response - var err error - url := fmt.Sprintf("http://localhost:%v%v", port, path) - req, err := http.NewRequest(method, url, bytes.NewBuffer(payload)) - require.Nil(t, err) - res, err = http.DefaultClient.Do(req) - // res, err = http.Post(url, "application/json", bytes.NewBuffer(payload)) - require.Nil(t, err) - - output, err := ioutil.ReadAll(res.Body) - res.Body.Close() - require.Nil(t, err) - - return res, string(output) } //_____________________________________________________________________________ From 47cc91e8e5f3ad5b4eb1983fae7bf3acd09a131d Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 12 Jun 2018 22:59:33 -0700 Subject: [PATCH 24/31] gaiadebug: raw-bytes command --- cmd/gaia/cmd/gaiadebug/main.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/cmd/gaia/cmd/gaiadebug/main.go b/cmd/gaia/cmd/gaiadebug/main.go index 914746dbd8..79045c07bb 100644 --- a/cmd/gaia/cmd/gaiadebug/main.go +++ b/cmd/gaia/cmd/gaiadebug/main.go @@ -7,6 +7,8 @@ import ( "encoding/json" "fmt" "os" + "strconv" + "strings" gaia "github.com/cosmos/cosmos-sdk/cmd/gaia/app" "github.com/cosmos/cosmos-sdk/x/auth" @@ -18,6 +20,7 @@ func init() { rootCmd.AddCommand(txCmd) rootCmd.AddCommand(pubkeyCmd) rootCmd.AddCommand(hackCmd) + rootCmd.AddCommand(rawBytesCmd) } var rootCmd = &cobra.Command{ @@ -44,6 +47,33 @@ var hackCmd = &cobra.Command{ RunE: runHackCmd, } +var rawBytesCmd = &cobra.Command{ + Use: "raw-bytes", + Short: "Convert raw bytes output (eg. [10 21 13 255]) to hex", + RunE: runRawBytesCmd, +} + +func runRawBytesCmd(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return fmt.Errorf("Expected single arg") + } + stringBytes := args[0] + stringBytes = strings.Trim(stringBytes, "[") + stringBytes = strings.Trim(stringBytes, "]") + spl := strings.Split(stringBytes, " ") + + byteArray := []byte{} + for _, s := range spl { + b, err := strconv.Atoi(s) + if err != nil { + return err + } + byteArray = append(byteArray, byte(b)) + } + fmt.Printf("%X\n", byteArray) + return nil +} + func runPubKeyCmd(cmd *cobra.Command, args []string) error { if len(args) != 1 { return fmt.Errorf("Expected single arg") From 1cd3a6255a863b4c83c72f14f30293592360c461 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 12 Jun 2018 23:12:55 -0700 Subject: [PATCH 25/31] fix from merge --- client/flags.go | 1 - 1 file changed, 1 deletion(-) diff --git a/client/flags.go b/client/flags.go index 96ea5efd5a..4991b9a776 100644 --- a/client/flags.go +++ b/client/flags.go @@ -27,7 +27,6 @@ func GetCommands(cmds ...*cobra.Command) []*cobra.Command { c.Flags().String(FlagChainID, "", "Chain ID of tendermint node") c.Flags().String(FlagNode, "tcp://localhost:46657", ": to tendermint rpc interface for this chain") c.Flags().Int64(FlagHeight, 0, "block height to query, omit to get most recent provable block") - c.Flags().Int64(FlagGas, 200000, "gas limit to set per-transaction") } return cmds } From 35a3c1491875a6f4731c93d6e4cd6a7f627a356f Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 12 Jun 2018 23:18:37 -0700 Subject: [PATCH 26/31] update status.md --- cmd/gaia/testnets/STATUS.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/gaia/testnets/STATUS.md b/cmd/gaia/testnets/STATUS.md index d53c49e092..6f2140c264 100644 --- a/cmd/gaia/testnets/STATUS.md +++ b/cmd/gaia/testnets/STATUS.md @@ -1,5 +1,11 @@ # TESTNET STATUS +## *June 13, 2018, 2:30 EST* - Published Postmortem of Gaia-6001 failure + +- A bug in the design of the staking data model caused a sanity check to fail +- Full writeup + [here](https://github.com/cosmos/cosmos-sdk/issues/1197#issuecomment-396823021) + ## *June 10, 2018, 8:30 EST* - Gaia-6001 consensus failure - Validator unbonding and revocation activity caused a consensus failure From 83c1183e25a8bccc980a158be750c8e060f99f00 Mon Sep 17 00:00:00 2001 From: Rigel Date: Wed, 13 Jun 2018 00:12:57 -0700 Subject: [PATCH 27/31] Merge PR #1233: Inflation now unbonded working debug fix add broken test fix testnet bug updated provision test changelog cwgoes comments --- CHANGELOG.md | 2 ++ x/stake/handler_test.go | 73 +++++++++++++++++++++++++++++++++++++++ x/stake/inflation.go | 4 ++- x/stake/inflation_test.go | 59 ++++++------------------------- x/stake/keeper.go | 6 ++++ x/stake/keeper_test.go | 41 ++++++++++++++++++++++ x/stake/shares.go | 5 +-- 7 files changed, 138 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3123bef82a..300b71fb6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,10 @@ IMPROVEMENTS * [tests] Application module tests now use a mock application * [gaiacli] Fix error message when account isn't found when running gaiacli account * [lcd] refactored to eliminate use of global variables, and interdependent tests +* [x/stake] More stake tests added to test ByPower index FIXES +* [x/stake] bonded inflation removed, non-bonded inflation partially implemented * [lcd] Switch to bech32 for addresses on all human readable inputs and outputs * [lcd] fixed tx indexing/querying * [cli] Added `--gas` flag to specify transaction gas limit diff --git a/x/stake/handler_test.go b/x/stake/handler_test.go index 0c086f06db..6dcf3e66d8 100644 --- a/x/stake/handler_test.go +++ b/x/stake/handler_test.go @@ -33,6 +33,78 @@ func newTestMsgDelegate(delegatorAddr, validatorAddr sdk.Address, amt int64) Msg //______________________________________________________________________ +func TestValidatorByPowerIndex(t *testing.T) { + validatorAddr, validatorAddr3 := addrs[0], addrs[1] + + initBond := int64(1000000) + initBondStr := "1000" + ctx, _, keeper := createTestInput(t, false, initBond) + + // create validator + msgCreateValidator := newTestMsgCreateValidator(validatorAddr, pks[0], initBond) + got := handleMsgCreateValidator(ctx, msgCreateValidator, keeper) + assert.True(t, got.IsOK(), "expected create-validator to be ok, got %v", got) + + // verify the self-delegation exists + bond, found := keeper.GetDelegation(ctx, validatorAddr, validatorAddr) + require.True(t, found) + gotBond := bond.Shares.Evaluate() + require.Equal(t, initBond, gotBond, + "initBond: %v\ngotBond: %v\nbond: %v\n", + initBond, gotBond, bond) + + // verify that the by power index exists + validator, found := keeper.GetValidator(ctx, validatorAddr) + require.True(t, found) + pool := keeper.GetPool(ctx) + power := GetValidatorsByPowerKey(validator, pool) + require.True(t, keeper.validatorByPowerIndexExists(ctx, power)) + + // create a second validator keep it bonded + msgCreateValidator = newTestMsgCreateValidator(validatorAddr3, pks[2], int64(1000000)) + got = handleMsgCreateValidator(ctx, msgCreateValidator, keeper) + assert.True(t, got.IsOK(), "expected create-validator to be ok, got %v", got) + + // slash and revoke the first validator + keeper.Slash(ctx, pks[0], 0, sdk.NewRat(1, 2)) + keeper.Revoke(ctx, pks[0]) + validator, found = keeper.GetValidator(ctx, validatorAddr) + require.True(t, found) + require.Equal(t, sdk.Unbonded, validator.PoolShares.Status) // ensure is unbonded + require.Equal(t, int64(500000), validator.PoolShares.Amount.Evaluate()) // ensure is unbonded + + // the old power record should have been deleted as the power changed + assert.False(t, keeper.validatorByPowerIndexExists(ctx, power)) + + // but the new power record should have been created + validator, found = keeper.GetValidator(ctx, validatorAddr) + require.True(t, found) + pool = keeper.GetPool(ctx) + power2 := GetValidatorsByPowerKey(validator, pool) + require.True(t, keeper.validatorByPowerIndexExists(ctx, power2)) + + // inflate a bunch + for i := 0; i < 20000; i++ { + pool = keeper.processProvisions(ctx) + keeper.setPool(ctx, pool) + } + + // now the new record power index should be the same as the original record + power3 := GetValidatorsByPowerKey(validator, pool) + assert.Equal(t, power2, power3) + + // unbond self-delegation + msgUnbond := NewMsgUnbond(validatorAddr, validatorAddr, "MAX") + got = handleMsgUnbond(ctx, msgUnbond, keeper) + assert.True(t, got.IsOK(), + "got: %v\nmsgUnbond: %v\ninitBondStr: %v\n", got, msgUnbond, initBondStr) + + // verify that by power key nolonger exists + _, found = keeper.GetValidator(ctx, validatorAddr) + require.False(t, found) + assert.False(t, keeper.validatorByPowerIndexExists(ctx, power3)) +} + func TestDuplicatesMsgCreateValidator(t *testing.T) { ctx, _, keeper := createTestInput(t, false, 1000) @@ -42,6 +114,7 @@ func TestDuplicatesMsgCreateValidator(t *testing.T) { got := handleMsgCreateValidator(ctx, msgCreateValidator, keeper) assert.True(t, got.IsOK(), "%v", got) validator, found := keeper.GetValidator(ctx, validatorAddr) + require.True(t, found) assert.Equal(t, sdk.Bonded, validator.Status()) assert.Equal(t, validatorAddr, validator.Owner) diff --git a/x/stake/inflation.go b/x/stake/inflation.go index d613a478ae..fe3f59435b 100644 --- a/x/stake/inflation.go +++ b/x/stake/inflation.go @@ -22,7 +22,9 @@ func (k Keeper) processProvisions(ctx sdk.Context) Pool { // which needs to be updated is the `BondedPool`. So for each previsions cycle: provisions := pool.Inflation.Mul(sdk.NewRat(pool.TokenSupply())).Quo(hrsPerYrRat).Evaluate() - pool.BondedTokens += provisions + + // TODO add to the fees provisions + pool.LooseUnbondedTokens += provisions return pool } diff --git a/x/stake/inflation_test.go b/x/stake/inflation_test.go index 7fa393edc8..0d5183f4cf 100644 --- a/x/stake/inflation_test.go +++ b/x/stake/inflation_test.go @@ -74,8 +74,6 @@ func TestProcessProvisions(t *testing.T) { initialBondedTokens int64 = 250000000 initialUnbondedTokens int64 = 300000000 cumulativeExpProvs int64 - initialBondedShares = sdk.NewRat(250000000, 1) - initialUnbondedShares = sdk.NewRat(300000000, 1) validatorTokens = []int64{150000000, 100000000, 100000000, 100000000, 100000000} bondedValidators uint16 = 2 ) @@ -93,9 +91,7 @@ func TestProcessProvisions(t *testing.T) { //get the pool and do the final value checks from checkFinalPoolValues pool = keeper.GetPool(ctx) - checkFinalPoolValues(t, pool, initialTotalTokens, - initialUnbondedTokens, cumulativeExpProvs, - 0, 0, initialBondedShares, initialUnbondedShares) + checkFinalPoolValues(t, pool, initialTotalTokens, cumulativeExpProvs) } // Tests that the hourly rate of change of inflation will be positive, negative, or zero, depending on bonded ratio and inflation rate @@ -109,8 +105,6 @@ func TestHourlyInflationRateOfChange(t *testing.T) { initialBondedTokens int64 = 150000000 initialUnbondedTokens int64 = 400000000 cumulativeExpProvs int64 - bondedShares = sdk.NewRat(150000000, 1) - unbondedShares = sdk.NewRat(400000000, 1) validatorTokens = []int64{150000000, 100000000, 100000000, 100000000, 100000000} bondedValidators uint16 = 1 ) @@ -131,9 +125,7 @@ func TestHourlyInflationRateOfChange(t *testing.T) { // Final check that the pool equals initial values + cumulative provisions and adjustments we recorded pool = keeper.GetPool(ctx) - checkFinalPoolValues(t, pool, initialTotalTokens, - initialUnbondedTokens, cumulativeExpProvs, - 0, 0, bondedShares, unbondedShares) + checkFinalPoolValues(t, pool, initialTotalTokens, cumulativeExpProvs) } //Test that a large unbonding will significantly lower the bonded ratio @@ -181,9 +173,7 @@ func TestLargeUnbond(t *testing.T) { // Final check that the pool equals initial values + provisions and adjustments we recorded pool = keeper.GetPool(ctx) - checkFinalPoolValues(t, pool, initialTotalTokens, - initialUnbondedTokens, expProvisionsAfter, - -val0UnbondedTokens, val0UnbondedTokens, bondedShares, unbondedShares) + checkFinalPoolValues(t, pool, initialTotalTokens, expProvisionsAfter) } //Test that a large bonding will significantly increase the bonded ratio @@ -192,12 +182,9 @@ func TestLargeBond(t *testing.T) { pool := keeper.GetPool(ctx) var ( - initialTotalTokens int64 = 1600000000 - initialBondedTokens int64 = 400000000 - initialUnbondedTokens int64 = 1200000000 - val9UnbondedTokens int64 = 400000000 - val9BondedTokens int64 - bondedShares = sdk.NewRat(400000000, 1) + initialTotalTokens int64 = 1600000000 + initialBondedTokens int64 = 400000000 + initialUnbondedTokens int64 = 1200000000 unbondedShares = sdk.NewRat(1200000000, 1) unbondedSharesVal9 = sdk.NewRat(400000000, 1) validatorTokens = []int64{400000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 400000000} @@ -225,10 +212,6 @@ func TestLargeBond(t *testing.T) { // process provisions after the bonding, to compare the difference in expProvisions and expInflation _, expProvisionsAfter, pool := updateProvisions(t, keeper, pool, ctx, 0) unbondedShares = unbondedShares.Sub(unbondedSharesVal9) - val9BondedTokens = val9UnbondedTokens - val9UnbondedTokens = 0 - bondedTokens := initialBondedTokens + val9BondedTokens + expProvisionsAfter - bondedShares = sdk.NewRat(bondedTokens, 1).Quo(pool.bondedShareExRate()) // unbonded shares should decrease assert.True(t, unbondedShares.LT(sdk.NewRat(1200000000, 1))) @@ -237,9 +220,7 @@ func TestLargeBond(t *testing.T) { // Final check that the pool equals initial values + provisions and adjustments we recorded pool = keeper.GetPool(ctx) - checkFinalPoolValues(t, pool, initialTotalTokens, - initialUnbondedTokens, expProvisionsAfter, - val9BondedTokens, -val9BondedTokens, bondedShares, unbondedShares) + checkFinalPoolValues(t, pool, initialTotalTokens, expProvisionsAfter) } // Tests that inflation increases or decreases as expected when we do a random operation on 20 different validators @@ -296,30 +277,13 @@ func TestInflationWithRandomOperations(t *testing.T) { } } +//_________________________________________________________________________________________ ////////////////////////////////HELPER FUNCTIONS BELOW///////////////////////////////////// -// Final check on the global pool values for what the total tokens accumulated from each hour of provisions and other functions -// bondedAdjustment and unbondedAdjustment are the accumulated changes for the operations of the test -// (i.e. if three unbond operations happened, their total value would be passed as unbondedAdjustment) -func checkFinalPoolValues(t *testing.T, pool Pool, initialTotalTokens, initialUnbondedTokens, - cumulativeExpProvs, bondedAdjustment, unbondedAdjustment int64, bondedShares, unbondedShares sdk.Rat) { - - initialBonded := initialTotalTokens - initialUnbondedTokens +// Final check on the global pool values for what the total tokens accumulated from each hour of provisions +func checkFinalPoolValues(t *testing.T, pool Pool, initialTotalTokens, cumulativeExpProvs int64) { calculatedTotalTokens := initialTotalTokens + cumulativeExpProvs - calculatedBondedTokens := initialBonded + cumulativeExpProvs + bondedAdjustment - calculatedUnbondedTokens := initialUnbondedTokens + unbondedAdjustment - - // test that the bonded ratio the pool has is equal to what we calculated for tokens - assert.True(t, pool.bondedRatio().Equal(sdk.NewRat(calculatedBondedTokens, calculatedTotalTokens)), "%v", pool.bondedRatio()) - - // test global supply assert.Equal(t, calculatedTotalTokens, pool.TokenSupply()) - assert.Equal(t, calculatedBondedTokens, pool.BondedTokens) - assert.Equal(t, calculatedUnbondedTokens, pool.UnbondedTokens) - - // test the value of validator shares - assert.True(t, pool.bondedShareExRate().Mul(bondedShares).Equal(sdk.NewRat(calculatedBondedTokens)), "%v", pool.bondedShareExRate()) - assert.True(t, pool.unbondedShareExRate().Mul(unbondedShares).Equal(sdk.NewRat(calculatedUnbondedTokens)), "%v", pool.unbondedShareExRate()) } // Processes provisions are added to the pool correctly every hour @@ -327,13 +291,11 @@ func checkFinalPoolValues(t *testing.T, pool Pool, initialTotalTokens, initialUn func updateProvisions(t *testing.T, keeper Keeper, pool Pool, ctx sdk.Context, hr int) (sdk.Rat, int64, Pool) { expInflation := keeper.nextInflation(ctx) expProvisions := (expInflation.Mul(sdk.NewRat(pool.TokenSupply())).Quo(hrsPerYrRat)).Evaluate() - startBondedPool := pool.BondedTokens startTotalSupply := pool.TokenSupply() pool = keeper.processProvisions(ctx) keeper.setPool(ctx, pool) //check provisions were added to pool - require.Equal(t, startBondedPool+expProvisions, pool.BondedTokens, "hr %v", hr) require.Equal(t, startTotalSupply+expProvisions, pool.TokenSupply()) return expInflation, expProvisions, pool @@ -405,5 +367,4 @@ func checkInflation(t *testing.T, pool Pool, previousInflation, updatedInflation assert.Equal(t, true, inflationChange.LT(sdk.ZeroRat()), msg) } } - } diff --git a/x/stake/keeper.go b/x/stake/keeper.go index fad1f86ef1..4a2e6ff4be 100644 --- a/x/stake/keeper.go +++ b/x/stake/keeper.go @@ -78,6 +78,12 @@ func (k Keeper) setValidatorByPowerIndex(ctx sdk.Context, validator Validator, p store.Set(GetValidatorsByPowerKey(validator, pool), validator.Owner) } +// used in testing +func (k Keeper) validatorByPowerIndexExists(ctx sdk.Context, power []byte) bool { + store := ctx.KVStore(k.storeKey) + return store.Get(power) != nil +} + // Get the set of all validators with no limits, used during genesis dump func (k Keeper) getAllValidators(ctx sdk.Context) (validators Validators) { store := ctx.KVStore(k.storeKey) diff --git a/x/stake/keeper_test.go b/x/stake/keeper_test.go index 2868853e00..76bfc507a4 100644 --- a/x/stake/keeper_test.go +++ b/x/stake/keeper_test.go @@ -24,6 +24,47 @@ var ( } ) +func TestUpdateValidatorByPowerIndex(t *testing.T) { + ctx, _, keeper := createTestInput(t, false, 0) + pool := keeper.GetPool(ctx) + + // create a random pool + pool.BondedTokens = 1234 + pool.BondedShares = sdk.NewRat(124) + pool.UnbondingTokens = 13934 + pool.UnbondingShares = sdk.NewRat(145) + pool.UnbondedTokens = 154 + pool.UnbondedShares = sdk.NewRat(1333) + keeper.setPool(ctx, pool) + + // add a validator + validator := NewValidator(addrVals[0], pks[0], Description{}) + validator, pool, delSharesCreated := validator.addTokensFromDel(pool, 100) + require.Equal(t, sdk.Unbonded, validator.Status()) + assert.Equal(t, int64(100), validator.PoolShares.Tokens(pool).Evaluate()) + keeper.setPool(ctx, pool) + keeper.updateValidator(ctx, validator) + validator, found := keeper.GetValidator(ctx, addrVals[0]) + require.True(t, found) + assert.Equal(t, int64(100), validator.PoolShares.Tokens(pool).Evaluate(), "\nvalidator %v\npool %v", validator, pool) + + pool = keeper.GetPool(ctx) + power := GetValidatorsByPowerKey(validator, pool) + assert.True(t, keeper.validatorByPowerIndexExists(ctx, power)) + + // burn half the delegator shares + validator, pool, burned := validator.removeDelShares(pool, delSharesCreated.Quo(sdk.NewRat(2))) + assert.Equal(t, int64(50), burned) + keeper.setPool(ctx, pool) // update the pool + keeper.updateValidator(ctx, validator) // update the validator, possibly kicking it out + assert.False(t, keeper.validatorByPowerIndexExists(ctx, power)) + + pool = keeper.GetPool(ctx) + validator, found = keeper.GetValidator(ctx, addrVals[0]) + power = GetValidatorsByPowerKey(validator, pool) + assert.True(t, keeper.validatorByPowerIndexExists(ctx, power)) +} + func TestSetValidator(t *testing.T) { ctx, _, keeper := createTestInput(t, false, 0) pool := keeper.GetPool(ctx) diff --git a/x/stake/shares.go b/x/stake/shares.go index d5fe93844d..e30fa3738e 100644 --- a/x/stake/shares.go +++ b/x/stake/shares.go @@ -118,13 +118,14 @@ func (s PoolShares) ToBonded(p Pool) PoolShares { //_________________________________________________________________________________________________________ +// TODO better tests // get the equivalent amount of tokens contained by the shares func (s PoolShares) Tokens(p Pool) sdk.Rat { switch s.Status { case sdk.Bonded: - return p.unbondedShareExRate().Mul(s.Amount) // (tokens/shares) * shares + return p.bondedShareExRate().Mul(s.Amount) // (tokens/shares) * shares case sdk.Unbonding: - return p.unbondedShareExRate().Mul(s.Amount) + return p.unbondingShareExRate().Mul(s.Amount) case sdk.Unbonded: return p.unbondedShareExRate().Mul(s.Amount) default: From 37bba35c91e7ade8f7a160ceb2c37b322fed42f1 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Wed, 13 Jun 2018 00:44:46 -0700 Subject: [PATCH 28/31] Merge PR #1232: Bucky/gaiadebug * update to tm v0.19.6 * update tm to 0.17.4 * update for tm v0.19.9 * update godep * Merge PR #1195: gaiacli - Add error message for when account isn't found * Add --gas flag to specify gas limit for a transaction * lawl viper * version and changelog * add cmd/gaia/testnets folder to deprecate cosmos/testnets repo * cmd/gaia/testnets: update status.md with recent history * cmd/gaia/testnets: update versions, use a working seed * readme points to testnet folder * add fixes from billy * fix status.md * seed->seeds * readme improvements add link to official faucet, remove sequence from cmds readme improvements wording improvements and simplifications add link to cosmos explorer remove instances of candidate add apostrophe small fixes improve the installing software section fixes based on feedback add note about querying an empty account remove panic note update introduction add full cp path for copying genesis.json update moniker warning remove redundant sections add error message when querying empty account don't need a link to golang.org link to sections, better section names fix section link reorganize sections add h3s remove & symbol add whitespace update h3 to h2 add note about explorer not connecting to every node * testnets: minor readme update * gaiadebug tool * gaiadebug: add hack command * fix from merge * gaiadebug: raw-bytes command * fix from merge --- CHANGELOG.md | 21 +- Makefile | 5 +- README.md | 8 + client/lcd/lcd_test.go | 7 +- cmd/gaia/cmd/gaiadebug/hack.go | 243 ++++ cmd/gaia/cmd/gaiadebug/main.go | 159 +++ cmd/gaia/testnets/README.md | 258 ++++ cmd/gaia/testnets/STATUS.md | 74 ++ cmd/gaia/testnets/gaia-5001/adrian.json | 20 + cmd/gaia/testnets/gaia-5001/anton.json | 20 + cmd/gaia/testnets/gaia-5001/aurel.json | 20 + cmd/gaia/testnets/gaia-5001/bucky.json | 20 + cmd/gaia/testnets/gaia-5001/cwgoes.json | 20 + cmd/gaia/testnets/gaia-5001/iris.json | 20 + cmd/gaia/testnets/gaia-5001/lino.json | 20 + cmd/gaia/testnets/gaia-5001/pbostrom.json | 20 + cmd/gaia/testnets/gaia-5001/poldsam.json | 20 + cmd/gaia/testnets/gaia-5001/staked.json | 20 + cmd/gaia/testnets/gaia-5001/zach.json | 20 + cmd/gaia/testnets/gaia-5001/zaki.json | 20 + cmd/gaia/testnets/gaia-6000/genesis.json | 1459 +++++++++++++++++++++ cmd/gaia/testnets/gaia-6001/genesis.json | 1459 +++++++++++++++++++++ version/version.go | 2 +- 23 files changed, 3929 insertions(+), 6 deletions(-) create mode 100644 cmd/gaia/cmd/gaiadebug/hack.go create mode 100644 cmd/gaia/cmd/gaiadebug/main.go create mode 100644 cmd/gaia/testnets/README.md create mode 100644 cmd/gaia/testnets/STATUS.md create mode 100644 cmd/gaia/testnets/gaia-5001/adrian.json create mode 100644 cmd/gaia/testnets/gaia-5001/anton.json create mode 100644 cmd/gaia/testnets/gaia-5001/aurel.json create mode 100644 cmd/gaia/testnets/gaia-5001/bucky.json create mode 100644 cmd/gaia/testnets/gaia-5001/cwgoes.json create mode 100644 cmd/gaia/testnets/gaia-5001/iris.json create mode 100644 cmd/gaia/testnets/gaia-5001/lino.json create mode 100644 cmd/gaia/testnets/gaia-5001/pbostrom.json create mode 100644 cmd/gaia/testnets/gaia-5001/poldsam.json create mode 100644 cmd/gaia/testnets/gaia-5001/staked.json create mode 100644 cmd/gaia/testnets/gaia-5001/zach.json create mode 100644 cmd/gaia/testnets/gaia-5001/zaki.json create mode 100644 cmd/gaia/testnets/gaia-6000/genesis.json create mode 100644 cmd/gaia/testnets/gaia-6001/genesis.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 300b71fb6c..f40117f82d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,7 @@ FIXES ## 0.18.0 -_2018-06-05_ +*June 9, 2018* BREAKING CHANGES @@ -87,8 +87,27 @@ BUG FIXES * query sequence via account store * fixed duplicate pub_key in stake.Validator * Auto-sequencing now works correctly +* [gaiacli] Fix error message when account isn't found when running gaiacli account +## 0.17.5 + +*June 5, 2018* + +Update to Tendermint v0.19.9 (Fix evidence reactor, mempool deadlock, WAL panic, +memory leak) + +## 0.17.4 + +*May 31, 2018* + +Update to Tendermint v0.19.7 (WAL fixes and more) + +## 0.17.3 + +*May 29, 2018* + +Update to Tendermint v0.19.6 (fix fast-sync halt) ## 0.17.5 diff --git a/Makefile b/Makefile index d6444b0b62..c0d18c4a39 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,9 @@ install_examples: go install $(BUILD_FLAGS) ./examples/democoin/cmd/democoind go install $(BUILD_FLAGS) ./examples/democoin/cmd/democli +install_debug: + go install $(BUILD_FLAGS) ./cmd/gaia/cmd/gaiadebug + dist: @bash publish/dist.sh @bash publish/publish.sh @@ -157,4 +160,4 @@ remotenet-status: # To avoid unintended conflicts with file names, always add to .PHONY # unless there is a reason not to. # https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html -.PHONY: build build_examples install install_examples dist check_tools get_tools get_vendor_deps draw_deps test test_cli test_unit test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update remotenet-start remotenet-stop remotenet-status +.PHONY: build build_examples install install_examples install_debug dist check_tools get_tools get_vendor_deps draw_deps test test_cli test_unit test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update remotenet-start remotenet-stop remotenet-status diff --git a/README.md b/README.md index 3faf2c8afd..3af98fb4f2 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,14 @@ master | [![CircleCI](https://circleci.com/gh/cosmos/cosmos-sdk/tree/master.s **Note**: Requires [Go 1.10+](https://golang.org/dl/) +## Testnet + +For more information on connecting to the testnet, see +[cmd/gaia/testnets](/cmd/gaia/testnets) + +For the latest status of the testnet, see the [status +file](/cmd/gaia/testnets/STATUS.md). + ## Overview diff --git a/client/lcd/lcd_test.go b/client/lcd/lcd_test.go index 946f70bbcb..ba2937e050 100644 --- a/client/lcd/lcd_test.go +++ b/client/lcd/lcd_test.go @@ -396,9 +396,10 @@ func TestBonding(t *testing.T) { // TODO fix shares fn in staking // query sender - //acc = getAccount(t, port, addr) - //coins = acc.GetCoins() - //assert.Equal(t, int64(70), coins.AmountOf(denom)) + //acc := getAccount(t, sendAddr) + //coins := acc.GetCoins() + //assert.Equal(t, int64(98), coins.AmountOf(coinDenom)) + } //_____________________________________________________________________________ diff --git a/cmd/gaia/cmd/gaiadebug/hack.go b/cmd/gaia/cmd/gaiadebug/hack.go new file mode 100644 index 0000000000..2c84184bf7 --- /dev/null +++ b/cmd/gaia/cmd/gaiadebug/hack.go @@ -0,0 +1,243 @@ +package main + +import ( + "encoding/base64" + "encoding/hex" + "fmt" + "os" + "path" + + "github.com/spf13/cobra" + abci "github.com/tendermint/abci/types" + crypto "github.com/tendermint/go-crypto" + cmn "github.com/tendermint/tmlibs/common" + dbm "github.com/tendermint/tmlibs/db" + "github.com/tendermint/tmlibs/log" + + bam "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/cosmos/cosmos-sdk/wire" + "github.com/cosmos/cosmos-sdk/x/auth" + "github.com/cosmos/cosmos-sdk/x/bank" + "github.com/cosmos/cosmos-sdk/x/ibc" + "github.com/cosmos/cosmos-sdk/x/slashing" + "github.com/cosmos/cosmos-sdk/x/stake" + + gaia "github.com/cosmos/cosmos-sdk/cmd/gaia/app" +) + +func runHackCmd(cmd *cobra.Command, args []string) error { + + if len(args) != 1 { + return fmt.Errorf("Expected 1 arg") + } + + // ".gaiad" + dataDir := args[0] + dataDir = path.Join(dataDir, "data") + + // load the app + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) + db, err := dbm.NewGoLevelDB("gaia", dataDir) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + app := NewGaiaApp(logger, db) + + // print some info + id := app.LastCommitID() + lastBlockHeight := app.LastBlockHeight() + fmt.Println("ID", id) + fmt.Println("LastBlockHeight", lastBlockHeight) + + //---------------------------------------------------- + // XXX: start hacking! + //---------------------------------------------------- + // eg. gaia-6001 testnet bug + // We paniced when iterating through the "bypower" keys. + // The following powerKey was there, but the corresponding "trouble" validator did not exist. + // So here we do a binary search on the past states to find when the powerKey first showed up ... + + // owner of the validator the bonds, gets revoked, later unbonds, and then later is still found in the bypower store + trouble := hexToBytes("D3DC0FF59F7C3B548B7AFA365561B87FD0208AF8") + // this is his "bypower" key + powerKey := hexToBytes("05303030303030303030303033FFFFFFFFFFFF4C0C0000FFFED3DC0FF59F7C3B548B7AFA365561B87FD0208AF8") + + topHeight := lastBlockHeight + bottomHeight := int64(0) + checkHeight := topHeight + for { + // load the given version of the state + err = app.LoadVersion(checkHeight, app.keyMain) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + ctx := app.NewContext(true, abci.Header{}) + + // check for the powerkey and the validator from the store + store := ctx.KVStore(app.keyStake) + res := store.Get(powerKey) + val, _ := app.stakeKeeper.GetValidator(ctx, trouble) + fmt.Println("checking height", checkHeight, res, val) + if res == nil { + bottomHeight = checkHeight + } else { + topHeight = checkHeight + } + checkHeight = (topHeight + bottomHeight) / 2 + } +} + +func base64ToPub(b64 string) crypto.PubKeyEd25519 { + data, _ := base64.StdEncoding.DecodeString(b64) + var pubKey crypto.PubKeyEd25519 + copy(pubKey[:], data) + return pubKey + +} + +func hexToBytes(h string) []byte { + trouble, _ := hex.DecodeString(h) + return trouble + +} + +//-------------------------------------------------------------------------------- +// NOTE: This is all copied from gaia/app/app.go +// so we can access internal fields! + +const ( + appName = "GaiaApp" +) + +// default home directories for expected binaries +var ( + DefaultCLIHome = os.ExpandEnv("$HOME/.gaiacli") + DefaultNodeHome = os.ExpandEnv("$HOME/.gaiad") +) + +// Extended ABCI application +type GaiaApp struct { + *bam.BaseApp + cdc *wire.Codec + + // keys to access the substores + keyMain *sdk.KVStoreKey + keyAccount *sdk.KVStoreKey + keyIBC *sdk.KVStoreKey + keyStake *sdk.KVStoreKey + keySlashing *sdk.KVStoreKey + + // Manage getting and setting accounts + accountMapper auth.AccountMapper + feeCollectionKeeper auth.FeeCollectionKeeper + coinKeeper bank.Keeper + ibcMapper ibc.Mapper + stakeKeeper stake.Keeper + slashingKeeper slashing.Keeper +} + +func NewGaiaApp(logger log.Logger, db dbm.DB) *GaiaApp { + cdc := MakeCodec() + + // create your application object + var app = &GaiaApp{ + BaseApp: bam.NewBaseApp(appName, cdc, logger, db), + cdc: cdc, + keyMain: sdk.NewKVStoreKey("main"), + keyAccount: sdk.NewKVStoreKey("acc"), + keyIBC: sdk.NewKVStoreKey("ibc"), + keyStake: sdk.NewKVStoreKey("stake"), + keySlashing: sdk.NewKVStoreKey("slashing"), + } + + // define the accountMapper + app.accountMapper = auth.NewAccountMapper( + app.cdc, + app.keyAccount, // target store + &auth.BaseAccount{}, // prototype + ) + + // add handlers + app.coinKeeper = bank.NewKeeper(app.accountMapper) + app.ibcMapper = ibc.NewMapper(app.cdc, app.keyIBC, app.RegisterCodespace(ibc.DefaultCodespace)) + app.stakeKeeper = stake.NewKeeper(app.cdc, app.keyStake, app.coinKeeper, app.RegisterCodespace(stake.DefaultCodespace)) + app.slashingKeeper = slashing.NewKeeper(app.cdc, app.keySlashing, app.stakeKeeper, app.RegisterCodespace(slashing.DefaultCodespace)) + + // register message routes + app.Router(). + AddRoute("bank", bank.NewHandler(app.coinKeeper)). + AddRoute("ibc", ibc.NewHandler(app.ibcMapper, app.coinKeeper)). + AddRoute("stake", stake.NewHandler(app.stakeKeeper)) + + // initialize BaseApp + app.SetInitChainer(app.initChainer) + app.SetBeginBlocker(app.BeginBlocker) + app.SetEndBlocker(app.EndBlocker) + app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, app.feeCollectionKeeper)) + app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake, app.keySlashing) + err := app.LoadLatestVersion(app.keyMain) + if err != nil { + cmn.Exit(err.Error()) + } + + return app +} + +// custom tx codec +func MakeCodec() *wire.Codec { + var cdc = wire.NewCodec() + ibc.RegisterWire(cdc) + bank.RegisterWire(cdc) + stake.RegisterWire(cdc) + slashing.RegisterWire(cdc) + auth.RegisterWire(cdc) + sdk.RegisterWire(cdc) + wire.RegisterCrypto(cdc) + return cdc +} + +// application updates every end block +func (app *GaiaApp) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock { + tags := slashing.BeginBlocker(ctx, req, app.slashingKeeper) + + return abci.ResponseBeginBlock{ + Tags: tags.ToKVPairs(), + } +} + +// application updates every end block +func (app *GaiaApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock { + validatorUpdates := stake.EndBlocker(ctx, app.stakeKeeper) + + return abci.ResponseEndBlock{ + ValidatorUpdates: validatorUpdates, + } +} + +// custom logic for gaia initialization +func (app *GaiaApp) initChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { + stateJSON := req.AppStateBytes + // TODO is this now the whole genesis file? + + var genesisState gaia.GenesisState + err := app.cdc.UnmarshalJSON(stateJSON, &genesisState) + if err != nil { + panic(err) // TODO https://github.com/cosmos/cosmos-sdk/issues/468 + // return sdk.ErrGenesisParse("").TraceCause(err, "") + } + + // load the accounts + for _, gacc := range genesisState.Accounts { + acc := gacc.ToAccount() + app.accountMapper.SetAccount(ctx, acc) + } + + // load the initial stake information + stake.InitGenesis(ctx, app.stakeKeeper, genesisState.StakeData) + return abci.ResponseInitChain{} + +} diff --git a/cmd/gaia/cmd/gaiadebug/main.go b/cmd/gaia/cmd/gaiadebug/main.go new file mode 100644 index 0000000000..79045c07bb --- /dev/null +++ b/cmd/gaia/cmd/gaiadebug/main.go @@ -0,0 +1,159 @@ +package main + +import ( + "bytes" + "encoding/base64" + "encoding/hex" + "encoding/json" + "fmt" + "os" + "strconv" + "strings" + + gaia "github.com/cosmos/cosmos-sdk/cmd/gaia/app" + "github.com/cosmos/cosmos-sdk/x/auth" + "github.com/spf13/cobra" + crypto "github.com/tendermint/go-crypto" +) + +func init() { + rootCmd.AddCommand(txCmd) + rootCmd.AddCommand(pubkeyCmd) + rootCmd.AddCommand(hackCmd) + rootCmd.AddCommand(rawBytesCmd) +} + +var rootCmd = &cobra.Command{ + Use: "gaiadebug", + Short: "Gaia debug tool", + SilenceUsage: true, +} + +var txCmd = &cobra.Command{ + Use: "tx", + Short: "Decode a gaia tx from hex or base64", + RunE: runTxCmd, +} + +var pubkeyCmd = &cobra.Command{ + Use: "pubkey", + Short: "Decode a pubkey from hex or base64", + RunE: runPubKeyCmd, +} + +var hackCmd = &cobra.Command{ + Use: "hack", + Short: "Boilerplate to Hack on an existing state by scripting some Go...", + RunE: runHackCmd, +} + +var rawBytesCmd = &cobra.Command{ + Use: "raw-bytes", + Short: "Convert raw bytes output (eg. [10 21 13 255]) to hex", + RunE: runRawBytesCmd, +} + +func runRawBytesCmd(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return fmt.Errorf("Expected single arg") + } + stringBytes := args[0] + stringBytes = strings.Trim(stringBytes, "[") + stringBytes = strings.Trim(stringBytes, "]") + spl := strings.Split(stringBytes, " ") + + byteArray := []byte{} + for _, s := range spl { + b, err := strconv.Atoi(s) + if err != nil { + return err + } + byteArray = append(byteArray, byte(b)) + } + fmt.Printf("%X\n", byteArray) + return nil +} + +func runPubKeyCmd(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return fmt.Errorf("Expected single arg") + } + + pubkeyString := args[0] + + // try hex, then base64 + pubkeyBytes, err := hex.DecodeString(pubkeyString) + if err != nil { + var err2 error + pubkeyBytes, err2 = base64.StdEncoding.DecodeString(pubkeyString) + if err2 != nil { + return fmt.Errorf(`Expected hex or base64. Got errors: + hex: %v, + base64: %v + `, err, err2) + } + } + + cdc := gaia.MakeCodec() + var pubKey crypto.PubKeyEd25519 + copy(pubKey[:], pubkeyBytes) + pubKeyJSONBytes, err := cdc.MarshalJSON(pubKey) + if err != nil { + return err + } + fmt.Println("Address:", pubKey.Address()) + fmt.Printf("Hex: %X\n", pubkeyBytes) + fmt.Println("JSON (base64):", string(pubKeyJSONBytes)) + return nil +} + +func runTxCmd(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return fmt.Errorf("Expected single arg") + } + + txString := args[0] + + // try hex, then base64 + txBytes, err := hex.DecodeString(txString) + if err != nil { + var err2 error + txBytes, err2 = base64.StdEncoding.DecodeString(txString) + if err2 != nil { + return fmt.Errorf(`Expected hex or base64. Got errors: + hex: %v, + base64: %v + `, err, err2) + } + } + + var tx = auth.StdTx{} + cdc := gaia.MakeCodec() + + err = cdc.UnmarshalBinary(txBytes, &tx) + if err != nil { + return err + } + + bz, err := cdc.MarshalJSON(tx) + if err != nil { + return err + } + + buf := bytes.NewBuffer([]byte{}) + err = json.Indent(buf, bz, "", " ") + if err != nil { + return err + } + + fmt.Println(buf.String()) + return nil +} + +func main() { + err := rootCmd.Execute() + if err != nil { + os.Exit(1) + } + os.Exit(0) +} diff --git a/cmd/gaia/testnets/README.md b/cmd/gaia/testnets/README.md new file mode 100644 index 0000000000..b34926aede --- /dev/null +++ b/cmd/gaia/testnets/README.md @@ -0,0 +1,258 @@ +# Connect to the `gaia-6001` Testnet + +Note: We are aware this documentation is sub-par. We are working to +improve the tooling and the documentation to make this process as painless as +possible. In the meantime, join the +[Validator Chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org) +for technical support. Thanks very much for your patience. :) + +## Setting Up a New Node + +These instructions are for setting up a brand new full node from scratch. If you ran a full node on a previous testnet, please skip to [Upgrading From Previous Testnet](#upgrading-from-previous-testnet). + +### Install Go + +Install `go` by following the [official docs](https://golang.org/doc/install). +**Go 1.10+** is required for the Cosmos SDK. + +### Install Cosmos SDK + +Next, let's install the testnet's version of the Cosmos SDK. + +``` +mkdir -p $GOPATH/src/github.com/cosmos +cd $GOPATH/src/github.com/cosmos +git clone https://github.com/cosmos/cosmos-sdk +cd cosmos-sdk && git checkout v0.18.0 +make get_tools && make get_vendor_deps && make install +``` + +That will install the `gaiad` and `gaiacli` binaries. Verify that everything is OK: + +``` +gaiad version +0.18.0-eceb56b7 +``` + +### Node Setup + +Create the required configuration files: + +``` +gaiad init +``` + +Name your node by editing the `moniker` in `$HOME/.gaiad/config/config.toml`. Note that only ASCII characters are supported. Using Unicode renders your node unconnectable. + +``` +# A custom human readable name for this node +moniker = "" +``` + +Your full node has been initialized! Please skip to [Genesis & Seeds](#genesis--seeds). + +## Upgrading From Previous Testnet + +These instructions are for full nodes that have ran on previous testnets and would like to upgrade to the latest testnet. + +### Reset Data + +First, remove the outdated files and reset the data. + +``` +rm $HOME/.gaiad/config/addrbook.json $HOME/.gaiad/config/genesis.json +gaiad unsafe_reset_all +``` + +Your node is now in a pristine state while keeping the original `priv_validator.json` and `config.toml`. If you had any sentry nodes or full nodes setup before, +your node will still try to connect to them, but may fail if they haven't also +been upgraded. + +**WARNING:** Make sure that every node has a unique `priv_validator.json`. Do not copy the `priv_validator.json` from an old node to multiple new nodes. Running two nodes with the same `priv_validator.json` will cause you to double sign. + +### Software Upgrade + +Now it is time to upgrade the software: + +``` +cd $GOPATH/src/github.com/cosmos/cosmos-sdk +git fetch --all && git checkout v0.18.0 +make update_tools && make get_vendor_deps && make install +``` + +Your full node has been cleanly upgraded! + +## Genesis & Seeds + +### Copy the Genesis File + +Copy the testnet's `genesis.json` file and place it in `gaiad`'s config directory. + +``` +mkdir -p $HOME/.gaiad/config +cp -a $GOPATH/src/github.com/cosmos/cosmos-sdk/cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json +``` + +### Add Seed Nodes + +Your node needs to know how to find peers. You'll need to add healthy seed nodes to `$HOME/.gaiad/config/config.toml`. Here are some seed nodes you can use: + +``` +# Comma separated list of seed nodes to connect to +seeds = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656" +``` + +You can also [ask other validators](https://riot.im/app/#/room/#cosmos_validators:matrix.org) for a persistent peer and add it under the `persistent_peers` key. For more information on seeds and peers, [read this](https://github.com/tendermint/tendermint/blob/develop/docs/using-tendermint.md#peers). + +## Run a Full Node + +Start the full node with this command: + +``` +gaiad start +``` + +Check that everything is running smoothly: + +``` +gaiacli status +``` + +View the status of the network with the [Cosmos Explorer](https://explorecosmos.network). Once your full node syncs up to the current block height, you should see it appear on the [list of full nodes](https://explorecosmos.network/validators). If it doesn't show up, that's ok--the Explorer does not connect to every node. + +## Generate Keys + +You'll need a private and public key pair \(a.k.a. `sk, pk` respectively\) to be able to receive funds, send txs, bond tx, etc. + +To generate a new key \(default _ed25519_ elliptic curve\): + +``` +gaiacli keys add +``` + +Next, you will have to create a passphrase. Save the _seed_ _phrase_ in a safe place in case you forget the password. + +If you check your private keys, you'll now see ``: + +``` +gaiacli keys show +``` + +You can see all your available keys by typing: + +``` +gaiacli keys list +``` + +View the validator pubkey for your node by typing: + +``` +gaiad tendermint show_validator +``` + +Save your address and pubkey to environment variables for later use: + +``` +MYADDR= +MYPUBKEY= +``` + +**WARNING:** We strongly recommend NOT using the same passphrase for multiple keys. The Tendermint team and the Interchain Foundation will not be responsible for the loss of funds. + +## Get Tokens + +The best way to get tokens is from the [Cosmos Testnet Faucet](https://faucetcosmos.network). If the faucet is not working for you, try asking [#cosmos-validators](https://riot.im/app/#/room/#cosmos-validators:matrix.org). + +After receiving tokens to your address, you can view your account's balance by typing: + +``` +gaiacli account +``` + +Note: When you query an account balance with zero tokens, you will get this error: `No account with address was found in the state.` This is expected! We're working on improving our error messages. + +## Send Tokens + +``` +gaiacli send --amount=10faucetToken --chain-id= --name= --to= +``` + +Note: The `--amount` flag accepts the format `--amount=`. + +Now, view the updated balances of the origin and destination accounts: + +``` +gaiacli account +gaiacli account +``` + +You can also check your balance at a given block by using the `--block` flag: + +``` +gaiacli account --block= +``` + +## Run a Validator Node + +[Validators](https://cosmos.network/validators) are responsible for committing new blocks to the blockchain through voting. A validator's stake is slashed if they become unavailable, double sign a transaction, or don't cast their votes. If you only want to run a full node, a VM in the cloud is fine. However, if you are want to become a validator for the Hub's `mainnet`, you should research hardened setups. Please read [Sentry Node Architecture](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#how-can-validators-protect-themselves-from-denial-of-service-attacks) to protect your node from DDOS and ensure high-availability. Also see the [technical requirements](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#technical-requirements)). There's also more info on our [website](https://cosmos.network/validators). + +Your `pubkey` can be used to create a new validator by staking tokens. You can find your validator pubkey by running: + +``` +gaiad tendermint show_validator +``` + +Next, craft your `gaiacli stake create-validator` command: + +``` +gaiacli stake create-validator --amount=5steak --pubkey= --address-validator= --moniker=satoshi --chain-id= --name= +``` + +You can add more information to the validator, such as`--website`, `--keybase-sig`, or `--details`. Here's how: + +``` +gaiacli stake edit-validator --details="To the cosmos !" --website="https://cosmos.network" +``` + +View the validator's information with this command: + +``` +gaiacli stake validator --address-validator= --chain-id= +``` + +To check that the validator is active, look for it here: + +``` +gaiacli advanced tendermint validator-set +``` + +**Note:** To be in the validator set, you need to have more total voting power than the 100th validator. + +## Delegating to a Validator + +On the upcoming mainnet, you can delegate `atom` to a validator. These [delegators](https://cosmos.network/resources/delegators) can receive part of the validator's fee revenue. Read more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). + +### Bond Tokens + +On the testnet, we delegate `steak` instead of `atom`. Here's how you can bond tokens to a testnet validator: + +``` +gaiacli stake delegate --amount=10steak --address-delegator= --address-validator= --name= --chain-id= +``` + +While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool. + +### Unbond Tokens + +If for any reason the validator misbehaves, or you want to unbond a certain amount of tokens, use this following command. You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\). + +``` +gaiacli stake unbond --address-delegator= --address-validator= --shares=MAX --name= --chain-id= +``` + +You can check your balance and your stake delegation to see that the unbonding went through successfully. + +``` +gaiacli account +gaiacli stake delegation --address-delegator= --address-validator= --chain-id= +``` diff --git a/cmd/gaia/testnets/STATUS.md b/cmd/gaia/testnets/STATUS.md new file mode 100644 index 0000000000..d53c49e092 --- /dev/null +++ b/cmd/gaia/testnets/STATUS.md @@ -0,0 +1,74 @@ +# TESTNET STATUS + +## *June 10, 2018, 8:30 EST* - Gaia-6001 consensus failure + +- Validator unbonding and revocation activity caused a consensus failure +- There is a bug in the staking module that must be fixed +- The team is taking its time to look into this and release a fix following a + proper protocol for hotfix upgrades to the testnet +- Please stay tuned! + +## *June 9, 2018, 14:00 EST* - New Release + +- Released gaia + [v0.18.0](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.18.0) with + update for Tendermint + [v0.20.0](https://github.com/tendermint/tendermint/releases/tag/v0.20.0) +- Includes bug fix for declaring candidacy from the command line + +## *June 8, 2018, 23:30 EST* - Gaia-6001 is making blocks + +- +2/3 of the voting power is finally online for Gaia-6001 and it is making + blocks! +- This is a momentous achievement - a successful asynchronous decentralized + testnet launch +- Congrats everyone! + +## *June 8, 2018, 12:00 EST* - New Testnet Gaia-6001 + +- After some confusion around testnet deployment and a contention testnet + hardfork, a new genesis file and network was released for `gaia-6001` + +## *June 7, 2018, 9:00 EST* - New Testnet Gaia-6000 + +- Released a new `genesis.json` file for `gaia-6000` +- Initial validators include those that were most active in + the gaia-5001 testnet +- Join the network via gaia `v0.18.0-rc0` + +## *June 5, 2018, 21:00 EST* - New Release + +- Released gaia + [v0.17.5](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.17.5) + with update for Tendermint + [v0.19.9](https://github.com/tendermint/tendermint/releases/tag/v0.19.9) +- Fixes many bugs! + - evidence gossipping + - mempool deadlock + - WAL panic + - memory leak +- Please update to this to put a stop to the rampant invalid evidence gossiping + :) + +## *May 31, 2018, 14:00 EST* - New Release + +- Released gaia + [v0.17.4](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.17.4) with update for Tendermint v0.19.7 +- Fixes a WAL bug and some more +- Please update to this if you have trouble restarting a node + +## *May 31, 2018, 2:00 EST* - Testnet Halt + +- A validator equivocated last week and Evidence is being rampantly gossipped +- Peers that can't process the evidence (either too far behind or too far ahead) are disconnecting from the peers that + sent it, causing high peer turn-over +- The high peer turn-over may be causing a memory-leak, resulting in some nodes + crashing and the testnet halting +- We need to fix some issues in the EvidenceReactor to address this and also + investigate the possible memory-leak + +## *May 29, 2018* - New Release + +- Released v0.17.3 with update for Tendermint v0.19.6 +- Fixes fast-sync bug +- Please update to this to sync with the testnet diff --git a/cmd/gaia/testnets/gaia-5001/adrian.json b/cmd/gaia/testnets/gaia-5001/adrian.json new file mode 100644 index 0000000000..7ca99cb1e9 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/adrian.json @@ -0,0 +1,20 @@ +{ + "node_id": "1ebc5ca705b3ae1c06a0888ff1287ada82149dc3", + "ip": "138.68.77.24", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "power": 100, + "name": "adrian" + }, + "app_gen_tx": { + "name": "default", + "address": "D9C12CB5186FE0018179742FD3110EE534C63460", + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/anton.json b/cmd/gaia/testnets/gaia-5001/anton.json new file mode 100644 index 0000000000..701e858874 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/anton.json @@ -0,0 +1,20 @@ +{ + "node_id": "c272ae3cff7558db2c6195eea38fd43fd08406dc", + "ip": "206.189.31.178", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI=" + }, + "power": 100, + "name": "anton" + }, + "app_gen_tx": { + "name": "default", + "address": "E766088FD171906289617F60BF0014C46F0F85EC", + "pub_key": { + "type": "AC26791624DE60", + "value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/aurel.json b/cmd/gaia/testnets/gaia-5001/aurel.json new file mode 100644 index 0000000000..0c2ea81668 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/aurel.json @@ -0,0 +1,20 @@ +{ + "node_id": "aef085c4bfed0c1ffc6705f2e1e3bf85e5164600", + "ip": "45.77.53.208", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "power": 100, + "name": "aurel" + }, + "app_gen_tx": { + "name": "aurel", + "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/bucky.json b/cmd/gaia/testnets/gaia-5001/bucky.json new file mode 100644 index 0000000000..fc4bb51cde --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/bucky.json @@ -0,0 +1,20 @@ +{ + "node_id": "b0dd378c3fbc4c156cd6d302a799f0d2e4227201", + "ip": "159.89.121.174", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "power": 100, + "name": "bucky" + }, + "app_gen_tx": { + "name": "bucky", + "address": "935E48ED79F1006ED135553768E1D9A768747CF6", + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/cwgoes.json b/cmd/gaia/testnets/gaia-5001/cwgoes.json new file mode 100644 index 0000000000..dce7e20c9f --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/cwgoes.json @@ -0,0 +1,20 @@ +{ + "node_id": "e25603602d8cf8542570ad0e311d50f55f497f85", + "ip": "158.69.63.13", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "power": 100, + "name": "cwgoes" + }, + "app_gen_tx": { + "name": "cwgoes", + "address": "328FBB8EA315D070DF908982A5F91A3618001D20", + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/iris.json b/cmd/gaia/testnets/gaia-5001/iris.json new file mode 100644 index 0000000000..1a1019672c --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/iris.json @@ -0,0 +1,20 @@ +{ + "node_id": "aabf05a67b2f399807dc602d05bf97b0ed283ac2", + "ip": "116.62.62.39", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "power": 100, + "name": "iris" + }, + "app_gen_tx": { + "name": "=suyu", + "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + } + } +} \ No newline at end of file diff --git a/cmd/gaia/testnets/gaia-5001/lino.json b/cmd/gaia/testnets/gaia-5001/lino.json new file mode 100644 index 0000000000..5bc98bb6ed --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/lino.json @@ -0,0 +1,20 @@ +{ + "node_id": "79466a03e9d4b4648a7dd8cead1fa7121ce76ee3", + "ip": "34.235.130.1", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "power": 100, + "name": "lino" + }, + "app_gen_tx": { + "name": "lino", + "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/pbostrom.json b/cmd/gaia/testnets/gaia-5001/pbostrom.json new file mode 100644 index 0000000000..59cd469504 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/pbostrom.json @@ -0,0 +1,20 @@ +{ + "node_id": "adb290585a2753bf1a520c76802b0dab3dffa895", + "ip": "34.201.21.179", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "power": 100, + "name": "pbostrom" + }, + "app_gen_tx": { + "name": "default", + "address": "109720515B4F8C0858DA3521E448262334534FFD", + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/poldsam.json b/cmd/gaia/testnets/gaia-5001/poldsam.json new file mode 100644 index 0000000000..8149a92592 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/poldsam.json @@ -0,0 +1,20 @@ +{ + "node_id": "678503e6c8f50db7279c7da3cb9b072aac4bc0d5", + "ip": "35.193.188.125", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "power": 100, + "name": "polsdam" + }, + "app_gen_tx": { + "name": "poldsam", + "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/staked.json b/cmd/gaia/testnets/gaia-5001/staked.json new file mode 100644 index 0000000000..f39cced6b8 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/staked.json @@ -0,0 +1,20 @@ +{ + "node_id": "3519f05985394107e0b2e285361b7e012adb1113", + "ip": "54.209.118.64", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ=" + }, + "power": 100, + "name": "staked" + }, + "app_gen_tx": { + "name": "default", + "address": "935E04662697134905706A4CCDB822AC6FC11C2E", + "pub_key": { + "type": "AC26791624DE60", + "value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/zach.json b/cmd/gaia/testnets/gaia-5001/zach.json new file mode 100644 index 0000000000..76a08cc925 --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/zach.json @@ -0,0 +1,20 @@ +{ + "node_id": "8a2802fb25d352f3e7e277559a4f683780c3ef22", + "ip": "167.99.191.184", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "power": 100, + "name": "" + }, + "app_gen_tx": { + "name": "zach", + "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-5001/zaki.json b/cmd/gaia/testnets/gaia-5001/zaki.json new file mode 100644 index 0000000000..956f2bf8ce --- /dev/null +++ b/cmd/gaia/testnets/gaia-5001/zaki.json @@ -0,0 +1,20 @@ +{ + "node_id": "30b45459e4881680c0ef1750fde136fefa6c3b98", + "ip": "35.184.182.143", + "validator": { + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "power": 100, + "name": "zaki" + }, + "app_gen_tx": { + "name": "zaki", + "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + } + } +} diff --git a/cmd/gaia/testnets/gaia-6000/genesis.json b/cmd/gaia/testnets/gaia-6000/genesis.json new file mode 100644 index 0000000000..aefab92869 --- /dev/null +++ b/cmd/gaia/testnets/gaia-6000/genesis.json @@ -0,0 +1,1459 @@ +{ + "genesis_time": "2018-05-15T18:29:12.38288148Z", + "chain_id": "gaia-6000", + "consensus_params": { + "block_size_params": { + "max_bytes": 22020096, + "max_txs": 100000, + "max_gas": -1 + }, + "tx_size_params": { + "max_bytes": 10240, + "max_gas": -1 + }, + "block_gossip_params": { + "block_part_size_bytes": 65536 + }, + "evidence_params": { + "max_age": 100000 + } + }, + "validators": [ + { + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "power": 1000, + "name": "adrian" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "power": 1000, + "name": "zaki" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" + }, + "power": 100, + "name": "staked" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "power": 1000, + "name": "polsdam" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "power": 1000, + "name": "lino" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "power": 100, + "name": "" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "power": 1000, + "name": "iris" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "power": 1000, + "name": "pbostrom" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "power": 1000, + "name": "aurel" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "power": 1000, + "name": "bucky" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "power": 100, + "name": "cwgoes" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" + }, + "power": 1000, + "name": "bdnet" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" + }, + "power": 1000, + "name": "melea-trust" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" + }, + "power": 1000, + "name": "naruemon" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" + }, + "power": 1000, + "name": "idoor" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" + }, + "power": 1000, + "name": "ATEAM1" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" + }, + "power": 1000, + "name": "figmatt" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" + }, + "power": 1000, + "name": "jla-bsd" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" + }, + "power": 1000, + "name": "Gold" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" + }, + "power": 1000, + "name": "nylira" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" + }, + "power": 1000, + "name": "BKCM" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" + }, + "power": 1000, + "name": "Dev's Validator" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" + }, + "power": 1000, + "name": "Staking Facilities" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" + }, + "power": 1000, + "name": "nuevax" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" + }, + "power": 1000, + "name": "vultr.guest" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" + }, + "power": 1000, + "name": "forebole" + } + ], + "app_hash": "", + "app_state": { + "accounts": [ + { + "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "coins": [ + { + "denom": "devToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "coins": [ + { + "denom": "adrianToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "109720515B4F8C0858DA3521E448262334534FFD", + "coins": [ + { + "denom": "defaultToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "coins": [ + { + "denom": "aurelToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "328FBB8EA315D070DF908982A5F91A3618001D20", + "coins": [ + { + "denom": "cwgoesToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "coins": [ + { + "denom": "BKCMToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "coins": [ + { + "denom": "BDToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "coins": [ + { + "denom": "suyuToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "coins": [ + { + "denom": "linoToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "coins": [ + { + "denom": "stakingToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "935E04662697134905706A4CCDB822AC6FC11C2E", + "coins": [ + { + "denom": "defaultToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "935E48ED79F1006ED135553768E1D9A768747CF6", + "coins": [ + { + "denom": "buckyToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", + "coins": [ + { + "denom": "kwunyeungToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "zachToken", + "amount": 1000 + } + ] + }, + { + "address": "A323EC45243D600204BA3D298E3C20322D08C84C", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "nuevaxToken", + "amount": 1000 + } + ] + }, + { + "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "dokiaToken", + "amount": 1000 + } + ] + }, + { + "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "forboleToken", + "amount": 1000 + } + ] + }, + { + "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "coins": [ + { + "denom": "steak", + "amount": 100 + }, + { + "denom": "pengToken", + "amount": 1000 + } + ] + }, + { + "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", + "coins": [ + { + "denom": "steak", + "amount": 900 + }, + { + "denom": "faucetToken", + "amount": 10000000 + } + ] + }, + { + "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "goldToken", + "amount": 100 + } + ] + }, + { + "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "jlaToken", + "amount": 100 + } + ] + }, + { + "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "figmattToken", + "amount": 100 + } + ] + }, + { + "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "ATEAM1Token", + "amount": 100 + } + ] + }, + { + "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "idoorToken", + "amount": 100 + } + ] + }, + { + "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "naruemonToken", + "amount": 100 + } + ] + }, + { + "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "zakiToken", + "amount": 1000 + } + ] + }, + { + "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "trustToken", + "amount": 1000 + } + ] + }, + { + "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "coins": [ + { + "denom": "poldsamToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + } + ], + "stake": { + "pool": { + "loose_unbonded_tokens": 2350, + "unbonded_tokens": 0, + "unbonding_tokens": 0, + "bonded_tokens": 25200, + "unbonded_shares": "0", + "unbonding_shares": "0", + "bonded_shares": "25200", + "inflation_last_time": 0, + "inflation": "9012837/100000000", + "date_last_commission_reset": 0, + "prev_bonded_shares": "0" + }, + "params": { + "inflation_rate_change": "13/100", + "inflation_max": "1/5", + "inflation_min": "7/100", + "goal_bonded": "67/100", + "max_validators": 100, + "bond_denom": "steak" + }, + "bonds": [ + { + "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", + "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", + "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", + "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", + "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", + "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "shares": "1000", + "height": 0 + } + ], + "validators": [ + { + "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "pub_key": { + "type": "AC26791624DE60", + "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" + }, + "description": { + "moniker": "Dev's Validator", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "109720515B4F8C0858DA3521E448262334534FFD", + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "description": { + "moniker": "", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "description": { + "moniker": "aurel", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "description": { + "moniker": "cwgoes", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "pub_key": { + "type": "AC26791624DE60", + "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" + }, + "description": { + "moniker": "BKCM", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "pub_key": { + "type": "AC26791624DE60", + "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" + }, + "description": { + "moniker": "bdnet", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "description": { + "moniker": "suyu", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "description": { + "moniker": "lino", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "pub_key": { + "type": "AC26791624DE60", + "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" + }, + "description": { + "moniker": "Staking Facilities", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", + "pub_key": { + "type": "AC26791624DE60", + "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" + }, + "description": { + "moniker": "default", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "description": { + "moniker": "bucky", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "description": { + "moniker": "zach", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", + "pub_key": { + "type": "AC26791624DE60", + "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" + }, + "description": { + "moniker": "nuevax", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "pub_key": { + "type": "AC26791624DE60", + "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" + }, + "description": { + "moniker": "vultr.guest", + "identity": "", + "website": "https://ion.dokia.capital/", + "details": "DokiaValidator" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "pub_key": { + "type": "AC26791624DE60", + "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" + }, + "description": { + "moniker": "forbole", + "identity": "", + "website": "https://www.forbole.com", + "details": "Recommend. Refer. Reward" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "pub_key": { + "type": "AC26791624DE60", + "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" + }, + "description": { + "moniker": "nylira", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "pub_key": { + "type": "AC26791624DE60", + "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" + }, + "description": { + "moniker": "Gold", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "pub_key": { + "type": "AC26791624DE60", + "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" + }, + "description": { + "moniker": "jla-bsd", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "pub_key": { + "type": "AC26791624DE60", + "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" + }, + "description": { + "moniker": "figmatt", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "pub_key": { + "type": "AC26791624DE60", + "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" + }, + "description": { + "moniker": "ATEAM1", + "identity": "", + "website": "", + "details": "ATEAM1" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "pub_key": { + "type": "AC26791624DE60", + "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" + }, + "description": { + "moniker": "idoor", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "pub_key": { + "type": "AC26791624DE60", + "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" + }, + "description": { + "moniker": "naruemon", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "description": { + "moniker": "Adrian Brink - Cryptium Labs", + "identity": "", + "website": "https://cryptium.ch", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "description": { + "moniker": "zaki", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "pub_key": { + "type": "AC26791624DE60", + "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" + }, + "description": { + "moniker": "trust", + "identity": "", + "website": "http://cosmos-trust.com", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "description": { + "moniker": "proof-of-audit", + "identity": "", + "website": "https://proof-of-audit.com", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + } + ] + } + } +} diff --git a/cmd/gaia/testnets/gaia-6001/genesis.json b/cmd/gaia/testnets/gaia-6001/genesis.json new file mode 100644 index 0000000000..512d761bed --- /dev/null +++ b/cmd/gaia/testnets/gaia-6001/genesis.json @@ -0,0 +1,1459 @@ +{ + "genesis_time": "2018-05-15T18:29:12.38288148Z", + "chain_id": "gaia-6001", + "consensus_params": { + "block_size_params": { + "max_bytes": 22020096, + "max_txs": 100000, + "max_gas": -1 + }, + "tx_size_params": { + "max_bytes": 10240, + "max_gas": -1 + }, + "block_gossip_params": { + "block_part_size_bytes": 65536 + }, + "evidence_params": { + "max_age": 100000 + } + }, + "validators": [ + { + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "power": 1000, + "name": "adrian" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "power": 1000, + "name": "zaki" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" + }, + "power": 100, + "name": "staked" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "power": 1000, + "name": "polsdam" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "power": 1000, + "name": "lino" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "power": 100, + "name": "" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "power": 1000, + "name": "iris" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "power": 1000, + "name": "pbostrom" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "power": 1000, + "name": "aurel" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "power": 1000, + "name": "bucky" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "power": 100, + "name": "cwgoes" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" + }, + "power": 1000, + "name": "bdnet" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" + }, + "power": 1000, + "name": "melea-trust" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" + }, + "power": 1000, + "name": "naruemon" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" + }, + "power": 1000, + "name": "idoor" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" + }, + "power": 1000, + "name": "ATEAM1" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" + }, + "power": 1000, + "name": "figmatt" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" + }, + "power": 1000, + "name": "jla-bsd" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" + }, + "power": 1000, + "name": "Gold" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" + }, + "power": 1000, + "name": "nylira" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" + }, + "power": 1000, + "name": "BKCM" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" + }, + "power": 1000, + "name": "Dev's Validator" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" + }, + "power": 1000, + "name": "Staking Facilities" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" + }, + "power": 1000, + "name": "nuevax" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" + }, + "power": 1000, + "name": "vultr.guest" + }, + { + "pub_key": { + "type": "AC26791624DE60", + "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" + }, + "power": 1000, + "name": "forebole" + } + ], + "app_hash": "", + "app_state": { + "accounts": [ + { + "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "coins": [ + { + "denom": "devToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "coins": [ + { + "denom": "adrianToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "109720515B4F8C0858DA3521E448262334534FFD", + "coins": [ + { + "denom": "defaultToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "coins": [ + { + "denom": "aurelToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "328FBB8EA315D070DF908982A5F91A3618001D20", + "coins": [ + { + "denom": "cwgoesToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "coins": [ + { + "denom": "BKCMToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "coins": [ + { + "denom": "BDToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "coins": [ + { + "denom": "suyuToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "coins": [ + { + "denom": "linoToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "coins": [ + { + "denom": "stakingToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "935E04662697134905706A4CCDB822AC6FC11C2E", + "coins": [ + { + "denom": "defaultToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "935E48ED79F1006ED135553768E1D9A768747CF6", + "coins": [ + { + "denom": "buckyToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", + "coins": [ + { + "denom": "kwunyeungToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + }, + { + "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "zachToken", + "amount": 1000 + } + ] + }, + { + "address": "A323EC45243D600204BA3D298E3C20322D08C84C", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "nuevaxToken", + "amount": 1000 + } + ] + }, + { + "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "dokiaToken", + "amount": 1000 + } + ] + }, + { + "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "forboleToken", + "amount": 1000 + } + ] + }, + { + "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "coins": [ + { + "denom": "steak", + "amount": 100 + }, + { + "denom": "pengToken", + "amount": 1000 + } + ] + }, + { + "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", + "coins": [ + { + "denom": "steak", + "amount": 900 + }, + { + "denom": "faucetToken", + "amount": 10000000 + } + ] + }, + { + "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "goldToken", + "amount": 100 + } + ] + }, + { + "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "jlaToken", + "amount": 100 + } + ] + }, + { + "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "figmattToken", + "amount": 100 + } + ] + }, + { + "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "ATEAM1Token", + "amount": 100 + } + ] + }, + { + "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "idoorToken", + "amount": 100 + } + ] + }, + { + "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "naruemonToken", + "amount": 100 + } + ] + }, + { + "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "zakiToken", + "amount": 1000 + } + ] + }, + { + "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "coins": [ + { + "denom": "steak", + "amount": 50 + }, + { + "denom": "trustToken", + "amount": 1000 + } + ] + }, + { + "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "coins": [ + { + "denom": "poldsamToken", + "amount": 1000 + }, + { + "denom": "steak", + "amount": 50 + } + ] + } + ], + "stake": { + "pool": { + "loose_unbonded_tokens": 2300, + "unbonded_tokens": 0, + "unbonding_tokens": 0, + "bonded_tokens": 23300, + "unbonded_shares": "0", + "unbonding_shares": "0", + "bonded_shares": "23300", + "inflation_last_time": 0, + "inflation": "9012837/100000000", + "date_last_commission_reset": 0, + "prev_bonded_shares": "0" + }, + "params": { + "inflation_rate_change": "13/100", + "inflation_max": "1/5", + "inflation_min": "7/100", + "goal_bonded": "67/100", + "max_validators": 100, + "bond_denom": "steak" + }, + "bonds": [ + { + "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", + "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", + "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", + "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", + "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "shares": "100", + "height": 0 + }, + { + "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", + "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "shares": "1000", + "height": 0 + }, + { + "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "shares": "1000", + "height": 0 + } + ], + "validators": [ + { + "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", + "pub_key": { + "type": "AC26791624DE60", + "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" + }, + "description": { + "moniker": "Dev's Validator", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "109720515B4F8C0858DA3521E448262334534FFD", + "pub_key": { + "type": "AC26791624DE60", + "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" + }, + "description": { + "moniker": "", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", + "pub_key": { + "type": "AC26791624DE60", + "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" + }, + "description": { + "moniker": "aurel", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", + "pub_key": { + "type": "AC26791624DE60", + "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" + }, + "description": { + "moniker": "cwgoes", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", + "pub_key": { + "type": "AC26791624DE60", + "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" + }, + "description": { + "moniker": "BKCM", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", + "pub_key": { + "type": "AC26791624DE60", + "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" + }, + "description": { + "moniker": "bdnet", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", + "pub_key": { + "type": "AC26791624DE60", + "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" + }, + "description": { + "moniker": "suyu", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", + "pub_key": { + "type": "AC26791624DE60", + "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" + }, + "description": { + "moniker": "lino", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", + "pub_key": { + "type": "AC26791624DE60", + "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" + }, + "description": { + "moniker": "Staking Facilities", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", + "pub_key": { + "type": "AC26791624DE60", + "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" + }, + "description": { + "moniker": "default", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", + "pub_key": { + "type": "AC26791624DE60", + "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" + }, + "description": { + "moniker": "bucky", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", + "pub_key": { + "type": "AC26791624DE60", + "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" + }, + "description": { + "moniker": "zach", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "100" + }, + "delegator_shares": "100", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", + "pub_key": { + "type": "AC26791624DE60", + "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" + }, + "description": { + "moniker": "nuevax", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", + "pub_key": { + "type": "AC26791624DE60", + "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" + }, + "description": { + "moniker": "vultr.guest", + "identity": "", + "website": "https://ion.dokia.capital/", + "details": "DokiaValidator" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", + "pub_key": { + "type": "AC26791624DE60", + "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" + }, + "description": { + "moniker": "forbole", + "identity": "", + "website": "https://www.forbole.com", + "details": "Recommend. Refer. Reward" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", + "pub_key": { + "type": "AC26791624DE60", + "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" + }, + "description": { + "moniker": "nylira", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", + "pub_key": { + "type": "AC26791624DE60", + "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" + }, + "description": { + "moniker": "Gold", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", + "pub_key": { + "type": "AC26791624DE60", + "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" + }, + "description": { + "moniker": "jla-bsd", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", + "pub_key": { + "type": "AC26791624DE60", + "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" + }, + "description": { + "moniker": "figmatt", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", + "pub_key": { + "type": "AC26791624DE60", + "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" + }, + "description": { + "moniker": "ATEAM1", + "identity": "", + "website": "", + "details": "ATEAM1" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", + "pub_key": { + "type": "AC26791624DE60", + "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" + }, + "description": { + "moniker": "idoor", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", + "pub_key": { + "type": "AC26791624DE60", + "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" + }, + "description": { + "moniker": "naruemon", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", + "pub_key": { + "type": "AC26791624DE60", + "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" + }, + "description": { + "moniker": "Adrian Brink - Cryptium Labs", + "identity": "", + "website": "https://cryptium.ch", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", + "pub_key": { + "type": "AC26791624DE60", + "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" + }, + "description": { + "moniker": "zaki", + "identity": "", + "website": "", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", + "pub_key": { + "type": "AC26791624DE60", + "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" + }, + "description": { + "moniker": "trust", + "identity": "", + "website": "http://cosmos-trust.com", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + }, + { + "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", + "pub_key": { + "type": "AC26791624DE60", + "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" + }, + "description": { + "moniker": "proof-of-audit", + "identity": "", + "website": "https://proof-of-audit.com", + "details": "" + }, + "revoked": false, + "pool_shares": { + "status": 2, + "amount": "1000" + }, + "delegator_shares": "1000", + "bond_height": 0, + "bond_intra_tx_counter": 0, + "commision": "0/1", + "commission_max": "0/1", + "commission_change_rate": "0/1", + "commission_change_rate_today": "0/1", + "prev_bonded_shares": "0/1" + } + ] + } + } +} diff --git a/version/version.go b/version/version.go index 116f1ff287..20074c7bcd 100644 --- a/version/version.go +++ b/version/version.go @@ -9,7 +9,7 @@ const Maj = "0" const Min = "18" const Fix = "0" -const Version = "0.18.0-dev" +const Version = "0.18.0" // GitCommit set by build flags var GitCommit = "" From 219a16c6de8641c59785688fdb9099acd4437bd6 Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Wed, 13 Jun 2018 09:57:54 +0200 Subject: [PATCH 29/31] Revert "Merge PR #1232: Bucky/gaiadebug" This reverts commit 37bba35c91e7ade8f7a160ceb2c37b322fed42f1. --- CHANGELOG.md | 21 +- Makefile | 5 +- README.md | 8 - client/lcd/lcd_test.go | 7 +- cmd/gaia/cmd/gaiadebug/hack.go | 243 ---- cmd/gaia/cmd/gaiadebug/main.go | 159 --- cmd/gaia/testnets/README.md | 258 ---- cmd/gaia/testnets/STATUS.md | 74 -- cmd/gaia/testnets/gaia-5001/adrian.json | 20 - cmd/gaia/testnets/gaia-5001/anton.json | 20 - cmd/gaia/testnets/gaia-5001/aurel.json | 20 - cmd/gaia/testnets/gaia-5001/bucky.json | 20 - cmd/gaia/testnets/gaia-5001/cwgoes.json | 20 - cmd/gaia/testnets/gaia-5001/iris.json | 20 - cmd/gaia/testnets/gaia-5001/lino.json | 20 - cmd/gaia/testnets/gaia-5001/pbostrom.json | 20 - cmd/gaia/testnets/gaia-5001/poldsam.json | 20 - cmd/gaia/testnets/gaia-5001/staked.json | 20 - cmd/gaia/testnets/gaia-5001/zach.json | 20 - cmd/gaia/testnets/gaia-5001/zaki.json | 20 - cmd/gaia/testnets/gaia-6000/genesis.json | 1459 --------------------- cmd/gaia/testnets/gaia-6001/genesis.json | 1459 --------------------- version/version.go | 2 +- 23 files changed, 6 insertions(+), 3929 deletions(-) delete mode 100644 cmd/gaia/cmd/gaiadebug/hack.go delete mode 100644 cmd/gaia/cmd/gaiadebug/main.go delete mode 100644 cmd/gaia/testnets/README.md delete mode 100644 cmd/gaia/testnets/STATUS.md delete mode 100644 cmd/gaia/testnets/gaia-5001/adrian.json delete mode 100644 cmd/gaia/testnets/gaia-5001/anton.json delete mode 100644 cmd/gaia/testnets/gaia-5001/aurel.json delete mode 100644 cmd/gaia/testnets/gaia-5001/bucky.json delete mode 100644 cmd/gaia/testnets/gaia-5001/cwgoes.json delete mode 100644 cmd/gaia/testnets/gaia-5001/iris.json delete mode 100644 cmd/gaia/testnets/gaia-5001/lino.json delete mode 100644 cmd/gaia/testnets/gaia-5001/pbostrom.json delete mode 100644 cmd/gaia/testnets/gaia-5001/poldsam.json delete mode 100644 cmd/gaia/testnets/gaia-5001/staked.json delete mode 100644 cmd/gaia/testnets/gaia-5001/zach.json delete mode 100644 cmd/gaia/testnets/gaia-5001/zaki.json delete mode 100644 cmd/gaia/testnets/gaia-6000/genesis.json delete mode 100644 cmd/gaia/testnets/gaia-6001/genesis.json diff --git a/CHANGELOG.md b/CHANGELOG.md index f40117f82d..300b71fb6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,7 @@ FIXES ## 0.18.0 -*June 9, 2018* +_2018-06-05_ BREAKING CHANGES @@ -87,27 +87,8 @@ BUG FIXES * query sequence via account store * fixed duplicate pub_key in stake.Validator * Auto-sequencing now works correctly -* [gaiacli] Fix error message when account isn't found when running gaiacli account -## 0.17.5 - -*June 5, 2018* - -Update to Tendermint v0.19.9 (Fix evidence reactor, mempool deadlock, WAL panic, -memory leak) - -## 0.17.4 - -*May 31, 2018* - -Update to Tendermint v0.19.7 (WAL fixes and more) - -## 0.17.3 - -*May 29, 2018* - -Update to Tendermint v0.19.6 (fix fast-sync halt) ## 0.17.5 diff --git a/Makefile b/Makefile index c0d18c4a39..d6444b0b62 100644 --- a/Makefile +++ b/Makefile @@ -46,9 +46,6 @@ install_examples: go install $(BUILD_FLAGS) ./examples/democoin/cmd/democoind go install $(BUILD_FLAGS) ./examples/democoin/cmd/democli -install_debug: - go install $(BUILD_FLAGS) ./cmd/gaia/cmd/gaiadebug - dist: @bash publish/dist.sh @bash publish/publish.sh @@ -160,4 +157,4 @@ remotenet-status: # To avoid unintended conflicts with file names, always add to .PHONY # unless there is a reason not to. # https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html -.PHONY: build build_examples install install_examples install_debug dist check_tools get_tools get_vendor_deps draw_deps test test_cli test_unit test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update remotenet-start remotenet-stop remotenet-status +.PHONY: build build_examples install install_examples dist check_tools get_tools get_vendor_deps draw_deps test test_cli test_unit test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update remotenet-start remotenet-stop remotenet-status diff --git a/README.md b/README.md index 3af98fb4f2..3faf2c8afd 100644 --- a/README.md +++ b/README.md @@ -18,14 +18,6 @@ master | [![CircleCI](https://circleci.com/gh/cosmos/cosmos-sdk/tree/master.s **Note**: Requires [Go 1.10+](https://golang.org/dl/) -## Testnet - -For more information on connecting to the testnet, see -[cmd/gaia/testnets](/cmd/gaia/testnets) - -For the latest status of the testnet, see the [status -file](/cmd/gaia/testnets/STATUS.md). - ## Overview diff --git a/client/lcd/lcd_test.go b/client/lcd/lcd_test.go index ba2937e050..946f70bbcb 100644 --- a/client/lcd/lcd_test.go +++ b/client/lcd/lcd_test.go @@ -396,10 +396,9 @@ func TestBonding(t *testing.T) { // TODO fix shares fn in staking // query sender - //acc := getAccount(t, sendAddr) - //coins := acc.GetCoins() - //assert.Equal(t, int64(98), coins.AmountOf(coinDenom)) - + //acc = getAccount(t, port, addr) + //coins = acc.GetCoins() + //assert.Equal(t, int64(70), coins.AmountOf(denom)) } //_____________________________________________________________________________ diff --git a/cmd/gaia/cmd/gaiadebug/hack.go b/cmd/gaia/cmd/gaiadebug/hack.go deleted file mode 100644 index 2c84184bf7..0000000000 --- a/cmd/gaia/cmd/gaiadebug/hack.go +++ /dev/null @@ -1,243 +0,0 @@ -package main - -import ( - "encoding/base64" - "encoding/hex" - "fmt" - "os" - "path" - - "github.com/spf13/cobra" - abci "github.com/tendermint/abci/types" - crypto "github.com/tendermint/go-crypto" - cmn "github.com/tendermint/tmlibs/common" - dbm "github.com/tendermint/tmlibs/db" - "github.com/tendermint/tmlibs/log" - - bam "github.com/cosmos/cosmos-sdk/baseapp" - sdk "github.com/cosmos/cosmos-sdk/types" - - "github.com/cosmos/cosmos-sdk/wire" - "github.com/cosmos/cosmos-sdk/x/auth" - "github.com/cosmos/cosmos-sdk/x/bank" - "github.com/cosmos/cosmos-sdk/x/ibc" - "github.com/cosmos/cosmos-sdk/x/slashing" - "github.com/cosmos/cosmos-sdk/x/stake" - - gaia "github.com/cosmos/cosmos-sdk/cmd/gaia/app" -) - -func runHackCmd(cmd *cobra.Command, args []string) error { - - if len(args) != 1 { - return fmt.Errorf("Expected 1 arg") - } - - // ".gaiad" - dataDir := args[0] - dataDir = path.Join(dataDir, "data") - - // load the app - logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) - db, err := dbm.NewGoLevelDB("gaia", dataDir) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - app := NewGaiaApp(logger, db) - - // print some info - id := app.LastCommitID() - lastBlockHeight := app.LastBlockHeight() - fmt.Println("ID", id) - fmt.Println("LastBlockHeight", lastBlockHeight) - - //---------------------------------------------------- - // XXX: start hacking! - //---------------------------------------------------- - // eg. gaia-6001 testnet bug - // We paniced when iterating through the "bypower" keys. - // The following powerKey was there, but the corresponding "trouble" validator did not exist. - // So here we do a binary search on the past states to find when the powerKey first showed up ... - - // owner of the validator the bonds, gets revoked, later unbonds, and then later is still found in the bypower store - trouble := hexToBytes("D3DC0FF59F7C3B548B7AFA365561B87FD0208AF8") - // this is his "bypower" key - powerKey := hexToBytes("05303030303030303030303033FFFFFFFFFFFF4C0C0000FFFED3DC0FF59F7C3B548B7AFA365561B87FD0208AF8") - - topHeight := lastBlockHeight - bottomHeight := int64(0) - checkHeight := topHeight - for { - // load the given version of the state - err = app.LoadVersion(checkHeight, app.keyMain) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - ctx := app.NewContext(true, abci.Header{}) - - // check for the powerkey and the validator from the store - store := ctx.KVStore(app.keyStake) - res := store.Get(powerKey) - val, _ := app.stakeKeeper.GetValidator(ctx, trouble) - fmt.Println("checking height", checkHeight, res, val) - if res == nil { - bottomHeight = checkHeight - } else { - topHeight = checkHeight - } - checkHeight = (topHeight + bottomHeight) / 2 - } -} - -func base64ToPub(b64 string) crypto.PubKeyEd25519 { - data, _ := base64.StdEncoding.DecodeString(b64) - var pubKey crypto.PubKeyEd25519 - copy(pubKey[:], data) - return pubKey - -} - -func hexToBytes(h string) []byte { - trouble, _ := hex.DecodeString(h) - return trouble - -} - -//-------------------------------------------------------------------------------- -// NOTE: This is all copied from gaia/app/app.go -// so we can access internal fields! - -const ( - appName = "GaiaApp" -) - -// default home directories for expected binaries -var ( - DefaultCLIHome = os.ExpandEnv("$HOME/.gaiacli") - DefaultNodeHome = os.ExpandEnv("$HOME/.gaiad") -) - -// Extended ABCI application -type GaiaApp struct { - *bam.BaseApp - cdc *wire.Codec - - // keys to access the substores - keyMain *sdk.KVStoreKey - keyAccount *sdk.KVStoreKey - keyIBC *sdk.KVStoreKey - keyStake *sdk.KVStoreKey - keySlashing *sdk.KVStoreKey - - // Manage getting and setting accounts - accountMapper auth.AccountMapper - feeCollectionKeeper auth.FeeCollectionKeeper - coinKeeper bank.Keeper - ibcMapper ibc.Mapper - stakeKeeper stake.Keeper - slashingKeeper slashing.Keeper -} - -func NewGaiaApp(logger log.Logger, db dbm.DB) *GaiaApp { - cdc := MakeCodec() - - // create your application object - var app = &GaiaApp{ - BaseApp: bam.NewBaseApp(appName, cdc, logger, db), - cdc: cdc, - keyMain: sdk.NewKVStoreKey("main"), - keyAccount: sdk.NewKVStoreKey("acc"), - keyIBC: sdk.NewKVStoreKey("ibc"), - keyStake: sdk.NewKVStoreKey("stake"), - keySlashing: sdk.NewKVStoreKey("slashing"), - } - - // define the accountMapper - app.accountMapper = auth.NewAccountMapper( - app.cdc, - app.keyAccount, // target store - &auth.BaseAccount{}, // prototype - ) - - // add handlers - app.coinKeeper = bank.NewKeeper(app.accountMapper) - app.ibcMapper = ibc.NewMapper(app.cdc, app.keyIBC, app.RegisterCodespace(ibc.DefaultCodespace)) - app.stakeKeeper = stake.NewKeeper(app.cdc, app.keyStake, app.coinKeeper, app.RegisterCodespace(stake.DefaultCodespace)) - app.slashingKeeper = slashing.NewKeeper(app.cdc, app.keySlashing, app.stakeKeeper, app.RegisterCodespace(slashing.DefaultCodespace)) - - // register message routes - app.Router(). - AddRoute("bank", bank.NewHandler(app.coinKeeper)). - AddRoute("ibc", ibc.NewHandler(app.ibcMapper, app.coinKeeper)). - AddRoute("stake", stake.NewHandler(app.stakeKeeper)) - - // initialize BaseApp - app.SetInitChainer(app.initChainer) - app.SetBeginBlocker(app.BeginBlocker) - app.SetEndBlocker(app.EndBlocker) - app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, app.feeCollectionKeeper)) - app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake, app.keySlashing) - err := app.LoadLatestVersion(app.keyMain) - if err != nil { - cmn.Exit(err.Error()) - } - - return app -} - -// custom tx codec -func MakeCodec() *wire.Codec { - var cdc = wire.NewCodec() - ibc.RegisterWire(cdc) - bank.RegisterWire(cdc) - stake.RegisterWire(cdc) - slashing.RegisterWire(cdc) - auth.RegisterWire(cdc) - sdk.RegisterWire(cdc) - wire.RegisterCrypto(cdc) - return cdc -} - -// application updates every end block -func (app *GaiaApp) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock { - tags := slashing.BeginBlocker(ctx, req, app.slashingKeeper) - - return abci.ResponseBeginBlock{ - Tags: tags.ToKVPairs(), - } -} - -// application updates every end block -func (app *GaiaApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock { - validatorUpdates := stake.EndBlocker(ctx, app.stakeKeeper) - - return abci.ResponseEndBlock{ - ValidatorUpdates: validatorUpdates, - } -} - -// custom logic for gaia initialization -func (app *GaiaApp) initChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { - stateJSON := req.AppStateBytes - // TODO is this now the whole genesis file? - - var genesisState gaia.GenesisState - err := app.cdc.UnmarshalJSON(stateJSON, &genesisState) - if err != nil { - panic(err) // TODO https://github.com/cosmos/cosmos-sdk/issues/468 - // return sdk.ErrGenesisParse("").TraceCause(err, "") - } - - // load the accounts - for _, gacc := range genesisState.Accounts { - acc := gacc.ToAccount() - app.accountMapper.SetAccount(ctx, acc) - } - - // load the initial stake information - stake.InitGenesis(ctx, app.stakeKeeper, genesisState.StakeData) - return abci.ResponseInitChain{} - -} diff --git a/cmd/gaia/cmd/gaiadebug/main.go b/cmd/gaia/cmd/gaiadebug/main.go deleted file mode 100644 index 79045c07bb..0000000000 --- a/cmd/gaia/cmd/gaiadebug/main.go +++ /dev/null @@ -1,159 +0,0 @@ -package main - -import ( - "bytes" - "encoding/base64" - "encoding/hex" - "encoding/json" - "fmt" - "os" - "strconv" - "strings" - - gaia "github.com/cosmos/cosmos-sdk/cmd/gaia/app" - "github.com/cosmos/cosmos-sdk/x/auth" - "github.com/spf13/cobra" - crypto "github.com/tendermint/go-crypto" -) - -func init() { - rootCmd.AddCommand(txCmd) - rootCmd.AddCommand(pubkeyCmd) - rootCmd.AddCommand(hackCmd) - rootCmd.AddCommand(rawBytesCmd) -} - -var rootCmd = &cobra.Command{ - Use: "gaiadebug", - Short: "Gaia debug tool", - SilenceUsage: true, -} - -var txCmd = &cobra.Command{ - Use: "tx", - Short: "Decode a gaia tx from hex or base64", - RunE: runTxCmd, -} - -var pubkeyCmd = &cobra.Command{ - Use: "pubkey", - Short: "Decode a pubkey from hex or base64", - RunE: runPubKeyCmd, -} - -var hackCmd = &cobra.Command{ - Use: "hack", - Short: "Boilerplate to Hack on an existing state by scripting some Go...", - RunE: runHackCmd, -} - -var rawBytesCmd = &cobra.Command{ - Use: "raw-bytes", - Short: "Convert raw bytes output (eg. [10 21 13 255]) to hex", - RunE: runRawBytesCmd, -} - -func runRawBytesCmd(cmd *cobra.Command, args []string) error { - if len(args) != 1 { - return fmt.Errorf("Expected single arg") - } - stringBytes := args[0] - stringBytes = strings.Trim(stringBytes, "[") - stringBytes = strings.Trim(stringBytes, "]") - spl := strings.Split(stringBytes, " ") - - byteArray := []byte{} - for _, s := range spl { - b, err := strconv.Atoi(s) - if err != nil { - return err - } - byteArray = append(byteArray, byte(b)) - } - fmt.Printf("%X\n", byteArray) - return nil -} - -func runPubKeyCmd(cmd *cobra.Command, args []string) error { - if len(args) != 1 { - return fmt.Errorf("Expected single arg") - } - - pubkeyString := args[0] - - // try hex, then base64 - pubkeyBytes, err := hex.DecodeString(pubkeyString) - if err != nil { - var err2 error - pubkeyBytes, err2 = base64.StdEncoding.DecodeString(pubkeyString) - if err2 != nil { - return fmt.Errorf(`Expected hex or base64. Got errors: - hex: %v, - base64: %v - `, err, err2) - } - } - - cdc := gaia.MakeCodec() - var pubKey crypto.PubKeyEd25519 - copy(pubKey[:], pubkeyBytes) - pubKeyJSONBytes, err := cdc.MarshalJSON(pubKey) - if err != nil { - return err - } - fmt.Println("Address:", pubKey.Address()) - fmt.Printf("Hex: %X\n", pubkeyBytes) - fmt.Println("JSON (base64):", string(pubKeyJSONBytes)) - return nil -} - -func runTxCmd(cmd *cobra.Command, args []string) error { - if len(args) != 1 { - return fmt.Errorf("Expected single arg") - } - - txString := args[0] - - // try hex, then base64 - txBytes, err := hex.DecodeString(txString) - if err != nil { - var err2 error - txBytes, err2 = base64.StdEncoding.DecodeString(txString) - if err2 != nil { - return fmt.Errorf(`Expected hex or base64. Got errors: - hex: %v, - base64: %v - `, err, err2) - } - } - - var tx = auth.StdTx{} - cdc := gaia.MakeCodec() - - err = cdc.UnmarshalBinary(txBytes, &tx) - if err != nil { - return err - } - - bz, err := cdc.MarshalJSON(tx) - if err != nil { - return err - } - - buf := bytes.NewBuffer([]byte{}) - err = json.Indent(buf, bz, "", " ") - if err != nil { - return err - } - - fmt.Println(buf.String()) - return nil -} - -func main() { - err := rootCmd.Execute() - if err != nil { - os.Exit(1) - } - os.Exit(0) -} diff --git a/cmd/gaia/testnets/README.md b/cmd/gaia/testnets/README.md deleted file mode 100644 index b34926aede..0000000000 --- a/cmd/gaia/testnets/README.md +++ /dev/null @@ -1,258 +0,0 @@ -# Connect to the `gaia-6001` Testnet - -Note: We are aware this documentation is sub-par. We are working to -improve the tooling and the documentation to make this process as painless as -possible. In the meantime, join the -[Validator Chat](https://riot.im/app/#/room/#cosmos_validators:matrix.org) -for technical support. Thanks very much for your patience. :) - -## Setting Up a New Node - -These instructions are for setting up a brand new full node from scratch. If you ran a full node on a previous testnet, please skip to [Upgrading From Previous Testnet](#upgrading-from-previous-testnet). - -### Install Go - -Install `go` by following the [official docs](https://golang.org/doc/install). -**Go 1.10+** is required for the Cosmos SDK. - -### Install Cosmos SDK - -Next, let's install the testnet's version of the Cosmos SDK. - -``` -mkdir -p $GOPATH/src/github.com/cosmos -cd $GOPATH/src/github.com/cosmos -git clone https://github.com/cosmos/cosmos-sdk -cd cosmos-sdk && git checkout v0.18.0 -make get_tools && make get_vendor_deps && make install -``` - -That will install the `gaiad` and `gaiacli` binaries. Verify that everything is OK: - -``` -gaiad version -0.18.0-eceb56b7 -``` - -### Node Setup - -Create the required configuration files: - -``` -gaiad init -``` - -Name your node by editing the `moniker` in `$HOME/.gaiad/config/config.toml`. Note that only ASCII characters are supported. Using Unicode renders your node unconnectable. - -``` -# A custom human readable name for this node -moniker = "" -``` - -Your full node has been initialized! Please skip to [Genesis & Seeds](#genesis--seeds). - -## Upgrading From Previous Testnet - -These instructions are for full nodes that have ran on previous testnets and would like to upgrade to the latest testnet. - -### Reset Data - -First, remove the outdated files and reset the data. - -``` -rm $HOME/.gaiad/config/addrbook.json $HOME/.gaiad/config/genesis.json -gaiad unsafe_reset_all -``` - -Your node is now in a pristine state while keeping the original `priv_validator.json` and `config.toml`. If you had any sentry nodes or full nodes setup before, -your node will still try to connect to them, but may fail if they haven't also -been upgraded. - -**WARNING:** Make sure that every node has a unique `priv_validator.json`. Do not copy the `priv_validator.json` from an old node to multiple new nodes. Running two nodes with the same `priv_validator.json` will cause you to double sign. - -### Software Upgrade - -Now it is time to upgrade the software: - -``` -cd $GOPATH/src/github.com/cosmos/cosmos-sdk -git fetch --all && git checkout v0.18.0 -make update_tools && make get_vendor_deps && make install -``` - -Your full node has been cleanly upgraded! - -## Genesis & Seeds - -### Copy the Genesis File - -Copy the testnet's `genesis.json` file and place it in `gaiad`'s config directory. - -``` -mkdir -p $HOME/.gaiad/config -cp -a $GOPATH/src/github.com/cosmos/cosmos-sdk/cmd/gaia/testnets/gaia-6001/genesis.json $HOME/.gaiad/config/genesis.json -``` - -### Add Seed Nodes - -Your node needs to know how to find peers. You'll need to add healthy seed nodes to `$HOME/.gaiad/config/config.toml`. Here are some seed nodes you can use: - -``` -# Comma separated list of seed nodes to connect to -seeds = "38aa9bec3998f12ae9088b21a2d910d19d565c27@gaia-6001.coinculture.net:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@seed.cosmos.cryptium.ch:46656,80a35a46ce09cfb31ee220c8141a25e73e0b239b@35.198.166.171:46656,032fa56301de335d835057fb6ad9f7ce2242a66d@165.227.236.213:46656" -``` - -You can also [ask other validators](https://riot.im/app/#/room/#cosmos_validators:matrix.org) for a persistent peer and add it under the `persistent_peers` key. For more information on seeds and peers, [read this](https://github.com/tendermint/tendermint/blob/develop/docs/using-tendermint.md#peers). - -## Run a Full Node - -Start the full node with this command: - -``` -gaiad start -``` - -Check that everything is running smoothly: - -``` -gaiacli status -``` - -View the status of the network with the [Cosmos Explorer](https://explorecosmos.network). Once your full node syncs up to the current block height, you should see it appear on the [list of full nodes](https://explorecosmos.network/validators). If it doesn't show up, that's ok--the Explorer does not connect to every node. - -## Generate Keys - -You'll need a private and public key pair \(a.k.a. `sk, pk` respectively\) to be able to receive funds, send txs, bond tx, etc. - -To generate a new key \(default _ed25519_ elliptic curve\): - -``` -gaiacli keys add -``` - -Next, you will have to create a passphrase. Save the _seed_ _phrase_ in a safe place in case you forget the password. - -If you check your private keys, you'll now see ``: - -``` -gaiacli keys show -``` - -You can see all your available keys by typing: - -``` -gaiacli keys list -``` - -View the validator pubkey for your node by typing: - -``` -gaiad tendermint show_validator -``` - -Save your address and pubkey to environment variables for later use: - -``` -MYADDR= -MYPUBKEY= -``` - -**WARNING:** We strongly recommend NOT using the same passphrase for multiple keys. The Tendermint team and the Interchain Foundation will not be responsible for the loss of funds. - -## Get Tokens - -The best way to get tokens is from the [Cosmos Testnet Faucet](https://faucetcosmos.network). If the faucet is not working for you, try asking [#cosmos-validators](https://riot.im/app/#/room/#cosmos-validators:matrix.org). - -After receiving tokens to your address, you can view your account's balance by typing: - -``` -gaiacli account -``` - -Note: When you query an account balance with zero tokens, you will get this error: `No account with address was found in the state.` This is expected! We're working on improving our error messages. - -## Send Tokens - -``` -gaiacli send --amount=10faucetToken --chain-id= --name= --to= -``` - -Note: The `--amount` flag accepts the format `--amount=`. - -Now, view the updated balances of the origin and destination accounts: - -``` -gaiacli account -gaiacli account -``` - -You can also check your balance at a given block by using the `--block` flag: - -``` -gaiacli account --block= -``` - -## Run a Validator Node - -[Validators](https://cosmos.network/validators) are responsible for committing new blocks to the blockchain through voting. A validator's stake is slashed if they become unavailable, double sign a transaction, or don't cast their votes. If you only want to run a full node, a VM in the cloud is fine. However, if you are want to become a validator for the Hub's `mainnet`, you should research hardened setups. Please read [Sentry Node Architecture](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#how-can-validators-protect-themselves-from-denial-of-service-attacks) to protect your node from DDOS and ensure high-availability. Also see the [technical requirements](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#technical-requirements)). There's also more info on our [website](https://cosmos.network/validators). - -Your `pubkey` can be used to create a new validator by staking tokens. You can find your validator pubkey by running: - -``` -gaiad tendermint show_validator -``` - -Next, craft your `gaiacli stake create-validator` command: - -``` -gaiacli stake create-validator --amount=5steak --pubkey= --address-validator= --moniker=satoshi --chain-id= --name= -``` - -You can add more information to the validator, such as`--website`, `--keybase-sig`, or `--details`. Here's how: - -``` -gaiacli stake edit-validator --details="To the cosmos !" --website="https://cosmos.network" -``` - -View the validator's information with this command: - -``` -gaiacli stake validator --address-validator= --chain-id= -``` - -To check that the validator is active, look for it here: - -``` -gaiacli advanced tendermint validator-set -``` - -**Note:** To be in the validator set, you need to have more total voting power than the 100th validator. - -## Delegating to a Validator - -On the upcoming mainnet, you can delegate `atom` to a validator. These [delegators](https://cosmos.network/resources/delegators) can receive part of the validator's fee revenue. Read more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). - -### Bond Tokens - -On the testnet, we delegate `steak` instead of `atom`. Here's how you can bond tokens to a testnet validator: - -``` -gaiacli stake delegate --amount=10steak --address-delegator= --address-validator= --name= --chain-id= -``` - -While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool. - -### Unbond Tokens - -If for any reason the validator misbehaves, or you want to unbond a certain amount of tokens, use this following command. You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\). - -``` -gaiacli stake unbond --address-delegator= --address-validator= --shares=MAX --name= --chain-id= -``` - -You can check your balance and your stake delegation to see that the unbonding went through successfully. - -``` -gaiacli account -gaiacli stake delegation --address-delegator= --address-validator= --chain-id= -``` diff --git a/cmd/gaia/testnets/STATUS.md b/cmd/gaia/testnets/STATUS.md deleted file mode 100644 index d53c49e092..0000000000 --- a/cmd/gaia/testnets/STATUS.md +++ /dev/null @@ -1,74 +0,0 @@ -# TESTNET STATUS - -## *June 10, 2018, 8:30 EST* - Gaia-6001 consensus failure - -- Validator unbonding and revocation activity caused a consensus failure -- There is a bug in the staking module that must be fixed -- The team is taking its time to look into this and release a fix following a - proper protocol for hotfix upgrades to the testnet -- Please stay tuned! - -## *June 9, 2018, 14:00 EST* - New Release - -- Released gaia - [v0.18.0](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.18.0) with - update for Tendermint - [v0.20.0](https://github.com/tendermint/tendermint/releases/tag/v0.20.0) -- Includes bug fix for declaring candidacy from the command line - -## *June 8, 2018, 23:30 EST* - Gaia-6001 is making blocks - -- +2/3 of the voting power is finally online for Gaia-6001 and it is making - blocks! -- This is a momentous achievement - a successful asynchronous decentralized - testnet launch -- Congrats everyone! - -## *June 8, 2018, 12:00 EST* - New Testnet Gaia-6001 - -- After some confusion around testnet deployment and a contention testnet - hardfork, a new genesis file and network was released for `gaia-6001` - -## *June 7, 2018, 9:00 EST* - New Testnet Gaia-6000 - -- Released a new `genesis.json` file for `gaia-6000` -- Initial validators include those that were most active in - the gaia-5001 testnet -- Join the network via gaia `v0.18.0-rc0` - -## *June 5, 2018, 21:00 EST* - New Release - -- Released gaia - [v0.17.5](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.17.5) - with update for Tendermint - [v0.19.9](https://github.com/tendermint/tendermint/releases/tag/v0.19.9) -- Fixes many bugs! - - evidence gossipping - - mempool deadlock - - WAL panic - - memory leak -- Please update to this to put a stop to the rampant invalid evidence gossiping - :) - -## *May 31, 2018, 14:00 EST* - New Release - -- Released gaia - [v0.17.4](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.17.4) with update for Tendermint v0.19.7 -- Fixes a WAL bug and some more -- Please update to this if you have trouble restarting a node - -## *May 31, 2018, 2:00 EST* - Testnet Halt - -- A validator equivocated last week and Evidence is being rampantly gossipped -- Peers that can't process the evidence (either too far behind or too far ahead) are disconnecting from the peers that - sent it, causing high peer turn-over -- The high peer turn-over may be causing a memory-leak, resulting in some nodes - crashing and the testnet halting -- We need to fix some issues in the EvidenceReactor to address this and also - investigate the possible memory-leak - -## *May 29, 2018* - New Release - -- Released v0.17.3 with update for Tendermint v0.19.6 -- Fixes fast-sync bug -- Please update to this to sync with the testnet diff --git a/cmd/gaia/testnets/gaia-5001/adrian.json b/cmd/gaia/testnets/gaia-5001/adrian.json deleted file mode 100644 index 7ca99cb1e9..0000000000 --- a/cmd/gaia/testnets/gaia-5001/adrian.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "1ebc5ca705b3ae1c06a0888ff1287ada82149dc3", - "ip": "138.68.77.24", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "power": 100, - "name": "adrian" - }, - "app_gen_tx": { - "name": "default", - "address": "D9C12CB5186FE0018179742FD3110EE534C63460", - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/anton.json b/cmd/gaia/testnets/gaia-5001/anton.json deleted file mode 100644 index 701e858874..0000000000 --- a/cmd/gaia/testnets/gaia-5001/anton.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "c272ae3cff7558db2c6195eea38fd43fd08406dc", - "ip": "206.189.31.178", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI=" - }, - "power": 100, - "name": "anton" - }, - "app_gen_tx": { - "name": "default", - "address": "E766088FD171906289617F60BF0014C46F0F85EC", - "pub_key": { - "type": "AC26791624DE60", - "value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/aurel.json b/cmd/gaia/testnets/gaia-5001/aurel.json deleted file mode 100644 index 0c2ea81668..0000000000 --- a/cmd/gaia/testnets/gaia-5001/aurel.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "aef085c4bfed0c1ffc6705f2e1e3bf85e5164600", - "ip": "45.77.53.208", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "power": 100, - "name": "aurel" - }, - "app_gen_tx": { - "name": "aurel", - "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/bucky.json b/cmd/gaia/testnets/gaia-5001/bucky.json deleted file mode 100644 index fc4bb51cde..0000000000 --- a/cmd/gaia/testnets/gaia-5001/bucky.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "b0dd378c3fbc4c156cd6d302a799f0d2e4227201", - "ip": "159.89.121.174", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "power": 100, - "name": "bucky" - }, - "app_gen_tx": { - "name": "bucky", - "address": "935E48ED79F1006ED135553768E1D9A768747CF6", - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/cwgoes.json b/cmd/gaia/testnets/gaia-5001/cwgoes.json deleted file mode 100644 index dce7e20c9f..0000000000 --- a/cmd/gaia/testnets/gaia-5001/cwgoes.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "e25603602d8cf8542570ad0e311d50f55f497f85", - "ip": "158.69.63.13", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "power": 100, - "name": "cwgoes" - }, - "app_gen_tx": { - "name": "cwgoes", - "address": "328FBB8EA315D070DF908982A5F91A3618001D20", - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/iris.json b/cmd/gaia/testnets/gaia-5001/iris.json deleted file mode 100644 index 1a1019672c..0000000000 --- a/cmd/gaia/testnets/gaia-5001/iris.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "aabf05a67b2f399807dc602d05bf97b0ed283ac2", - "ip": "116.62.62.39", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "power": 100, - "name": "iris" - }, - "app_gen_tx": { - "name": "=suyu", - "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - } - } -} \ No newline at end of file diff --git a/cmd/gaia/testnets/gaia-5001/lino.json b/cmd/gaia/testnets/gaia-5001/lino.json deleted file mode 100644 index 5bc98bb6ed..0000000000 --- a/cmd/gaia/testnets/gaia-5001/lino.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "79466a03e9d4b4648a7dd8cead1fa7121ce76ee3", - "ip": "34.235.130.1", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "power": 100, - "name": "lino" - }, - "app_gen_tx": { - "name": "lino", - "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/pbostrom.json b/cmd/gaia/testnets/gaia-5001/pbostrom.json deleted file mode 100644 index 59cd469504..0000000000 --- a/cmd/gaia/testnets/gaia-5001/pbostrom.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "adb290585a2753bf1a520c76802b0dab3dffa895", - "ip": "34.201.21.179", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "power": 100, - "name": "pbostrom" - }, - "app_gen_tx": { - "name": "default", - "address": "109720515B4F8C0858DA3521E448262334534FFD", - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/poldsam.json b/cmd/gaia/testnets/gaia-5001/poldsam.json deleted file mode 100644 index 8149a92592..0000000000 --- a/cmd/gaia/testnets/gaia-5001/poldsam.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "678503e6c8f50db7279c7da3cb9b072aac4bc0d5", - "ip": "35.193.188.125", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "power": 100, - "name": "polsdam" - }, - "app_gen_tx": { - "name": "poldsam", - "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/staked.json b/cmd/gaia/testnets/gaia-5001/staked.json deleted file mode 100644 index f39cced6b8..0000000000 --- a/cmd/gaia/testnets/gaia-5001/staked.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "3519f05985394107e0b2e285361b7e012adb1113", - "ip": "54.209.118.64", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ=" - }, - "power": 100, - "name": "staked" - }, - "app_gen_tx": { - "name": "default", - "address": "935E04662697134905706A4CCDB822AC6FC11C2E", - "pub_key": { - "type": "AC26791624DE60", - "value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/zach.json b/cmd/gaia/testnets/gaia-5001/zach.json deleted file mode 100644 index 76a08cc925..0000000000 --- a/cmd/gaia/testnets/gaia-5001/zach.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "8a2802fb25d352f3e7e277559a4f683780c3ef22", - "ip": "167.99.191.184", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "power": 100, - "name": "" - }, - "app_gen_tx": { - "name": "zach", - "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/zaki.json b/cmd/gaia/testnets/gaia-5001/zaki.json deleted file mode 100644 index 956f2bf8ce..0000000000 --- a/cmd/gaia/testnets/gaia-5001/zaki.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "30b45459e4881680c0ef1750fde136fefa6c3b98", - "ip": "35.184.182.143", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "power": 100, - "name": "zaki" - }, - "app_gen_tx": { - "name": "zaki", - "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-6000/genesis.json b/cmd/gaia/testnets/gaia-6000/genesis.json deleted file mode 100644 index aefab92869..0000000000 --- a/cmd/gaia/testnets/gaia-6000/genesis.json +++ /dev/null @@ -1,1459 +0,0 @@ -{ - "genesis_time": "2018-05-15T18:29:12.38288148Z", - "chain_id": "gaia-6000", - "consensus_params": { - "block_size_params": { - "max_bytes": 22020096, - "max_txs": 100000, - "max_gas": -1 - }, - "tx_size_params": { - "max_bytes": 10240, - "max_gas": -1 - }, - "block_gossip_params": { - "block_part_size_bytes": 65536 - }, - "evidence_params": { - "max_age": 100000 - } - }, - "validators": [ - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "power": 1000, - "name": "adrian" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "power": 1000, - "name": "zaki" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "power": 100, - "name": "staked" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "power": 1000, - "name": "polsdam" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "power": 1000, - "name": "lino" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "power": 100, - "name": "" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "power": 1000, - "name": "iris" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "power": 1000, - "name": "pbostrom" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "power": 1000, - "name": "aurel" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "power": 1000, - "name": "bucky" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "power": 100, - "name": "cwgoes" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "power": 1000, - "name": "bdnet" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "power": 1000, - "name": "melea-trust" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "power": 1000, - "name": "naruemon" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "power": 1000, - "name": "idoor" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "power": 1000, - "name": "ATEAM1" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "power": 1000, - "name": "figmatt" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "power": 1000, - "name": "jla-bsd" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "power": 1000, - "name": "Gold" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "power": 1000, - "name": "nylira" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "power": 1000, - "name": "BKCM" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "power": 1000, - "name": "Dev's Validator" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "power": 1000, - "name": "Staking Facilities" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "power": 1000, - "name": "nuevax" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "power": 1000, - "name": "vultr.guest" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "power": 1000, - "name": "forebole" - } - ], - "app_hash": "", - "app_state": { - "accounts": [ - { - "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "coins": [ - { - "denom": "devToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "coins": [ - { - "denom": "adrianToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "109720515B4F8C0858DA3521E448262334534FFD", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "coins": [ - { - "denom": "aurelToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "328FBB8EA315D070DF908982A5F91A3618001D20", - "coins": [ - { - "denom": "cwgoesToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "coins": [ - { - "denom": "BKCMToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "coins": [ - { - "denom": "BDToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "coins": [ - { - "denom": "suyuToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "coins": [ - { - "denom": "linoToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "coins": [ - { - "denom": "stakingToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E04662697134905706A4CCDB822AC6FC11C2E", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E48ED79F1006ED135553768E1D9A768747CF6", - "coins": [ - { - "denom": "buckyToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", - "coins": [ - { - "denom": "kwunyeungToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zachToken", - "amount": 1000 - } - ] - }, - { - "address": "A323EC45243D600204BA3D298E3C20322D08C84C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "nuevaxToken", - "amount": 1000 - } - ] - }, - { - "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "dokiaToken", - "amount": 1000 - } - ] - }, - { - "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "forboleToken", - "amount": 1000 - } - ] - }, - { - "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "coins": [ - { - "denom": "steak", - "amount": 100 - }, - { - "denom": "pengToken", - "amount": 1000 - } - ] - }, - { - "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", - "coins": [ - { - "denom": "steak", - "amount": 900 - }, - { - "denom": "faucetToken", - "amount": 10000000 - } - ] - }, - { - "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "goldToken", - "amount": 100 - } - ] - }, - { - "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "jlaToken", - "amount": 100 - } - ] - }, - { - "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "figmattToken", - "amount": 100 - } - ] - }, - { - "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "ATEAM1Token", - "amount": 100 - } - ] - }, - { - "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "idoorToken", - "amount": 100 - } - ] - }, - { - "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "naruemonToken", - "amount": 100 - } - ] - }, - { - "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zakiToken", - "amount": 1000 - } - ] - }, - { - "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "trustToken", - "amount": 1000 - } - ] - }, - { - "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "coins": [ - { - "denom": "poldsamToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - } - ], - "stake": { - "pool": { - "loose_unbonded_tokens": 2350, - "unbonded_tokens": 0, - "unbonding_tokens": 0, - "bonded_tokens": 25200, - "unbonded_shares": "0", - "unbonding_shares": "0", - "bonded_shares": "25200", - "inflation_last_time": 0, - "inflation": "9012837/100000000", - "date_last_commission_reset": 0, - "prev_bonded_shares": "0" - }, - "params": { - "inflation_rate_change": "13/100", - "inflation_max": "1/5", - "inflation_min": "7/100", - "goal_bonded": "67/100", - "max_validators": 100, - "bond_denom": "steak" - }, - "bonds": [ - { - "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "shares": "1000", - "height": 0 - } - ], - "validators": [ - { - "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "description": { - "moniker": "Dev's Validator", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "109720515B4F8C0858DA3521E448262334534FFD", - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "description": { - "moniker": "", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "description": { - "moniker": "aurel", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "description": { - "moniker": "cwgoes", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "description": { - "moniker": "BKCM", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "description": { - "moniker": "bdnet", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "description": { - "moniker": "suyu", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "description": { - "moniker": "lino", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "description": { - "moniker": "Staking Facilities", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "description": { - "moniker": "default", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "description": { - "moniker": "bucky", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "description": { - "moniker": "zach", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "description": { - "moniker": "nuevax", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "description": { - "moniker": "vultr.guest", - "identity": "", - "website": "https://ion.dokia.capital/", - "details": "DokiaValidator" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "description": { - "moniker": "forbole", - "identity": "", - "website": "https://www.forbole.com", - "details": "Recommend. Refer. Reward" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "description": { - "moniker": "nylira", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "description": { - "moniker": "Gold", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "description": { - "moniker": "jla-bsd", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "description": { - "moniker": "figmatt", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "description": { - "moniker": "ATEAM1", - "identity": "", - "website": "", - "details": "ATEAM1" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "description": { - "moniker": "idoor", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "description": { - "moniker": "naruemon", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "description": { - "moniker": "Adrian Brink - Cryptium Labs", - "identity": "", - "website": "https://cryptium.ch", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "description": { - "moniker": "zaki", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "description": { - "moniker": "trust", - "identity": "", - "website": "http://cosmos-trust.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "description": { - "moniker": "proof-of-audit", - "identity": "", - "website": "https://proof-of-audit.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - } - ] - } - } -} diff --git a/cmd/gaia/testnets/gaia-6001/genesis.json b/cmd/gaia/testnets/gaia-6001/genesis.json deleted file mode 100644 index 512d761bed..0000000000 --- a/cmd/gaia/testnets/gaia-6001/genesis.json +++ /dev/null @@ -1,1459 +0,0 @@ -{ - "genesis_time": "2018-05-15T18:29:12.38288148Z", - "chain_id": "gaia-6001", - "consensus_params": { - "block_size_params": { - "max_bytes": 22020096, - "max_txs": 100000, - "max_gas": -1 - }, - "tx_size_params": { - "max_bytes": 10240, - "max_gas": -1 - }, - "block_gossip_params": { - "block_part_size_bytes": 65536 - }, - "evidence_params": { - "max_age": 100000 - } - }, - "validators": [ - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "power": 1000, - "name": "adrian" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "power": 1000, - "name": "zaki" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "power": 100, - "name": "staked" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "power": 1000, - "name": "polsdam" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "power": 1000, - "name": "lino" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "power": 100, - "name": "" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "power": 1000, - "name": "iris" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "power": 1000, - "name": "pbostrom" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "power": 1000, - "name": "aurel" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "power": 1000, - "name": "bucky" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "power": 100, - "name": "cwgoes" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "power": 1000, - "name": "bdnet" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "power": 1000, - "name": "melea-trust" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "power": 1000, - "name": "naruemon" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "power": 1000, - "name": "idoor" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "power": 1000, - "name": "ATEAM1" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "power": 1000, - "name": "figmatt" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "power": 1000, - "name": "jla-bsd" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "power": 1000, - "name": "Gold" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "power": 1000, - "name": "nylira" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "power": 1000, - "name": "BKCM" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "power": 1000, - "name": "Dev's Validator" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "power": 1000, - "name": "Staking Facilities" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "power": 1000, - "name": "nuevax" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "power": 1000, - "name": "vultr.guest" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "power": 1000, - "name": "forebole" - } - ], - "app_hash": "", - "app_state": { - "accounts": [ - { - "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "coins": [ - { - "denom": "devToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "coins": [ - { - "denom": "adrianToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "109720515B4F8C0858DA3521E448262334534FFD", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "coins": [ - { - "denom": "aurelToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "328FBB8EA315D070DF908982A5F91A3618001D20", - "coins": [ - { - "denom": "cwgoesToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "coins": [ - { - "denom": "BKCMToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "coins": [ - { - "denom": "BDToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "coins": [ - { - "denom": "suyuToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "coins": [ - { - "denom": "linoToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "coins": [ - { - "denom": "stakingToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E04662697134905706A4CCDB822AC6FC11C2E", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E48ED79F1006ED135553768E1D9A768747CF6", - "coins": [ - { - "denom": "buckyToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", - "coins": [ - { - "denom": "kwunyeungToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zachToken", - "amount": 1000 - } - ] - }, - { - "address": "A323EC45243D600204BA3D298E3C20322D08C84C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "nuevaxToken", - "amount": 1000 - } - ] - }, - { - "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "dokiaToken", - "amount": 1000 - } - ] - }, - { - "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "forboleToken", - "amount": 1000 - } - ] - }, - { - "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "coins": [ - { - "denom": "steak", - "amount": 100 - }, - { - "denom": "pengToken", - "amount": 1000 - } - ] - }, - { - "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", - "coins": [ - { - "denom": "steak", - "amount": 900 - }, - { - "denom": "faucetToken", - "amount": 10000000 - } - ] - }, - { - "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "goldToken", - "amount": 100 - } - ] - }, - { - "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "jlaToken", - "amount": 100 - } - ] - }, - { - "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "figmattToken", - "amount": 100 - } - ] - }, - { - "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "ATEAM1Token", - "amount": 100 - } - ] - }, - { - "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "idoorToken", - "amount": 100 - } - ] - }, - { - "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "naruemonToken", - "amount": 100 - } - ] - }, - { - "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zakiToken", - "amount": 1000 - } - ] - }, - { - "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "trustToken", - "amount": 1000 - } - ] - }, - { - "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "coins": [ - { - "denom": "poldsamToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - } - ], - "stake": { - "pool": { - "loose_unbonded_tokens": 2300, - "unbonded_tokens": 0, - "unbonding_tokens": 0, - "bonded_tokens": 23300, - "unbonded_shares": "0", - "unbonding_shares": "0", - "bonded_shares": "23300", - "inflation_last_time": 0, - "inflation": "9012837/100000000", - "date_last_commission_reset": 0, - "prev_bonded_shares": "0" - }, - "params": { - "inflation_rate_change": "13/100", - "inflation_max": "1/5", - "inflation_min": "7/100", - "goal_bonded": "67/100", - "max_validators": 100, - "bond_denom": "steak" - }, - "bonds": [ - { - "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "shares": "1000", - "height": 0 - } - ], - "validators": [ - { - "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "description": { - "moniker": "Dev's Validator", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "109720515B4F8C0858DA3521E448262334534FFD", - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "description": { - "moniker": "", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "description": { - "moniker": "aurel", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "description": { - "moniker": "cwgoes", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "description": { - "moniker": "BKCM", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "description": { - "moniker": "bdnet", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "description": { - "moniker": "suyu", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "description": { - "moniker": "lino", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "description": { - "moniker": "Staking Facilities", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "description": { - "moniker": "default", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "description": { - "moniker": "bucky", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "description": { - "moniker": "zach", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "description": { - "moniker": "nuevax", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "description": { - "moniker": "vultr.guest", - "identity": "", - "website": "https://ion.dokia.capital/", - "details": "DokiaValidator" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "description": { - "moniker": "forbole", - "identity": "", - "website": "https://www.forbole.com", - "details": "Recommend. Refer. Reward" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "description": { - "moniker": "nylira", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "description": { - "moniker": "Gold", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "description": { - "moniker": "jla-bsd", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "description": { - "moniker": "figmatt", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "description": { - "moniker": "ATEAM1", - "identity": "", - "website": "", - "details": "ATEAM1" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "description": { - "moniker": "idoor", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "description": { - "moniker": "naruemon", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "description": { - "moniker": "Adrian Brink - Cryptium Labs", - "identity": "", - "website": "https://cryptium.ch", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "description": { - "moniker": "zaki", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "description": { - "moniker": "trust", - "identity": "", - "website": "http://cosmos-trust.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "description": { - "moniker": "proof-of-audit", - "identity": "", - "website": "https://proof-of-audit.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - } - ] - } - } -} diff --git a/version/version.go b/version/version.go index 20074c7bcd..116f1ff287 100644 --- a/version/version.go +++ b/version/version.go @@ -9,7 +9,7 @@ const Maj = "0" const Min = "18" const Fix = "0" -const Version = "0.18.0" +const Version = "0.18.0-dev" // GitCommit set by build flags var GitCommit = "" From 65786e4578074d0a6a47f5bfbf0291fe78ba7ec3 Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Wed, 13 Jun 2018 10:05:50 +0200 Subject: [PATCH 30/31] Update version.go & changelog --- CHANGELOG.md | 5 +++++ version/version.go | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f40117f82d..4428f7a4c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.19.0 + +*June 13, 2018* + BREAKING CHANGES * msg.GetSignBytes() now returns bech32-encoded addresses in all cases * [lcd] REST end-points now include gas @@ -15,6 +19,7 @@ IMPROVEMENTS * [x/stake] More stake tests added to test ByPower index FIXES +* Fixes consensus fault on testnet - see postmortem [here](https://github.com/cosmos/cosmos-sdk/issues/1197#issuecomment-396823021) * [x/stake] bonded inflation removed, non-bonded inflation partially implemented * [lcd] Switch to bech32 for addresses on all human readable inputs and outputs * [lcd] fixed tx indexing/querying diff --git a/version/version.go b/version/version.go index 20074c7bcd..e24ef62f18 100644 --- a/version/version.go +++ b/version/version.go @@ -6,10 +6,10 @@ package version // TODO improve const Maj = "0" -const Min = "18" +const Min = "19" const Fix = "0" -const Version = "0.18.0" +const Version = "0.19.0" // GitCommit set by build flags var GitCommit = "" From 1b7396d4872c9650eb854897e658f3d60bcc791f Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Wed, 13 Jun 2018 01:34:51 -0700 Subject: [PATCH 31/31] dev version bump --- CHANGELOG.md | 4 ++++ version/version.go | 8 ++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4428f7a4c8..fdfd1895f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.20.0 + +*TBD* + ## 0.19.0 *June 13, 2018* diff --git a/version/version.go b/version/version.go index e24ef62f18..4966455689 100644 --- a/version/version.go +++ b/version/version.go @@ -1,15 +1,11 @@ //nolint package version -// when updating these, -// remember to also update examples/basecoin/tests/cli/rpc.sh -// TODO improve - const Maj = "0" -const Min = "19" +const Min = "20" const Fix = "0" -const Version = "0.19.0" +const Version = "0.20.0-dev" // GitCommit set by build flags var GitCommit = ""