update README with previous CLI
This commit is contained in:
commit
980a9a5be5
162
README.md
162
README.md
|
@ -1,6 +1,94 @@
|
|||
# Deploy a Testnet
|
||||
|
||||
## Starting Gaiad
|
||||
## Setup
|
||||
|
||||
If you're running a full node validator we recommend you to comply with the necessary [technical requirements](https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#technical-requirements). You can check more information regarding validators in our [website](https://cosmos.network/validators) or in the [validator FAQ](https://cosmos.network/resources/validator-faq).
|
||||
|
||||
### Install the SDK on a Cloud Server
|
||||
|
||||
You can set up a cloud server of your choice to run a non-validator full node.
|
||||
|
||||
#### Digital Ocean Droplet
|
||||
|
||||
Follow these commands to install the SDK on a Digital Ocean [Droplet](https://www.digitalocean.com/products/droplets/):
|
||||
|
||||
```
|
||||
export PATH=$PATH:/usr/lib/go-1.10/bin
|
||||
export PATH=$PATH:/root/go/bin
|
||||
bash <(curl -s https://gist.github.com/melekes/1bd57c73646de97c8f6cbe1b780eb822/raw/2447b0fbf95775852c93a91ed3e12631c7ceb648/install.sh)
|
||||
nohup ./build/gaiad start &
|
||||
```
|
||||
|
||||
### Software Setup (Manual Installation)
|
||||
|
||||
|
||||
#### 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 binaries
|
||||
|
||||
Cosmos SDK can be installed to `$GOPATH/src/github.com/cosmos/cosmos-sdk` like a normal Go program:
|
||||
|
||||
```
|
||||
go get github.com/cosmos/cosmos-sdk
|
||||
cd $GOPATH/src/github.com/cosmos/cosmos-sdk
|
||||
git fetch --all
|
||||
git checkout 0f2aa6b
|
||||
make get_tools // run $ make update_tools if already installed
|
||||
make get_vendor_deps
|
||||
make install
|
||||
```
|
||||
|
||||
This will install `gaiad` and `gaiacli` and four example binaries: `basecoind`, `basecli`, `democoind`, and `democli`. Verify that everything is OK by running:
|
||||
|
||||
```
|
||||
gaiad version
|
||||
gaiacli version
|
||||
```
|
||||
|
||||
You should see in both cases:
|
||||
|
||||
```
|
||||
0.15.0-rc0-0f2aa6b
|
||||
```
|
||||
|
||||
### Genesis Setup
|
||||
|
||||
Now that we have completed the basic SDK setup, we can start working on the genesis configuration for the chain we want to connect to. Initiliaze `gaiad` :
|
||||
|
||||
```
|
||||
gaiad init
|
||||
```
|
||||
|
||||
You can find the corresponding genesis files [here](https://github.com/cosmos/testnets). Then replace the `genesis.json` and `config.toml` files:
|
||||
|
||||
```
|
||||
wget -O $HOME/.gaiad/config/genesis.json https://raw.githubusercontent.com/cosmos/testnet/master/gaia-4000/genesis.json
|
||||
|
||||
wget -O $HOME/.gaiad/config/config.toml https://raw.githubusercontent.com/cosmos/testnet/master/gaia-4000/config.toml
|
||||
```
|
||||
|
||||
Lastly change the `moniker` string in the `config.toml` to identify your node.
|
||||
|
||||
```
|
||||
# A custom human readable name for this node
|
||||
moniker = "<your_custom_name>"
|
||||
```
|
||||
|
||||
## Running a Full Node
|
||||
|
||||
Start the full node:
|
||||
|
||||
|
@ -14,48 +102,57 @@ Check the everything is running smoothly:
|
|||
gaiacli status
|
||||
```
|
||||
|
||||
## Generate keys
|
||||
### 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 your a new key \(default _ed25519_ elliptic curve\):
|
||||
|
||||
```
|
||||
KEYNAME=<set_a_name_for_your_new_key>
|
||||
gaiacli keys add $KEYNAME
|
||||
```
|
||||
|
||||
Next, you will have to enter a passphrase for your`$KEYNAME`key twice. Save the _seed phrase _in a safe place in case you forget the password.
|
||||
Next, you will have to enter a passphrase for your `$KEYNAME` 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 `$KEYNAME `key among them:
|
||||
Now if you check your private keys you will see the `$KEYNAME` key among them with the value of your `address`:
|
||||
|
||||
```
|
||||
gaiacli keys show $KEYNAME
|
||||
```
|
||||
|
||||
You can see your other available keys by typing:
|
||||
You can see all your other available keys by typing:
|
||||
|
||||
```
|
||||
gaiacli keys list
|
||||
```
|
||||
|
||||
Save your address and pubkey into a variable
|
||||
Now get your public key by typing:
|
||||
|
||||
```
|
||||
gaiad show_validator
|
||||
```
|
||||
|
||||
You'll get the `value` of your `pk` in `base64` format and the `type` of it
|
||||
To convert your `pk` to `hex` go to this [website](https://cryptii.com/base64-to-hex) and paste the value of the public key in the left box. On the right, select `Group By: None` to covert it.
|
||||
|
||||
Finally, save your address and pubkey into a variable
|
||||
|
||||
```
|
||||
MYADDR=<your_newly_generated_address>
|
||||
MYPUBKEY=<your_newly_generated_public_key>
|
||||
```
|
||||
|
||||
_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._
|
||||
**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.
|
||||
|
||||
## Getting Coins
|
||||
### Getting coins
|
||||
|
||||
Go to the faucet in [http://atomexplorer.com/](http://atomexplorer.com/) and claim some coins for your testnet by typing the address of your key, as printed out above.
|
||||
|
||||
## Send tokens
|
||||
### Send tokens
|
||||
|
||||
```
|
||||
gaiacli send --from=$MYADDR --amount=1000fermion --chain-id=<name_of_testnet_chain> --sequence=1 --name=$KEYNAME --to=<destination_address>
|
||||
gaiacli --amount=1000fermion --chain-id=<name_of_testnet_chain> --sequence=1 --name=$KEYNAME --to=<destination_address>
|
||||
```
|
||||
|
||||
The `--amount` flag defines the corresponding amount of the coin in the format `--amount=<value|coin_name>`
|
||||
|
@ -85,67 +182,42 @@ gaiacli send --from=$MYADDR --amount=1000fermion --fee=1fermion --chain-id=<name
|
|||
|
||||
### Transfer tokens to other chain
|
||||
|
||||
The command to`transfer`tokens to other chain is the same as`send`, we just need to add the`--chain`flag:
|
||||
The command to `transfer` tokens to other chain is the same as `send`, we just need to add the `--chain` flag:
|
||||
|
||||
```
|
||||
gaiacli transfer --from=$MYADDR --amount=20fermion --chain-id=<name_of_testnet_chain> --chain=<destination_chain> --sequence=1 --name=$KEYNAME --to=<sidechain_destination_address>
|
||||
gaiacli transfer --amount=20fermion --chain-id=<name_of_testnet_chain> --chain=<destination_chain> --sequence=1 --name=$KEYNAME --to=<sidechain_destination_address>
|
||||
```
|
||||
|
||||
## Staking: Add a Validator
|
||||
## Become a Validator
|
||||
|
||||
Get your public key by typing:
|
||||
|
||||
```
|
||||
gaiad show_validator
|
||||
```
|
||||
|
||||
The returned value is your validator address in hex. This can be used to create a new validator candidate by staking some tokens:
|
||||
|
||||
```
|
||||
gaiacli declare-candidacy --amount=500fermions --pubkey=$PUBKEY --address-candidate=$MYADDR --moniker=satoshi --chain-id=<name_of_the_testnet_chain> --sequence=1 --name=$KEYNAME
|
||||
```
|
||||
|
||||
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 edit-candidacy --details="To the cosmos !" --website="https://cosmos.network"
|
||||
```
|
||||
|
||||
Finally, you can check all the candidate information by typing:
|
||||
|
||||
```
|
||||
gaiacli candidate --address-candidate=$MYADDR --chain-id=<name_of_the_testnet_chain>
|
||||
```
|
||||
You can become a validator candidate by staking some tokens:
|
||||
|
||||
To check that the validator is active you can find it on the validator set list:
|
||||
|
||||
```
|
||||
basecli validatorset <height>
|
||||
gaiacli validatorset
|
||||
```
|
||||
|
||||
\*_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:** 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`_\).
|
||||
|
||||
#### Delegating: Bonding and unbonding to a validator
|
||||
|
||||
You can delegate \(i.e. bind\) **Atoms** to a validator to obtain a part of its fee revenue in exchange \(the fee token in the Cosmos Hub are **Photons**\).
|
||||
|
||||
```
|
||||
gaiacli delegate --amount=10fermion --address-delegator=$MYADDR --address-candidate=<bonded_validator_address> --shares=MAX --name=$KEYNAME --chain-id=<name_of_testnet_chain> --sequence=1
|
||||
gaiacli bond --stake=10fermion --validator=<bonded_validator_address> --name=$KEYNAME --chain-id=<name_of_testnet_chain> --sequence=1
|
||||
```
|
||||
|
||||
If for any reason the validator misbehaves or you just want to unbond a certain amount of the bonded tokens:
|
||||
|
||||
```
|
||||
gaiacli unbond --address-delegator=$MYADDR --address-candidate=<bonded_validator_address> --shares=MAX --name=$KEYNAME --chain-id=<name_of_testnet_chain> --sequence=1
|
||||
gaiacli unbond --name=$KEYNAME --chain-id=<name_of_testnet_chain> --sequence=1
|
||||
```
|
||||
|
||||
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 should now see the unbonded tokens reflected in your balance:
|
||||
|
||||
```
|
||||
gaiacli account $MYADDR
|
||||
gaiacli delegator-bond --address-delegator=$MYADDR --address-candidate=<bonded_validator_address> --chain-id=<name_of_testnet_chain>
|
||||
```
|
||||
|
||||
#### Relaying
|
||||
|
|
|
@ -0,0 +1,170 @@
|
|||
# This is a TOML config file.
|
||||
# For more information, see https://github.com/toml-lang/toml
|
||||
|
||||
##### main base config options #####
|
||||
|
||||
# TCP or UNIX socket address of the ABCI application,
|
||||
# or the name of an ABCI application compiled in with the Tendermint binary
|
||||
proxy_app = "tcp://127.0.0.1:46658"
|
||||
|
||||
# A custom human readable name for this node
|
||||
moniker = "XXX"
|
||||
|
||||
# If this node is many blocks behind the tip of the chain, FastSync
|
||||
# allows them to catchup quickly by downloading blocks in parallel
|
||||
# and verifying their commits
|
||||
fast_sync = true
|
||||
|
||||
# Database backend: leveldb | memdb
|
||||
db_backend = "leveldb"
|
||||
|
||||
# Database directory
|
||||
db_path = "data"
|
||||
|
||||
# Output level for logging, including package level options
|
||||
log_level = "main:info,state:info,*:error"
|
||||
|
||||
##### additional base config options #####
|
||||
|
||||
# Path to the JSON file containing the initial validator set and other meta data
|
||||
genesis_file = "config/genesis.json"
|
||||
|
||||
# Path to the JSON file containing the private key to use as a validator in the consensus protocol
|
||||
priv_validator_file = "config/priv_validator.json"
|
||||
|
||||
# Path to the JSON file containing the private key to use for node authentication in the p2p protocol
|
||||
node_key_file = "config/node_key.json"
|
||||
|
||||
# Mechanism to connect to the ABCI application: socket | grpc
|
||||
abci = "socket"
|
||||
|
||||
# TCP or UNIX socket address for the profiling server to listen on
|
||||
prof_laddr = ""
|
||||
|
||||
# If true, query the ABCI app on connecting to a new peer
|
||||
# so the app can decide if we should keep the connection or not
|
||||
filter_peers = false
|
||||
|
||||
##### advanced configuration options #####
|
||||
|
||||
##### rpc server configuration options #####
|
||||
[rpc]
|
||||
|
||||
# TCP or UNIX socket address for the RPC server to listen on
|
||||
laddr = "tcp://0.0.0.0:46657"
|
||||
|
||||
# TCP or UNIX socket address for the gRPC server to listen on
|
||||
# NOTE: This server only supports /broadcast_tx_commit
|
||||
grpc_laddr = ""
|
||||
|
||||
# Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool
|
||||
unsafe = false
|
||||
|
||||
##### peer to peer configuration options #####
|
||||
[p2p]
|
||||
|
||||
# Address to listen for incoming connections
|
||||
laddr = "tcp://0.0.0.0:46656"
|
||||
|
||||
# Comma separated list of seed nodes to connect to
|
||||
seeds = ""
|
||||
|
||||
# Comma separated list of nodes to keep persistent connections to
|
||||
# Do not add private peers to this list if you don't want them advertised
|
||||
persistent_peers = "2871265b0b659a75539342577e4d7b301a21c6ec@67.207.71.85:46656,242048f0f71f2a60881913c2e8f8cf4144e0f175@159.65.211.28:46656"
|
||||
|
||||
# Path to address book
|
||||
addr_book_file = "config/addrbook.json"
|
||||
|
||||
# Set true for strict address routability rules
|
||||
addr_book_strict = true
|
||||
|
||||
# Time to wait before flushing messages out on the connection, in ms
|
||||
flush_throttle_timeout = 100
|
||||
|
||||
# Maximum number of peers to connect to
|
||||
max_num_peers = 50
|
||||
|
||||
# Maximum size of a message packet payload, in bytes
|
||||
max_packet_msg_payload_size = 1024
|
||||
|
||||
# Rate at which packets can be sent, in bytes/second
|
||||
send_rate = 512000
|
||||
|
||||
# Rate at which packets can be received, in bytes/second
|
||||
recv_rate = 512000
|
||||
|
||||
# Set true to enable the peer-exchange reactor
|
||||
pex = true
|
||||
|
||||
# Seed mode, in which node constantly crawls the network and looks for
|
||||
# peers. If another node asks it for addresses, it responds and disconnects.
|
||||
#
|
||||
# Does not work if the peer-exchange reactor is disabled.
|
||||
seed_mode = false
|
||||
|
||||
# Authenticated encryption
|
||||
auth_enc = true
|
||||
|
||||
# Comma separated list of peer IDs to keep private (will not be gossiped to other peers)
|
||||
private_peer_ids = ""
|
||||
|
||||
##### mempool configuration options #####
|
||||
[mempool]
|
||||
|
||||
recheck = true
|
||||
recheck_empty = true
|
||||
broadcast = true
|
||||
wal_dir = "data/mempool.wal"
|
||||
|
||||
##### consensus configuration options #####
|
||||
[consensus]
|
||||
|
||||
wal_file = "data/cs.wal/wal"
|
||||
wal_light = false
|
||||
|
||||
# All timeouts are in milliseconds
|
||||
timeout_propose = 3000
|
||||
timeout_propose_delta = 500
|
||||
timeout_prevote = 1000
|
||||
timeout_prevote_delta = 500
|
||||
timeout_precommit = 1000
|
||||
timeout_precommit_delta = 500
|
||||
timeout_commit = 1000
|
||||
|
||||
# Make progress as soon as we have all the precommits (as if TimeoutCommit = 0)
|
||||
skip_timeout_commit = false
|
||||
|
||||
# BlockSize
|
||||
max_block_size_txs = 10000
|
||||
max_block_size_bytes = 1
|
||||
|
||||
# EmptyBlocks mode and possible interval between empty blocks in seconds
|
||||
create_empty_blocks = true
|
||||
create_empty_blocks_interval = 0
|
||||
|
||||
# Reactor sleep duration parameters are in milliseconds
|
||||
peer_gossip_sleep_duration = 100
|
||||
peer_query_maj23_sleep_duration = 2000
|
||||
|
||||
##### transactions indexer configuration options #####
|
||||
[tx_index]
|
||||
|
||||
# What indexer to use for transactions
|
||||
#
|
||||
# Options:
|
||||
# 1) "null" (default)
|
||||
# 2) "kv" - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend).
|
||||
indexer = "kv"
|
||||
|
||||
# Comma-separated list of tags to index (by default the only tag is tx hash)
|
||||
#
|
||||
# It's recommended to index only a subset of tags due to possible memory
|
||||
# bloat. This is, of course, depends on the indexer's DB and the volume of
|
||||
# transactions.
|
||||
index_tags = ""
|
||||
|
||||
# When set to true, tells indexer to index all tags. Note this may be not
|
||||
# desirable (see the comment above). IndexTags has a precedence over
|
||||
# IndexAllTags (i.e. when given both, IndexTags will be indexed).
|
||||
index_all_tags = false
|
|
@ -0,0 +1,148 @@
|
|||
{
|
||||
"genesis_time": "0001-01-01T00:00:00Z",
|
||||
"chain_id": "gaia-4000",
|
||||
"validators": [
|
||||
{
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "xVpJhOmDiGte+gMqJybHd8B4GDn1lcoA2oanzFhWybI="
|
||||
},
|
||||
"power": 1000,
|
||||
"name": "adrian-67"
|
||||
},
|
||||
{
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "aKHNZKaGKoYJysWthvRGwUslEhNr5F5s/RpttUNh5EU="
|
||||
},
|
||||
"power": 1000,
|
||||
"name": "adrian-159"
|
||||
}
|
||||
],
|
||||
"app_hash": "",
|
||||
"app_state": {
|
||||
"accounts": [
|
||||
{
|
||||
"address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 1000000
|
||||
},
|
||||
{
|
||||
"denom": "adriancoin",
|
||||
"amount": 33333333
|
||||
},
|
||||
{
|
||||
"denom": "photon",
|
||||
"amount": 10000000000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"address": "D86F1E517FC94401BF3AA5FC5667CCB05A2179DC",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 100
|
||||
},
|
||||
{
|
||||
"denom": "chriscoin",
|
||||
"amount": 33333333
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"address": "BE537272ABBDB84E92908F40685FC04F3F83D036",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 100
|
||||
},
|
||||
{
|
||||
"denom": "mikecoin",
|
||||
"amount": 100000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"address": "ED25519CD750083D289A4859091A9B6EE43AF91D",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 100
|
||||
},
|
||||
{
|
||||
"denom": "nickcoin",
|
||||
"amount": 33333333
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"address": "5D9C04412AE20040A0A1618B2A8724DAD9BB8700",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 100
|
||||
},
|
||||
{
|
||||
"denom": "bianjiecoin",
|
||||
"amount": 33333333
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"address": "8363D802166CD0A0AEDFF44CF1F7A78CD3F94D6F",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 100
|
||||
},
|
||||
{
|
||||
"denom": "cybermonies",
|
||||
"amount": 1337
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"address": "E1DDCCAAFFECDBEC074947E02F1DEE1CE8C8BA0D",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 100
|
||||
},
|
||||
{
|
||||
"denom": "linocoin",
|
||||
"amount": 33333333
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"address": "94933F0B43263C24422A72D2AB2C2823D1D23662",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 100
|
||||
},
|
||||
{
|
||||
"denom": "nuevaxcoin",
|
||||
"amount": 33333333
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"address": "C446B86801B1B67A46C6FABDE7FC7F448755D83F",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "steak",
|
||||
"amount": 100
|
||||
},
|
||||
{
|
||||
"denom": "paulcoin",
|
||||
"amount": 33333333
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
{"chain_id":"internal-1","node_id":"a2dd1751ddcc480710bb06bb3fd93cdb43a62d9f","ip":"94.130.9.167","app_state":{
|
||||
"accounts": [
|
||||
{
|
||||
"address": "0809BCA4DA5C8E44C29FD222AD540842049F1AF6",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "fermion",
|
||||
"amount": 1000
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"stake": {
|
||||
"pool": {
|
||||
"total_supply": 100,
|
||||
"bonded_shares": {
|
||||
"num": 100,
|
||||
"denom": 1
|
||||
},
|
||||
"unbonded_shares": {
|
||||
"num": 0,
|
||||
"denom": 1
|
||||
},
|
||||
"bonded_pool": 100,
|
||||
"unbonded_pool": 0,
|
||||
"inflation_last_time": 0,
|
||||
"inflation": {
|
||||
"num": 7,
|
||||
"denom": 100
|
||||
}
|
||||
},
|
||||
"params": {
|
||||
"inflation_rate_change": {
|
||||
"num": 13,
|
||||
"denom": 100
|
||||
},
|
||||
"inflation_max": {
|
||||
"num": 20,
|
||||
"denom": 100
|
||||
},
|
||||
"inflation_min": {
|
||||
"num": 7,
|
||||
"denom": 100
|
||||
},
|
||||
"goal_bonded": {
|
||||
"num": 67,
|
||||
"denom": 100
|
||||
},
|
||||
"max_validators": 100,
|
||||
"bond_denom": "fermion"
|
||||
},
|
||||
"candidates": [
|
||||
{
|
||||
"status": 1,
|
||||
"owner": "0809BCA4DA5C8E44C29FD222AD540842049F1AF6",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "F5qF1KbyNuCGcUEVNPHOirrQzMPc1j1HeQjnArVWhBU="
|
||||
},
|
||||
"assets": {
|
||||
"num": 100,
|
||||
"denom": 1
|
||||
},
|
||||
"liabilities": {
|
||||
"num": 0,
|
||||
"denom": 1
|
||||
},
|
||||
"description": {
|
||||
"moniker": "adrian",
|
||||
"identity": "",
|
||||
"website": "",
|
||||
"details": ""
|
||||
},
|
||||
"validator_bond_height": 0,
|
||||
"validator_bond_counter": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},"validators":[{"pub_key":{"type":"AC26791624DE60","value":"F5qF1KbyNuCGcUEVNPHOirrQzMPc1j1HeQjnArVWhBU="},"power":100,"name":""}]}
|
|
@ -0,0 +1,79 @@
|
|||
{"chain_id":"internal-1","node_id":"be19a7d6c3f8472ad0073b5dcfcbc39f7e0ec9b3","ip":"167.99.160.171","app_state":{
|
||||
"accounts": [
|
||||
{
|
||||
"address": "90A9EF09EEB2A6658F9D5B4617727F2ED51FB59C",
|
||||
"coins": [
|
||||
{
|
||||
"denom": "fermion",
|
||||
"amount": 1000
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"stake": {
|
||||
"pool": {
|
||||
"total_supply": 100,
|
||||
"bonded_shares": {
|
||||
"num": 100,
|
||||
"denom": 1
|
||||
},
|
||||
"unbonded_shares": {
|
||||
"num": 0,
|
||||
"denom": 1
|
||||
},
|
||||
"bonded_pool": 100,
|
||||
"unbonded_pool": 0,
|
||||
"inflation_last_time": 0,
|
||||
"inflation": {
|
||||
"num": 7,
|
||||
"denom": 100
|
||||
}
|
||||
},
|
||||
"params": {
|
||||
"inflation_rate_change": {
|
||||
"num": 13,
|
||||
"denom": 100
|
||||
},
|
||||
"inflation_max": {
|
||||
"num": 20,
|
||||
"denom": 100
|
||||
},
|
||||
"inflation_min": {
|
||||
"num": 7,
|
||||
"denom": 100
|
||||
},
|
||||
"goal_bonded": {
|
||||
"num": 67,
|
||||
"denom": 100
|
||||
},
|
||||
"max_validators": 100,
|
||||
"bond_denom": "fermion"
|
||||
},
|
||||
"candidates": [
|
||||
{
|
||||
"status": 1,
|
||||
"owner": "90A9EF09EEB2A6658F9D5B4617727F2ED51FB59C",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "Y+FiWjkDJTIRg1v25LaojD0MCCp37yVNqy6eFgO3Q4U="
|
||||
},
|
||||
"assets": {
|
||||
"num": 100,
|
||||
"denom": 1
|
||||
},
|
||||
"liabilities": {
|
||||
"num": 0,
|
||||
"denom": 1
|
||||
},
|
||||
"description": {
|
||||
"moniker": "rigel",
|
||||
"identity": "",
|
||||
"website": "",
|
||||
"details": ""
|
||||
},
|
||||
"validator_bond_height": 0,
|
||||
"validator_bond_counter": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},"validators":[{"pub_key":{"type":"AC26791624DE60","value":"Y+FiWjkDJTIRg1v25LaojD0MCCp37yVNqy6eFgO3Q4U="},"power":100,"name":""}]}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"node_id": "efeba710629d9a7ace99ffa3c0767fc0079b4dc7",
|
||||
"ip": "158.69.63.13",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "DyC8LAqZFmXGkX+hJb0p3iu/oYphvx3JZqHz1VLJ/A0="
|
||||
},
|
||||
"power": 100,
|
||||
"name": ""
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "cwgoes",
|
||||
"address": "A425870C82ECC0943212A857D1C9D45E0C381C5F",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "DyC8LAqZFmXGkX+hJb0p3iu/oYphvx3JZqHz1VLJ/A0="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"node_id": "03b977aaecb87315fb64d4925c3cd72305129f2a",
|
||||
"ip": "138.197.161.235",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "qwQyuWl3e6bx2S6lZpUA8cI/J0I4CrVZPLagFxrFAVc="
|
||||
},
|
||||
"power": 100,
|
||||
"name": ""
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "rigel",
|
||||
"address": "B2C472941BA3803E12CD0340047A25F2143AD13B",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "qwQyuWl3e6bx2S6lZpUA8cI/J0I4CrVZPLagFxrFAVc="
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue