diff --git a/CHANGELOG.md b/CHANGELOG.md index 45560c979..6a69b9f98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 0.8.0 -*December 10th, 2018* +*December 13th, 2018* - Upgrade tendermint to v0.27.0-dev1 diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 3b158db89..587fabe43 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -1,258 +1,187 @@ module.exports = { + title: 'IRISnet Document', + description: '', base: "/docs/", - locales: { - '/': { - lang: 'English', - title: 'IRISnet Document' - }, - '/zh/': { - lang: '简体中文', - title: 'IRISnet 文档' - } - }, themeConfig: { displayAllHeaders: false, - locales: { - '/': { - selectText: 'Languages', - nav: [ - {text: 'Back to IRISnet', link: 'https://www.irisnet.org'}, - {text: 'Introduction', link: '/introduction/'}, - {text: 'Software', link: '/software/node.md'}, - {text: 'Getting Started', link: '/get-started/'}, - {text: 'Features', link: '/features/basic-concepts/coin-type.md'}, - {text: 'CLI Client', link: '/cli-client/'}, - {text: 'Light Client', link: '/light-client/'}, - {text: 'Resources', link: '/resources/'} - ], - sidebar: { - '/software/': [ - ['node.md', 'Node'], - ['cli-client.md', 'CLI Client'], - ['light-client.md', 'Light Client'], + nav: [ + {text: 'Back to IRISnet', link: 'https://www.irisnet.org'}, + {text: 'Introduction', link: '/introduction/'}, + {text: 'Software', link: '/software/'}, + {text: 'Getting Started', link: '/get-started/'}, + {text: 'Features', link: '/features/'}, + {text: 'CLI Client', link: '/cli-client/'}, + {text: 'Light Client', link: '/light-client/'}, + {text: 'Resources', link: '/resources/'}, + ], + sidebar: { + '/introduction/': [{ + title: 'The IRIS Hub', + collapsable: false, + children: [ + 'The-IRIS-Hub/Proof-of-Stake.md', + 'The-IRIS-Hub/IRIS-Tokens.md', + 'The-IRIS-Hub/Validators.md', + 'The-IRIS-Hub/Delegators.md' + ] + }, + { + title: 'The IRIS Service', + collapsable: false, + children: [ + 'The-IRIS-Service/Lifecycle.md', + 'The-IRIS-Service/Providers.md', + 'The-IRIS-Service/Consumers.md', + ] + }, + { + title: 'The IRIS Network', + collapsable: false, + children: [ + 'The-IRIS-Network/' + ] + }], + '/software/': [ + { + title: 'Node', + collapsable: false, + children: [ + ['node.md', 'Node'] + ] + }, { + title: 'CLI Client', + collapsable: false, + children: [ + ['cli-client.md', 'CLI Client'] + ] + }, { + title: 'Light Client', + collapsable: false, + children: [ + ['light-client.md', 'Light Client'] + ] + }, { + title: 'Monitor', + collapsable: false, + children: [ ['monitor.md', 'Monitor'] - ], - '/get-started/': [ - ['Download-Rainbow.md', 'Download Rainbow'], - ['Install-the-Software.md', 'Install the Software'], - ['Join-the-Testnet.md', 'Join the Testnet'] - ], - '/features/': [{ - title: 'Basic Concepts', - collapsable: false, - children: [ - ["basic-concepts/coin-type.md", 'Coin Type'], - ["basic-concepts/fee.md", 'Fee'], - ["basic-concepts/inflation.md", 'Infation'], - ["basic-concepts/bech32-prefix.md", 'Bech32 Prefix'], - ["basic-concepts/genesis-file.md", 'Genesis File'], - ["basic-concepts/gov-params.md", 'Gov Params'] - ] - },{ - title: 'Modules', - collapsable: false, - children: [ - ['bank.md', 'Bank'], - ['stake.md', 'Stake'], - ['service.md', 'Service'], - ['record.md', 'Record'], - ['governance.md', 'Governance'], - ['upgrade.md', 'Upgrade'], - ['distribution.md', 'Distribution'], - ] - }], - '/cli-client/': [{ - title: 'Status', - collapsable: false, - children: [ - ['status/', 'iriscli status'] - ] - }, - { - title: 'Tendermint', - collapsable: false, - children: [ - ['tendermint/', 'iriscli tendermint'] - ] - }, - { - title: 'Keys', - collapsable: false, - children: [ - ['keys/', 'iriscli keys'] - ] - }, - { - title: 'Bank', - collapsable: false, - children: [ - ['bank/', 'iriscli bank'] - ] - }, - { - title: 'Stake', - collapsable: false, - children: [ - ['stake/', 'iriscli stake'] - ] - }, - { - title: 'Gov', - collapsable: false, - children: [ - ['gov/', 'iriscli gov'] - ] - }, - { - title: 'Record', - collapsable: false, - children: [ - ['record/', 'iriscli record'] - ] - }, - { - title: 'Upgrade', - collapsable: false, - children: [ - ['upgrade/', 'iriscli upgrade'] - ] - }, - { - title: 'Service', - collapsable: false, - children: [ - ['service/', 'iriscli service'] - ] - }], - '/resources/': [ - ['validator-faq.md', 'Validator FAQ'], - ['delegator-faq.md', 'Delegator FAQ'], - ['whitepaper-zh.md', 'Whitepaper ZH'], - ['whitepaper-en.md', 'Whitepaper EN'], - ['whitepaper-kr.md', 'Whitepaper KR'] ] - } + }], + '/get-started/': [{ + title: 'Getting Started', + collapsable: false, + children: [ + ['Download-Rainbow.md', 'Download Rainbow'], + ['Install-the-Software.md', 'Install the Software'], + ['Join-the-Testnet.md', 'Join the Testnet'] + ] + }], + '/features/': [{ + title: 'Basic Concepts', + collapsable: false, + children: [ + ["basic-concepts/coin-type.md", 'Coin Type'], + ["basic-concepts/fee.md", 'Fee'], + ["basic-concepts/inflation.md", 'Infation'], + ["basic-concepts/bech32-prefix.md", 'Bech32 Prefix'], + ["basic-concepts/genesis-file.md", 'Genesis File'], + ["basic-concepts/gov-params.md", 'Gov Params'] + ] + },{ + title: 'Modules', + collapsable: false, + children: [ + ['bank.md', 'Bank'], + ['stake.md', 'Stake'], + ['service.md', 'Service'], + ['record.md', 'Record'], + ['governance.md', 'Governance'], + ['upgrade.md', 'Upgrade'], + ['distribution.md', 'Distribution'], + ['guardian.md', 'Guardian'], + ] + }], + '/cli-client/': [{ + title: 'Status', + collapsable: false, + children: [ + ['status/', 'iriscli status'] + ] }, - '/zh/': { - selectText: '选择语言', - nav: [ - {text: '返回官网', link: 'https://www.irisnet.org'}, - {text: '简介', link: '/zh/introduction/'}, - {text: '软件', link: '/zh/software/node.md'}, - {text: '开始', link: '/zh/get-started/'}, - {text: '功能', link: '/zh/features/basic-concepts/coin-type.md'}, - {text: '命令行', link: '/zh/cli-client/'}, - {text: '轻客户端', link: '/zh/light-client/'}, - {text: '资源', link: '/zh/resources/'} - ], - sidebar: { - '/zh/software/': [ - ['node.md', 'Node'], - ['cli-client.md', 'CLI Client'], - ['light-client.md', 'Light Client'], - ['monitor.md', 'Monitor'] - ], - '/zh/get-started/': [ - ['Download-Rainbow.md', 'Download Rainbow'], - ['Install-the-Software.md', 'Install the Software'], - ['Join-the-Testnet.md', 'Join the Testnet'] - ], - '/zh/features/': [{ - title: 'Basic Concepts', - collapsable: false, - children: [ - ["basic-concepts/coin-type.md", 'Coin Type'], - ["basic-concepts/fee.md", 'Fee'], - ["basic-concepts/inflation.md", 'Infation'], - ["basic-concepts/bech32-prefix.md", 'Bech32 Prefix'], - ["basic-concepts/genesis-file.md", 'Genesis File'], - ["basic-concepts/gov-params.md", 'Gov Params'] - ] - },{ - title: 'Modules', - collapsable: false, - children: [ - ['bank.md', 'Bank'], - ['stake.md', 'Stake'], - ['service.md', 'Service'], - ['record.md', 'Record'], - ['governance.md', 'Governance'], - ['upgrade.md', 'Upgrade'], - ['distribution.md', 'Distribution'], - ] - }], - '/zh/cli-client/': [{ - title: 'Status', - collapsable: false, - children: [ - ['status/', 'iriscli status'] - ] - }, - { - title: 'Tendermint', - collapsable: false, - children: [ - ['tendermint/', 'iriscli tendermint'] - ] - }, - { - title: 'Keys', - collapsable: false, - children: [ - ['keys/', 'iriscli keys'] - ] - }, - { - title: 'Bank', - collapsable: false, - children: [ - ['bank/', 'iriscli bank'] - ] - }, - { - title: 'Stake', - collapsable: false, - children: [ - ['stake/', 'iriscli stake'] - ] - }, - { - title: 'Gov', - collapsable: false, - children: [ - ['gov/', 'iriscli gov'] - ] - }, - { - title: 'Record', - collapsable: false, - children: [ - ['record/', 'iriscli record'] - ] - }, - { - title: 'Upgrade', - collapsable: false, - children: [ - ['upgrade/', 'iriscli upgrade'] - ] - }, - { - title: 'Service', - collapsable: false, - children: [ - ['service/', 'iriscli service'] - ] - }], - '/zh/resources/': [ - ['validator-faq.md', 'Validator FAQ'], - ['delegator-faq.md', 'Delegator FAQ'], - ['whitepaper-zh.md', 'Whitepaper ZH'], - ['whitepaper-en.md', 'Whitepaper EN'], - ['whitepaper-kr.md', 'Whitepaper KR'] + { + title: 'Tendermint', + collapsable: false, + children: [ + ['tendermint/', 'iriscli tendermint'] + ] + }, + { + title: 'Keys', + collapsable: false, + children: [ + ['keys/', 'iriscli keys'] + ] + }, + { + title: 'Bank', + collapsable: false, + children: [ + ['bank/', 'iriscli bank'] + ] + }, + { + title: 'Stake', + collapsable: false, + children: [ + ['stake/', 'iriscli stake'] + ] + }, + { + title: 'Gov', + collapsable: false, + children: [ + ['gov/', 'iriscli gov'] + ] + }, + { + title: 'Record', + collapsable: false, + children: [ + ['record/', 'iriscli record'] + ] + }, + { + title: 'Upgrade', + collapsable: false, + children: [ + ['upgrade/', 'iriscli upgrade'] + ] + }, + { + title: 'Service', + collapsable: false, + children: [ + ['service/', 'iriscli service'] ] - } - } + }], + '/light-client/': [{ + title: 'Light Client', + collapsable: false, + children: [ + ['', 'Light Client'] + ] + }], + '/resources/': [{ + title: 'Resources', + collapsable: false, + children: [ + ['validator-faq.md', 'Validator FAQ'], + ['delegator-faq.md', 'Delegator FAQ'], + ['whitepaper-zh.md', 'Whitepaper ZH'], + ['whitepaper-en.md', 'Whitepaper EN'], + ['whitepaper-kr.md', 'Whitepaper KR'], + ] + }] } } -} +} \ No newline at end of file diff --git a/docs/cli-client/bank/account.md b/docs/cli-client/bank/account.md index 839d72a2c..8ae3a4e89 100644 --- a/docs/cli-client/bank/account.md +++ b/docs/cli-client/bank/account.md @@ -2,7 +2,7 @@ ## Description -Querying account information. +This command is used for querying balance information of certain address. ## Usage: @@ -36,10 +36,10 @@ iriscli bank account [address] [flags] ## Examples -### Query account +### Query your account in trust-mode ``` - iriscli bank account faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429yx + iriscli bank account faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429yx --trust-node=true ``` After that, you will get the detail info for the account. @@ -69,15 +69,16 @@ After that, you will get the detail info for the account. } +``` +### Common Issue +If you query an wrong account, you will get the fellow information. ``` -If you query an wrrong account, you will get the fellow information. -``` - iriscli bank account faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429zz -ERROR: decoding bech32 failed: checksum failed. Expected d429yx, got d429zz. +iriscli bank account faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429zz +ERROR: decoding bech32 failed: checksum failed. Expected 100, got 0. ``` -If you query an empty account, you will get the fellow information. +If you query an empty account, you will get the fellow error. But don't panic when you see the following error. ``` iriscli bank account faa1kenrwk5k4ng70e5s9zfsttxpnlesx5ps0gfdv7 ERROR: No account with address faa1kenrwk5k4ng70e5s9zfsttxpnlesx5ps0gfdv7 was found in the state. @@ -87,10 +88,46 @@ Are you sure there has been a transaction involving it? ## Extended description -Query your account in iris network. +Query your account in iris network. If you want to create a validator, you should use `iriscli bank account` to make sure +that your balance is above 0. ​ +### Query your account in Fuxi testnet + +If you want to query your account in Fuxi-6000 testnet, you should use the following: + +``` +iriscli bank account faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429yx --chain-id=fuxi-6000 +``` + +After that, you will get the detail info for the account. + +``` +{ + + "address": "faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429yx", + + "coins": [ + + "50iris" + ], + + "public_key": { + + "type": "tendermint/PubKeySecp256k1", + + "value": "AzlCwiA5Tvxwi7lMB/Hihfp2qnaks5Wrrgkg/Jy7sEkF" + + }, + + "account_number": "0", + + "sequence": "1" + +} + +``` ​ diff --git a/docs/cli-client/bank/broadcast.md b/docs/cli-client/bank/broadcast.md new file mode 100644 index 000000000..4e6e97789 --- /dev/null +++ b/docs/cli-client/bank/broadcast.md @@ -0,0 +1,57 @@ +# iriscli bank broadcast + +## Description + +This command is used for broadcasting a signed transaction to the network after generating a signed transaction +offline with [sign](./sign.md). + +## Usage: + +``` +iriscli bank broadcast [tx-file] [flags] +``` + + + +## Flags + +| Name,shorthand | Type | Required | Default | Description | +| -------------- | ------ | -------- | --------------------- | ------------------------------------------------------------ | +| -h, --help | | False | | help for account | +| --chain-id | String | False | | Chain ID of tendermint node | +| --height | Int | False | | Block height to query, omit to get most recent provable block | +| --ledger | String | False | | Use a connected Ledger device | +| --node | String | False | tcp://localhost:26657 | : to tendermint rpc interface for this chain | +| --trust-node | String | False | True | Don't verify proofs for responses | + + + +## Global Flags + +| Name,shorthand | Default | Description | Required | Type | +| --------------------- | -------------- | ------------------------------------------- | -------- | ------ | +| -e, --encoding string | hex | String Binary encoding (hex \|b64 \|btc ) | False | String | +| --home string | /root/.iriscli | Directory for config and data | False | String | +| -o, --output string | text | Output format (text \|json) | False | String | +| --trace | | Print out full stack trace on errors | False | | + +## Examples + +### Broadcast your transaction + +``` +iriscli bank broadcast sign.json --chain-id=irishub-stage + +``` + +After that, you will get the commit info of this transaction. +``` +Committed at block 2265 (tx hash: A60224C8433487D48C8B03B51CB7A2BCB014932A97A55D946E5F30E561E1195E, response: {Code:0 Data:[] Log:Msg 0: Info: GasWanted:200000 GasUsed:4690 Tags:[{Key:[115 101 110 100 101 114] Value:[102 97 97 49 57 97 97 109 106 120 51 120 115 122 122 120 103 113 104 114 104 48 121 113 100 52 104 107 117 114 107 101 97 55 102 54 100 52 50 57 121 120] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0} {Key:[114 101 99 105 112 105 101 110 116] Value:[102 97 97 49 57 97 97 109 106 120 51 120 115 122 122 120 103 113 104 114 104 48 121 113 100 52 104 107 117 114 107 101 97 55 102 54 100 52 50 57 121 120] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0} {Key:[99 111 109 112 108 101 116 101 67 111 110 115 117 109 101 100 84 120 70 101 101 45 105 114 105 115 45 97 116 116 111] Value:[34 57 51 56 48 48 48 48 48 48 48 48 48 48 48 34] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0}] Codespace: XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0}) +{ + "tags": { + "completeConsumedTxFee-iris-atto": "\"93800000000000\"", + "recipient": "faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429yx", + "sender": "faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429yx" + } + } +``` \ No newline at end of file diff --git a/docs/cli-client/bank/send.md b/docs/cli-client/bank/send.md index 0f27c40f9..82e6ac344 100644 --- a/docs/cli-client/bank/send.md +++ b/docs/cli-client/bank/send.md @@ -72,3 +72,10 @@ Committed at block 2265 (tx hash: A60224C8433487D48C8B03B51CB7A2BCB014932A97A55D } ``` +### Common Issues + +* Wrong password + +```$xslt +ERROR: Ciphertext decryption failed +``` diff --git a/docs/cli-client/bank/sign.md b/docs/cli-client/bank/sign.md index cf817da8b..94d53344a 100644 --- a/docs/cli-client/bank/sign.md +++ b/docs/cli-client/bank/sign.md @@ -85,3 +85,4 @@ Password to sign with 'test': {"type":"auth/StdTx","value":{"msg":[{"type":"cosmos-sdk/Send","value":{"inputs":[{"address":"faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429yx","coins":[{"denom":"iris-atto","amount":"10000000000000000000"}]}],"outputs":[{"address":"faa19aamjx3xszzxgqhrh0yqd4hkurkea7f6d429yx","coins":[{"denom":"iris-atto","amount":"10000000000000000000"}]}]}}],"fee":{"amount":[{"denom":"iris-atto","amount":"4000000000000000"}],"gas":"200000"},"signatures":[{"pub_key":{"type":"tendermint/PubKeySecp256k1","value":"AzlCwiA5Tvxwi7lMB/Hihfp2qnaks5Wrrgkg/Jy7sEkF"},"signature":"ci+5QuYUVcsARBQWyPGDgmTKYu/SRj6TpCGvrC7AE3REMVdqFGFK3hzlgIphzOocGmOIa/wicXGlMK2G89tPJg==","account_number":"0","sequence":"2"}],"memo":""}} ``` +After signing a transaction, it could be broadcast to the network with [broadcastc command](./broadcast.md) \ No newline at end of file diff --git a/docs/cli-client/keys/show.md b/docs/cli-client/keys/show.md index 75860c5e8..54883457c 100644 --- a/docs/cli-client/keys/show.md +++ b/docs/cli-client/keys/show.md @@ -34,3 +34,20 @@ You'll get the local public keys with 'address' and 'pubkey' element of a given NAME: TYPE: ADDRESS: PUBKEY: MyKey local faa1kkm4w5pvmcw0e3vjcxqtfxwqpm3k0zakl7lxn5 fap1addwnpepq0gsl90v9dgac3r9hzgz53ul5ml5ynq89ax9x8qs5jgv5z5vyssskww57lw ``` + +### Show Validator Operator Address + +If an address has bonded to be a validator operator, then you could use `iriscli keys show` to get the operator's +address: + +```$xslt +iriscli keys show alice --bech val +``` + +Then you could see the following: +```$xslt +NAME: TYPE: ADDRESS: PUBKEY: +alice local fva12nda6xwpmp000jghyneazh4kkgl2tnzy73dmzy fvp1addwnpepqfw52vyzt9xgshxmw7vgpfqrey30668g36f9z837kj9dy68kn2wxqh3zvz9 +``` + +The result could be use for `--address-validator` in [create a delegation](../stake/delegate.md) \ No newline at end of file diff --git a/docs/cli-client/stake/delegate.md b/docs/cli-client/stake/delegate.md index 944692c31..b6229b957 100644 --- a/docs/cli-client/stake/delegate.md +++ b/docs/cli-client/stake/delegate.md @@ -27,3 +27,10 @@ iriscli stake delegate --help ``` iriscli stake delegate --chain-id= --from= --fee=0.004iris --amount=100iris --address-validator= ``` +> Note: bech32 prefix for validator address is `fva` + + +For example, if you want to delegate 10iris on fuxi-6000: +```$xslt +iriscli stake delegate --chain-id=fuxi-6000 --from=abc --fee=0.004iris --amount=10iris --address-validator=fva12zgt9hc5r5mnxegam9evjspgwhkgn4wzjxkvqy +``` \ No newline at end of file diff --git a/docs/cli-client/stake/unjail.md b/docs/cli-client/stake/unjail.md index ccbb2c881..9eca1d80b 100644 --- a/docs/cli-client/stake/unjail.md +++ b/docs/cli-client/stake/unjail.md @@ -2,7 +2,7 @@ ## Introduction -Unjail validator which may be jailed previously for downtime +In Proof-of-Stake blockchain, validators will get block provisions by staking their token. But if they failed to keep online, they will be punished by slashing a small portion of their staked tokens. The offline validators will be removed from the validator set and put into jail, which means their voting power is zero. During the jail period, these nodes are not event validator candidates . Once the jail period is end, they can send unjail transactions to free themselves and become validator candidates again. ## Usage @@ -22,3 +22,35 @@ iriscli stake unjail --help ``` iriscli stake unjail --from= --fee=0.004iris --chain-id= ``` +### Common Issue + +* Check the jailing time for this validator: + +```$xslt +iriscli stake signing-info fvp1zcjduepqewwc93xwvt0ym6prxx9ppfzeufs33flkcpu23n5eutjgnnqmgazsw54sfv --node=localhost:36657 --trust-node +``` +If your validator is jailed, it will tell the jailing time. + +``` +Start height: 565, index offset: 2, jailed until: 2018-12-12 06:46:37.274910287 +0000 UTC, missed blocks counter: 2 +``` + +If you do `unjail` before the jailing time, you will see the following error. + +```$xslt +ERROR: Msg 0 failed: {"codespace":10,"code":102,"abci_code":655462,"message":"validator still jailed, cannot yet be unjailed"} +``` + +After that jailing period, you could submit an `unjail` transaction. + +Sample output: +```$xslt +Committed at block 15016 (tx hash: 6FA77DA9334EF5FA4279FB8DBDDBAED5B4B8CEA672A41F63B7E62112296CB73F, response: {Code:0 Data:[] Log:Msg 0: Info: GasWanted:200000 GasUsed:4593 Tags:[{Key:[97 99 116 105 111 110] Value:[117 110 106 97 105 108] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0} {Key:[118 97 108 105 100 97 116 111 114] Value:[102 118 97 49 50 122 103 116 57 104 99 53 114 53 109 110 120 101 103 97 109 57 101 118 106 115 112 103 119 104 107 103 110 52 119 122 106 120 107 118 113 121] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0} {Key:[99 111 109 112 108 101 116 101 67 111 110 115 117 109 101 100 84 120 70 101 101 45 105 114 105 115 45 97 116 116 111] Value:[34 57 49 56 54 48 48 48 48 48 48 48 48 48 48 48 34] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0}] Codespace: XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0}) +{ + "tags": { + "action": "unjail", + "completeConsumedTxFee-iris-atto": "\"918600000000000\"", + "validator": "fva12zgt9hc5r5mnxegam9evjspgwhkgn4wzjxkvqy" + } + } +``` diff --git a/docs/cli-client/tendermint/README.md b/docs/cli-client/tendermint/README.md index d4022ceb2..f383ef6fc 100644 --- a/docs/cli-client/tendermint/README.md +++ b/docs/cli-client/tendermint/README.md @@ -1,27 +1,36 @@ -# iriscli tendermint +# iris tendermint ## Description -Tendermint state querying subcommands +This command will return some Tendermint related info to you. ## Usage -``` -iriscli tendermint [command] +```shell +iris tendermint [command] ``` ## Available Commands -| Name, shorthand | Description | -| --------------- | -------------------------- | -| [tx](tx.md) | Matches this txhash over all committed blocks | -| txs | Search for all transactions that match the given tags | -| [block](block.md)| Get verified data for a the block at given height | -| [validator-set](validator-set.md) | Get the full tendermint validator set at given height | - +| Name | Description | +| ----------------------- | -------------------------------------------------------------------------------------------- | +| [show-node-id](show-node-id.md) | | +| [show-validator](show-validator.md) | | +| [show-address](show-address.md) | | ## Flags -|Name, shorthand|Description| -|--- |--- | -|--help,-h |help for tendermint| +| Name, shorthand | Default | Description | Required | +| --------------- | ------- | ------------- | -------- | +| --help, -h | | Help for keys | | + +## Global Flags + +| Name, shorthand | Default | Description | Required | +| --------------- | -------------- | -------------------------------------- | -------- | +| --encoding, -e | hex | [string] Binary encoding (hex|b64|btc) | | +| --home | $HOME/.iriscli | [string] Directory for config and data | | +| --output, -o | text | [string] Output format (text|json) | | +| --trace | | Print out full stack trace on errors | | + + diff --git a/docs/cli-client/tendermint/show-address.md b/docs/cli-client/tendermint/show-address.md new file mode 100644 index 000000000..c41647041 --- /dev/null +++ b/docs/cli-client/tendermint/show-address.md @@ -0,0 +1,43 @@ +# iris tendermint show-address + +## Description + +Shows this node's tendermint validator address, this could be used for staking commands like: `iriscli stake validator` + +## Usage + +``` +iris tendermint show-address [flags] +``` + +## Flags + +| Name, shorthand | Default | Description | Required | +| -------------------- | ----------------- | -------------------------------------------------------------- | -------- | +| --help, -h | | help for show | | + +## Global Flags + +| Name,shorthand | Default | Description | Required | Type | +| --------------------- | -------------- | ------------------------------------------- | -------- | ------ | +| -e, --encoding string | hex | String Binary encoding (hex \|b64 \|btc ) | False | String | +| --home string | /root/.iriscli | Directory for config and data | False | String | +| -o, --output string | text | Output format (text \|json) | False | String | +| --trace | | Print out full stack trace on errors | False | | + +## Examples + +### Show Public Key of Your Node + +```shell +iris tendermint show-address --home={iris-home} +``` + +The sample output could be: +```$xslt +fva17vgjsua3309q6cvhpqcf8zstqxfjrumj4t26jh +``` + +The output is encoded in Bech32, to read more about this encoding method, read [this](../../features/basic-concepts/bech32-prefix.md) + +The result could be used to query a validators info. Read more [here](../stake/validator.md) \ No newline at end of file diff --git a/docs/cli-client/tendermint/show-node-id.md b/docs/cli-client/tendermint/show-node-id.md new file mode 100644 index 000000000..0798cd8bf --- /dev/null +++ b/docs/cli-client/tendermint/show-node-id.md @@ -0,0 +1,40 @@ +# iris tendermint show-node-id + +## Description + +Show the id of your node, this id will be used for making connection between peers. + +## Usage + +``` +iris tendermint show-node-id [flags] +``` + +## Flags + +| Name, shorthand | Default | Description | Required | +| -------------------- | ----------------- | -------------------------------------------------------------- | -------- | +| --help, -h | | help for show | | + +## Global Flags + +| Name,shorthand | Default | Description | Required | Type | +| --------------------- | -------------- | ------------------------------------------- | -------- | ------ | +| -e, --encoding string | hex | String Binary encoding (hex \|b64 \|btc ) | False | String | +| --home string | /root/.iriscli | Directory for config and data | False | String | +| -o, --output string | text | Output format (text \|json) | False | String | +| --trace | | Print out full stack trace on errors | False | | + +## Examples + +### Show Public Key of Your Node + +```shell +iris tendermint show-node-id --home={iris-home} +``` + +The sample output could be: +```$xslt +b18d3d1990c886555241f91331f9c00fe69421aa +``` + diff --git a/docs/cli-client/tendermint/show-validator.md b/docs/cli-client/tendermint/show-validator.md new file mode 100644 index 000000000..40857a48c --- /dev/null +++ b/docs/cli-client/tendermint/show-validator.md @@ -0,0 +1,42 @@ +# iris tendermint show-validator + +## Description + +Show the public key of your node + +## Usage + +``` +iris tendermint show-validator [flags] +``` + +## Flags + +| Name, shorthand | Default | Description | Required | +| -------------------- | ----------------- | -------------------------------------------------------------- | -------- | +| --json | | output in json format | | +| --help, -h | | help for show | | + +## Global Flags + +| Name,shorthand | Default | Description | Required | Type | +| --------------------- | -------------- | ------------------------------------------- | -------- | ------ | +| -e, --encoding string | hex | String Binary encoding (hex \|b64 \|btc ) | False | String | +| --home string | /root/.iriscli | Directory for config and data | False | String | +| -o, --output string | text | Output format (text \|json) | False | String | +| --trace | | Print out full stack trace on errors | False | | + +## Examples + +### Show Public Key of Your Node + +```shell +iris tendermint show-validator --home={iris-home} +``` + +The sample output could be: +```$xslt +fcp1zcjduepqzuz420weqehs3mq0qny54umfk5r78yup6twtdt7mxafrprms5zqszqtyn2 +``` + +The output is encoded in Bech32, to read more about this encoding method, read [this](../../features/basic-concepts/bech32-prefix.md) \ No newline at end of file diff --git a/docs/features/guardian.md b/docs/features/guardian.md new file mode 100644 index 000000000..4c5971aec --- /dev/null +++ b/docs/features/guardian.md @@ -0,0 +1,31 @@ +# Guardian User Guide + +## Introduction +IRISnet introduce two types of privileged system user controlled by foundations, the profiler and the trustee. + +* Profiler privileges[TODO] + 1. Submit software upgrade/halt proposal by governance. + 2. Invocate a service by profiling mode, under which service fees can be exempted. + +* Trustee privileges[TODO] + 1. To be the destination address if the usage type of a `TxTaxUsage` proposal is `Distribute` or `grant`. + 2. Send transaction to withdraw coins to an account from system service fee tax pool. + +## Usage Scenario +1. Add profiler + + Only a profiler can add a new one. + ```shell + iriscli guardian add-profiler --profiler-address=[profiler address] --profiler-name=[name] --chain-id=[chain-id] --from=[key name] --fee=0.004iris + ``` + +2. Query profiler and trustee list + + Query profiler list + ```shell + iriscli guardian profilers + ``` + Query trustee list + ```shell + iriscli guardian trustees + ``` \ No newline at end of file diff --git a/docs/get-started/Full-Node.md b/docs/get-started/Full-Node.md index b0914eefa..a31c2ff6a 100644 --- a/docs/get-started/Full-Node.md +++ b/docs/get-started/Full-Node.md @@ -9,10 +9,10 @@ These instructions are for setting up a brand new full node from scratch. First, initialize the node and create the necessary config files: ``` -iris init --name= --home=$IRISHOME +iris init --moniker= --home=$IRISHOME --chain-id= ``` -> Note: Only ASCII characters are supported for the `--name`. Using Unicode characters will render your node unreachable. +> Note: Only ASCII characters are supported for the `--moniker`. Using Unicode characters will render your node unreachable. The default \$IRISHOME is `~/.iris` , You can edit this `name` later, in the `~/.iris/config/config.toml` file: @@ -27,8 +27,8 @@ After intializing your node, please download the genesis file and the config fil cd $IRISHOME/config/ rm genesis.json rm config.toml -wget https://raw.githubusercontent.com/irisnet/testnets/master/fuxi/fuxi-5000/config/config.toml -wget https://raw.githubusercontent.com/irisnet/testnets/master/fuxi/fuxi-5000/config/genesis.json +wget https://raw.githubusercontent.com/irisnet/testnets/master/fuxi/fuxi-6000/config/config.toml +wget https://raw.githubusercontent.com/irisnet/testnets/master/fuxi/fuxi-56000/config/genesis.json ``` ## Edit Your Config File @@ -80,6 +80,6 @@ iriscli status ``` You could see the following ``` -{"node_info":{"id":"1c40d19d695721fc3e3ce44cbc3f446f038b36e4","listen_addr":"172.31.0.190:46656","network":"iris-stage-4","version":"0.22.6","channels":"4020212223303800","moniker":"name","other":["amino_version=0.10.1","p2p_version=0.5.0","consensus_version=v1/0.2.2","rpc_version=0.7.0/3","tx_index=on","rpc_addr=tcp://0.0.0.0:46657"]},"sync_info":{"latest_block_hash":"41117D8CB54FA54EFD8DEAD81D6D83BDCE0E63AC","latest_app_hash":"95D82B8AC8B64C4CD6F85C1D91F999C2D1DA4F0A","latest_block_height":"1517","latest_block_time":"2018-09-07T05:44:27.810641328Z","catching_up":false},"validator_info":{"address":"3FCCECF1A27A9CEBD394F3A0C5253ADAA8392EB7","pub_key":{"type":"tendermint/PubKeyEd25519","value":"wZp1blOEwJu4UuqbEmivzjUMO1UwUK4C0jRH96HhV90="},"voting_power":"100"}} +{"node_info":{"id":"1c40d19d695721fc3e3ce44cbc3f446f038b36e4","listen_addr":"172.31.0.190:26656","network":"fuxi-6000","version":"0.22.6","channels":"4020212223303800","moniker":"name","other":["amino_version=0.10.1","p2p_version=0.5.0","consensus_version=v1/0.2.2","rpc_version=0.7.0/3","tx_index=on","rpc_addr=tcp://0.0.0.0:46657"]},"sync_info":{"latest_block_hash":"41117D8CB54FA54EFD8DEAD81D6D83BDCE0E63AC","latest_app_hash":"95D82B8AC8B64C4CD6F85C1D91F999C2D1DA4F0A","latest_block_height":"1517","latest_block_time":"2018-09-07T05:44:27.810641328Z","catching_up":false},"validator_info":{"address":"3FCCECF1A27A9CEBD394F3A0C5253ADAA8392EB7","pub_key":{"type":"tendermint/PubKeyEd25519","value":"wZp1blOEwJu4UuqbEmivzjUMO1UwUK4C0jRH96HhV90="},"voting_power":"100"}} ``` If you see the `catching_up` is `false`, it means your node is fully synced with the network, otherwise your node is still downloading blocks. Once fully synced, you could upgrade your node to a validator node. The instructions is in [here](Validator-Node.md). \ No newline at end of file diff --git a/docs/get-started/Install-the-Software.md b/docs/get-started/Install-the-Software.md index b632c0f15..0c643e931 100644 --- a/docs/get-started/Install-the-Software.md +++ b/docs/get-started/Install-the-Software.md @@ -22,17 +22,17 @@ Go to the download page: https://github.com/irisnet/irishub/releases/ -then get the release v0.7.0 on your computer. +then get the release v0.8.0 on your computer. `unzip -C /usr/local/bin iris$VERSION.$OS-$ARCH.zip` to `/usr/local/bin/ ` You can verify you have the right version installed by running the following commands: ``` $ iris version -v0.7.0 +v0.8.0 $ iriscli version -v0.7.0 +v0.8.0 ``` #### Compile Source Code @@ -95,7 +95,7 @@ Make sure that you can access to google.com for that our project used some libra mkdir -p $GOPATH/src/github.com/irisnet cd $GOPATH/src/github.com/irisnet git clone https://github.com/irisnet/irishub -cd irishub && git checkout v0.7.0 +cd irishub && git checkout v0.8.0 curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh make all ``` @@ -105,9 +105,9 @@ Now check your **Iris** version. ``` $ iris version -v0.7.0 +v0.8.0 $ iriscli version -v0.7.0 +v0.8.0 ``` ### How to Update @@ -118,7 +118,7 @@ Get latest code (you can also `git fetch` only the version desired), ensure the iris unsafe_reset_all --home cd $GOPATH/src/github.com/irisnet/irishub git fetch -a origin -git checkout v0.7.0 +git checkout v0.8.0 make get_vendor_deps make install ``` \ No newline at end of file diff --git a/docs/get-started/Validator-Node.md b/docs/get-started/Validator-Node.md index dd443172b..3735a60cd 100644 --- a/docs/get-started/Validator-Node.md +++ b/docs/get-started/Validator-Node.md @@ -8,7 +8,8 @@ Validators are responsible for committing new blocks to the blockchain through c ### Create Account -You need to get `iris` and `iriscli` installed first. Then, follow the instructions below to create a new account: +You need to get `iris` and `iriscli` installed first. Then, if you don't create an account before, follow the instructions below to create a new account. +And you could also use your account you created before. ``` iriscli keys add @@ -57,7 +58,7 @@ You should also be able to see `catching_up` is `false`. You need to get the public key of your node before upgrade your node to a validator node. The public key of your node starts with `fvp`, it can be used to create a new validator by staking tokens. To understand more about the address encoding in IRISHub, -please read this [doc](../features/basic-concepts/bech32-prefix.md) +please read this [doc](Bech32-on-IRISnet.md) You can find your validator's pubkey by running: @@ -66,25 +67,25 @@ iris tendermint show-validator --home= ``` Example output: ``` -fcp1zcjduepq9l2svsakh9946n42ljt0lxv0kpwrc4v9c2pnqhn9chnjmlvagansh7gfr7 +fvp1zcjduepqv7z2kgussh7ufe8e0prupwcm7l9jcn2fp90yeupaszmqjk73rjxq8yzw85 ``` -Next, use the output as `` field for `iriscli stake create-validator` command following [this](../cli-client/stake/create-validator.md). : +Next, use the output as `` field for `iriscli stake create-validator` command: ``` -iriscli stake create-validator --chain-id= --from= --fee=0.004iris --pubkey= --commission-max-change-rate=0.01 --commission-max-rate=0.2 --commission-rate=0.1 --amount=100iris --moniker= +iriscli stake create-validator --amount=XXiris --pubkey= --moniker= --fee=0.05iris --gas=2000000 --chain-id=fuxi-6000 --node=http://localhost:26657 ``` Please note the **fee** can be the **decimal** of IRIS token, like `0.01iris`. And you could also use other coin-type like `iris-milli` -To read more about fee mechanism in IRISHub, go to this [doc](../) +To read more about fee mechanism in IRISHub, go to this [doc](../modules/fee-token/Fee.md) In this way, to stake 1IRIS, you need to do: ``` -iriscli stake create-validator --pubkey=pubkey --fee=0.05iris --gas=2000000 --from= --chain-id= --node=tcp://localhost:26657 --amount=1iris +iriscli stake create-validator --pubkey=pubkey --fee=0.05iris --gas=2000000 --from= --chain-id=fuxi-6000 --node=tcp://localhost:26657 --amount=1iris ``` -Don't forget the `fee` and `gas` field. To read more about coin-type in IRISHub, you should read [this](../features/basic-concepts/coin-type.md) +Don't forget the `fee` and `gas` field. To read more about coin-type in IRISHub, you should read [this](../zh/modules/coin/README.md) @@ -93,10 +94,10 @@ Don't forget the `fee` and `gas` field. To read more about coin-type in IRISHub View the validator's information with this command: ``` -iriscli stake validator --chain-id= --node=tcp://localhost:26657 +iriscli stake validator --chain-id=fuxi-6000 --node=tcp://localhost:26657 ``` -The `` is your account address that starts with 'fva1' +The `` is your account address that starts with 'faa1' ### Confirm Your Validator is Running @@ -112,22 +113,22 @@ You should also be able to see your power is above 0 if your bonded toke is in t ### Edit Validator Description -You can edit your validator's public description following [this](../cli-client/stake/edit-validator.md). This info is to identify your validator, and will be relied on by delegators to decide which validators to stake to. Make sure to provide input for every flag below, otherwise the field will default to empty (`--moniker`defaults to the machine name). +You can edit your validator's public description. This info is to identify your validator, and will be relied on by delegators to decide which validators to stake to. Make sure to provide input for every flag below, otherwise the field will default to empty (`--moniker`defaults to the machine name). You should put your name of your team in `details`. ``` -iriscli stake edit-validator --chain-id= --from= --fee=0.004iris --moniker= --details=
- +iriscli stake edit-validator --from= < name > --moniker="choose a moniker" --website="https://irisnet.org" --details="team" --chain-id=fuxi-6000 + --details="details"--node=tcp://localhost:26657 --fee=0.04iris --gas=2000000 ``` ### View Validator Description View the validator's information with this command: ``` -iriscli stake validator --chain-id= +iriscli stake validator --chain-id=fuxi-6000 ``` ### Use IRISPlorer -You should also be able to see your validator on the [Explorer](https://testnet.irisplorer.io). \ No newline at end of file +You should also be able to see your validator on the [Explorer](https://testnet.irisplorer.io). You are looking for the `bech32` encoded `address` in the `~/.iris/config/priv_validator.json` file. diff --git a/docs/introduction/README.md b/docs/introduction/README.md index b3ee22510..cf46614ed 100644 --- a/docs/introduction/README.md +++ b/docs/introduction/README.md @@ -1,12 +1,15 @@ -# IRIS Network +# Introduction -The IRIS network is an internet of blockchains intended to provide a technology foundation that facilitates construction of distributed business applications. +## IRIS Network +The IRIS network is an internet of blockchains intended to provide a technology foundation that facilitates construction of distributed business applications. ![Figure of IRIS Network](https://github.com/irisnet/irisnet/blob/master/images/chap2-1.png?raw=true) The IRIS network is part of the larger Cosmos network -- all zones in the network would be able to interact with any other zone in the Cosmos network over the standard IBC protocol. By introducing a layer of service semantics into the network, we are going to provide an innovative solution that enables a whole new set of business scenarios, which would result in an increase in scale and diversity of the Cosmos network. -# IRIS Hub + +## IRIS Hub + At the "center" of the IRIS network is a blockchain known as the *IRIS Hub*, which is a Proof-of-Stake (PoS) blockchain built on Cosmos SDK and Tendermint. It will be the first regional hub that connects to the Cosmos Hub as one of its zones. The IRIS hub is equipped with a service protocol that coordinates on-chain transaction processing with off-chain data processing and business logic execution. We have also enhanced the IBC protocol to facilitate cross-chain invocation of those off-chain services, if so desired. @@ -14,38 +17,19 @@ The service protocol and enhanced IBC protocol could eventually be contributed b Client-facing, programming language specific SDKs will also be available to make it easy to provide and consume off-chain services within the IRIS network. -# IRIS Tokens + +## IRIS Tokens The IRIS hub has its own native token known as *IRIS*. It is designed to serve three purposes in the network. -* **Staking.** Similar to the ATOM token in the Cosmos Hub, the IRIS token will be used as a staking token to secure the PoS blockchain. +* **Staking** Similar to the ATOM token in the Cosmos Hub, the IRIS token will be used as a staking token to secure the PoS blockchain. -* **Transaction Fee.** The IRIS token will also be used to pay fees for all transactions in the IRIS network. +* **Transaction Fee** The IRIS token will also be used to pay fees for all transactions in the IRIS network. -* **Service Fee.** It is required that service providers in the IRIS network charge service fees denominated in the IRIS token. +* **Service Fee** It is required that service providers in the IRIS network charge service fees denominated in the IRIS token. It is intended that the IRIS network will eventually support all whitelisted fee tokens from the Cosmos network, which can be used to pay the transaction fees and service fees. -# IRIS Services +## IRIS Services *IRIS Services* (a.k.a. "iServices") are introduced to bridge the gap between the blockchain world and the conventional business application world, mediating the complete lifecycle of off-chain services -- from their definition, binding (provider registration), invocation, to their governance (profiling and arbitration). - -## Lifecycle - -* **Definition.** Definition of what an off-chain iService can do in terms of an Interface Definition Language (IDL) file. - -* **Binding.** Declaration of the location (address), pricing and QoS of a provider endpoint that implements a given iService definition. - -* **Invocation.** Handling of consumer requests to and provider responses from a given iService provider endpoint. - -## Providers -*Providers* are network users who offer the implementation of one or more iService definitions and often act as *adaptors* of off-chain services and resources located in other public and consortium chains, as well as in enterprise legacy systems. Providers monitor and process incoming requests and send responses back to the network. A provider could at the same time act as a consumer by sending requests to other providers. As planned, providers would be required to charge a fee for any services they might offer, and the service fee, by default, would be priced in the IRIS token. - -## Consumers -*Consumers* are those users who consume iServices by sending requests to designated provider endpoints and receiving responses from providers in question. - -## Profilers -*Profilers* are special consumers who act on behalf of the IRIS Foundation Limited, a Hong Kong incorporated company limited by guarantee that takes the lead in building the IRIS network. Profilers are the sole users authorized to invoke iServices in the *profiling mode*, which is intended to help create and maintain objective provider profiles that consumers refer to for provider screening. - -## Arbitrators -*Arbitrators* are self-declared users who, working collectively, arbitrate consumer complaints against provider performance. The details about the arbitration mechanism are being actively worked on, please keep an eye on our [whitepaper](../resources/whitepaper-en.md). diff --git a/docs/introduction/irisnet-intro.md b/docs/introduction/irisnet-intro.md new file mode 100644 index 000000000..f01bab8c9 --- /dev/null +++ b/docs/introduction/irisnet-intro.md @@ -0,0 +1,51 @@ +# IRIS Network + +The IRIS network is an internet of blockchains intended to provide a technology foundation that facilitates construction of distributed business applications. + +![Figure of IRIS Network](https://github.com/irisnet/irisnet/blob/master/images/chap2-1.png?raw=true) + +The IRIS network is part of the larger Cosmos network -- all zones in the network would be able to interact with any other zone in the Cosmos network over the standard IBC protocol. By introducing a layer of service semantics into the network, we are going to provide an innovative solution that enables a whole new set of business scenarios, which would result in an increase in scale and diversity of the Cosmos network. + +# IRIS Hub + +At the "center" of the IRIS network is a blockchain known as the *IRIS Hub*, which is a Proof-of-Stake (PoS) blockchain built on Cosmos SDK and Tendermint. It will be the first regional hub that connects to the Cosmos Hub as one of its zones. The IRIS hub is equipped with a service protocol that coordinates on-chain transaction processing with off-chain data processing and business logic execution. We have also enhanced the IBC protocol to facilitate cross-chain invocation of those off-chain services, if so desired. + +The service protocol and enhanced IBC protocol could eventually be contributed back into Cosmos SDK, allowing SDK users to develop blockchains that are compatible with the IRIS network. + +Client-facing, programming language specific SDKs will also be available to make it easy to provide and consume off-chain services within the IRIS network. + +# IRIS Tokens + +The IRIS hub has its own native token known as *IRIS*. It is designed to serve three purposes in the network. + +* **Staking** Similar to the ATOM token in the Cosmos Hub, the IRIS token will be used as a staking token to secure the PoS blockchain. + +* **Transaction Fee** The IRIS token will also be used to pay fees for all transactions in the IRIS network. + +* **Service Fee** It is required that service providers in the IRIS network charge service fees denominated in the IRIS token. + +It is intended that the IRIS network will eventually support all whitelisted fee tokens from the Cosmos network, which can be used to pay the transaction fees and service fees. + +# IRIS Services + +*IRIS Services* (a.k.a. "iServices") are introduced to bridge the gap between the blockchain world and the conventional business application world, mediating the complete lifecycle of off-chain services -- from their definition, binding (provider registration), invocation, to their governance (profiling and arbitration). + +## Lifecycle + +* **Definition** Definition of what an off-chain iService can do in terms of an Interface Definition Language (IDL) file. + +* **Binding** Declaration of the location (address), pricing and QoS of a provider endpoint that implements a given iService definition. + +* **Invocation** Handling of consumer requests to and provider responses from a given iService provider endpoint. + +## Providers +*Providers* are network users who offer the implementation of one or more iService definitions and often act as *adaptors* of off-chain services and resources located in other public and consortium chains, as well as in enterprise legacy systems. Providers monitor and process incoming requests and send responses back to the network. A provider could at the same time act as a consumer by sending requests to other providers. As planned, providers would be required to charge a fee for any services they might offer, and the service fee, by default, would be priced in the IRIS token. + +## Consumers +*Consumers* are those users who consume iServices by sending requests to designated provider endpoints and receiving responses from providers in question. + +## Profilers +*Profilers* are special consumers who act on behalf of the IRIS Foundation Limited, a Hong Kong incorporated company limited by guarantee that takes the lead in building the IRIS network. Profilers are the sole users authorized to invoke iServices in the *profiling mode*, which is intended to help create and maintain objective provider profiles that consumers refer to for provider screening. + +## Arbitrators +*Arbitrators* are self-declared users who, working collectively, arbitrate consumer complaints against provider performance. The details about the arbitration mechanism are being actively worked on, please keep an eye on our [whitepaper](resources/whitepaper-en.md). diff --git a/docs/software/README.md b/docs/software/README.md new file mode 100644 index 000000000..aacfac5d0 --- /dev/null +++ b/docs/software/README.md @@ -0,0 +1,7 @@ +# IRIShub + +IRIShub is a blockchain software based on [Tendermint](https://github.com/tendermint/tendermint) consensus engine. +A blockchain application is just a BFT partial-synchronized replicated deterministic state machine. As a application, +IRIShub define the messages that trigger state transitions of its state machine , + and Tendermint will handle replication over the network. If you want to learn more about how to build an IRIShub application and get a deepeer understanding of the concepts , please + join Fuxi testnet. \ No newline at end of file diff --git a/docs/software/cli-client.md b/docs/software/cli-client.md index b9b8daeac..0d7b33114 100644 --- a/docs/software/cli-client.md +++ b/docs/software/cli-client.md @@ -4,6 +4,8 @@ `iriscli` is a client for the IRISnet network. IRISnet users can use `iriscli` to send different transactions and query the blockchain data. +To know how the following sub commands actually work, go to this directory: [cli-client](../cli-client) + ## iriscli Work Directory The work directory for the `iriscli` is `$HOME/.iriscli`, which is mainly used to save configuration files and data. The IRISnet `key` data is saved in the work directory of `iriscli`. You can also specify the `iriscli` work directory by `--home`. diff --git a/docs/software/light-client.md b/docs/software/light-client.md index 533e04638..44a2e9dd5 100644 --- a/docs/software/light-client.md +++ b/docs/software/light-client.md @@ -2,7 +2,7 @@ ## Introduction -A IRISLCD node is a light node of IRISHUB. Unlike IRISHUB full node, it won't store all blocks and execute all transactions, which means it only requires minimal bandwidth, computing and storage resource. In distrust mode, it will track the evolution of validator set change and require full nodes to return consensus proof and merkle proof. Unless validators with more than 2/3 voting power do byzantine behavior, then IRISLCD proof verification algorithm can detect all potential malicious data, which means an IRISLCD node can provide the same security as full nodes. +A IRISLCD node is a light node of IRISHUB. Unlike a full node, it won't store all blocks and execute all transactions, which means it only requires minimal bandwidth, computing and storage resource. In distrust mode, it will track the evolution of validator set change and require full nodes to return consensus proof and merkle proof. Unless validators with more than 2/3 voting power do byzantine behavior, then IRISLCD proof verification algorithm can detect all potential malicious data, which means an IRISLCD node can provide the same security as full nodes. The default home folder of irislcd is `$HOME/.irislcd`. Once an IRISLCD is started, it will create two directories: `keys` and `trust-base.db`.The keys store db locates in `keys`. `trust-base.db` stores all trusted validator set and other verification related files. diff --git a/docs/software/node.md b/docs/software/node.md index ecd5843eb..06cbf7524 100644 --- a/docs/software/node.md +++ b/docs/software/node.md @@ -36,9 +36,18 @@ This commond will generate the transaction in the directory:{path_to_your_home ### Config genesis -Manually modify the genesis.json file to assign the initial account balance to the above validator operator account, such as: 150 iris +Use the following command to modify the genesis.json file to assign the initial account balance to the above validator operator account, such as: 150 iris +```$xslt + +iris add-genesis-account faa13t6jugwm5uu3h835s5d4zggkklz6rpns59keju 150iris + +``` + +Then you could see the account info has been added to genesis.json. + ```json - "accounts": [ + { + "accounts":[ { "address": "faa13t6jugwm5uu3h835s5d4zggkklz6rpns59keju", "coins": [ @@ -50,7 +59,8 @@ Manually modify the genesis.json file to assign the initial account balance to t "sequence_number": "0", "account_number": "0" } - ], + ] + } ``` Configuring validator information diff --git a/docs/zh/cli-client/README.md b/docs/zh/cli-client/README.md index 2cb742d9c..3e7d40057 100644 --- a/docs/zh/cli-client/README.md +++ b/docs/zh/cli-client/README.md @@ -2,7 +2,7 @@ ## 查询命令的flags -| 名称, 速记 | 类型 |必需 |默认值 | 描述 | +| 名称, 缩写 | 类型 |必需 |默认值 | 描述 | | --------------- | ---- | -------- | --------------------- | -------------------------------------------------------------------- | | --chain-id | string | false | "" | Tendermint节点的Chain ID | | --height | int | false | 0 | 查询某个高度的区块链数据,如果是0,这返回最新的区块链数据 | @@ -17,7 +17,7 @@ ## 发送交易命令的flags -| 名称, 速记 | 类型 |必需 |默认值 | 描述 | +| 名称, 缩写 | 类型 |必需 |默认值 | 描述 | | -----------------| ----- | -------- | --------------------- | ------------------------------------------------------------------- | | --account-number | int | false | 0 | 发起交易的账户的编号 | | --async | bool | false | false | 是否异步广播交易 | diff --git a/docs/zh/cli-client/bank/README.md b/docs/zh/cli-client/bank/README.md index e6cf5daf3..3a37c5b21 100644 --- a/docs/zh/cli-client/bank/README.md +++ b/docs/zh/cli-client/bank/README.md @@ -23,13 +23,13 @@ Bank模块允许你管理你本地账户的资产。 ## 标志 -| 命令,速记 | 默认值 | 描述 | 是否必须 | +| 命令,缩写 | 默认值 | 描述 | 是否必须 | | ---------- | ------ | ------------ | -------- | | -h, --help | | Bank模块帮助 | 否 | ## 全局标志 -| 命令,速记 | 默认值 | 描述 | 是否必须 | +| 命令,缩写 | 默认值 | 描述 | 是否必须 | | --------------------- | -------------- | ----------------------------------- | -------- | | -e, --encoding string | hex | 字符串二进制编码 (hex \|b64 \|btc ) | 否 | | --home string | /root/.iriscli | 配置和数据存储目录 | 否 | diff --git a/docs/zh/cli-client/bank/account.md b/docs/zh/cli-client/bank/account.md index 5a36c881a..1b392ac90 100644 --- a/docs/zh/cli-client/bank/account.md +++ b/docs/zh/cli-client/bank/account.md @@ -14,7 +14,7 @@ iriscli bank account [address] [flags] ## 标志 -| 命令,速记 | 类型 | 是否必须 | 默认值 | 描述 | +| 命令,缩写 | 类型 | 是否必须 | 默认值 | 描述 | | ------------ | ------ | -------- | --------------------- | ----------------------------------------- | | -h, --help | | 否 | | 打印帮助信息 | | --chain-id | String | 否 | | tendermint 节点网络ID | @@ -27,7 +27,7 @@ iriscli bank account [address] [flags] ## 全局标志 -| 命令,速记 | 默认值 | 描述 | 是否必须 | +| 命令,缩写 | 默认值 | 描述 | 是否必须 | | --------------------- | -------------- | ----------------------------------- | -------- | | -e, --encoding string | hex | 字符串二进制编码 (hex \|b64 \|btc ) | 否 | | --home string | $HOME/.iriscli | 配置和数据存储目录 | 否 | diff --git a/docs/zh/cli-client/bank/coin-type.md b/docs/zh/cli-client/bank/coin-type.md index 982db552d..f6d7e19dd 100644 --- a/docs/zh/cli-client/bank/coin-type.md +++ b/docs/zh/cli-client/bank/coin-type.md @@ -14,7 +14,7 @@ ## 标志 -| 命令,速记 | 类型 | 是否必须 | 默认值 | 描述 | +| 命令,缩写 | 类型 | 是否必须 | 默认值 | 描述 | | ------------ | ------ | -------- | --------------------- | ----------------------------------------- | | -h, --help | | 否 | | 帮助 | | --chain-id | String | 否 | | tendermint 节点网络ID | @@ -28,7 +28,7 @@ ## 全局标志 -| 命令,速记 | 默认值 | 描述 | 是否必须 | +| 命令,缩写 | 默认值 | 描述 | 是否必须 | | --------------------- | -------------- | ----------------------------------- | -------- | | -e, --encoding string | hex | 字符串二进制编码 (hex \|b64 \|btc ) | 否 | | --home string | /root/.iriscli | 配置和数据存储目录 | 否 | diff --git a/docs/zh/cli-client/gov/README.md b/docs/zh/cli-client/gov/README.md index fbdfd45e5..9a0ebf170 100644 --- a/docs/zh/cli-client/gov/README.md +++ b/docs/zh/cli-client/gov/README.md @@ -3,9 +3,10 @@ ## 描述 该模块提供如下所述的基本功能: -1.关于案文的连锁治理提案 -2.关于参数变化的链式治理建议 -3.关于软件升级的链式治理建议 + +* 关于案文的连锁治理提案 +* 关于参数变化的链式治理建议 +* 关于软件升级的链式治理建议 ## 使用方式 @@ -37,6 +38,6 @@ iriscli distribution --help ## 补充描述 -1.任何用户都可以存入一些令牌来发起提案。存款达到一定值min_deposit后,进入投票期,否则将保留存款期。其他人可以在存款期内存入提案。一旦存款总额达到min_deposit,输入投票期。但是,如果冻结时间超过存款期间的max_deposit_period,则提案将被关闭。 -2.进入投票期的提案只能由验证人和委托人投票。未投票的代理人的投票将与其验证人的投票相同,并且投票的代理人的投票将保留。到达“voting_period”时,票数将被计算在内。 -3.关于投票建议的更多细节:[CosmosSDK-Gov-spec](https://github.com/cosmos/cosmos-sdk/blob/develop/docs/spec/governance/overview.md) +* 任何用户都可以存入一些令牌来发起提案。存款达到一定值min_deposit后,进入投票期,否则将保留存款期。其他人可以在存款期内存入提案。一旦存款总额达到min_deposit,输入投票期。但是,如果冻结时间超过存款期间的max_deposit_period,则提案将被关闭。 +* 进入投票期的提案只能由验证人和委托人投票。未投票的代理人的投票将与其验证人的投票相同,并且投票的代理人的投票将保留。到达“voting_period”时,票数将被计算在内。 +* 关于投票建议的更多细节:[feature-governance](../../features/governance.md) \ No newline at end of file diff --git a/docs/zh/cli-client/gov/deposit.md b/docs/zh/cli-client/gov/deposit.md index 9799ca73a..e9018009b 100644 --- a/docs/zh/cli-client/gov/deposit.md +++ b/docs/zh/cli-client/gov/deposit.md @@ -17,7 +17,7 @@ iriscli gov deposit --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | ---------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --deposit | | [string] 发起提议的保证金 | Yes | | --proposal-id | | [string] 充值保证金的提议ID | Yes | diff --git a/docs/zh/cli-client/gov/pull-params.md b/docs/zh/cli-client/gov/pull-params.md index cac787b3f..866324dc1 100644 --- a/docs/zh/cli-client/gov/pull-params.md +++ b/docs/zh/cli-client/gov/pull-params.md @@ -16,7 +16,7 @@ iriscli gov pull-params --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --path | $HOME/.iriscli | [string] iriscli home目录 diff --git a/docs/zh/cli-client/gov/query-deposit.md b/docs/zh/cli-client/gov/query-deposit.md index 51437efab..e2e1120af 100644 --- a/docs/zh/cli-client/gov/query-deposit.md +++ b/docs/zh/cli-client/gov/query-deposit.md @@ -16,7 +16,7 @@ iriscli gov query-deposit --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --depositor | | [string] bech32编码的存款人地址 | Yes | | --proposal-id | | [string] 提议ID | Yes | diff --git a/docs/zh/cli-client/gov/query-deposits.md b/docs/zh/cli-client/gov/query-deposits.md index ef0da3e43..f74a75087 100644 --- a/docs/zh/cli-client/gov/query-deposits.md +++ b/docs/zh/cli-client/gov/query-deposits.md @@ -16,7 +16,7 @@ iriscli gov query-deposits --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --proposal-id | | [string] 提议ID | Yes | diff --git a/docs/zh/cli-client/gov/query-params.md b/docs/zh/cli-client/gov/query-params.md index 1bffbcbe3..447faac19 100644 --- a/docs/zh/cli-client/gov/query-params.md +++ b/docs/zh/cli-client/gov/query-params.md @@ -16,7 +16,7 @@ iriscli gov query-params --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --key | | [string] 参数的键名称 | | | --module | | [string] 模块名称 | | diff --git a/docs/zh/cli-client/gov/query-proposal.md b/docs/zh/cli-client/gov/query-proposal.md index a332a4b73..63c64612e 100644 --- a/docs/zh/cli-client/gov/query-proposal.md +++ b/docs/zh/cli-client/gov/query-proposal.md @@ -17,7 +17,7 @@ iriscli gov query-proposal --help ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --proposal-id | | [string] 提议ID | Yes | ## 例子 diff --git a/docs/zh/cli-client/gov/query-proposals.md b/docs/zh/cli-client/gov/query-proposals.md index 2d1a25b0c..6bb1a0567 100644 --- a/docs/zh/cli-client/gov/query-proposals.md +++ b/docs/zh/cli-client/gov/query-proposals.md @@ -16,7 +16,7 @@ iriscli gov query-proposals --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --depositor | | [string] (可选)按存款人过滤 | | | --limit | | [string] (可选)限制最新[数量]提议。 默认为所有提议 | | diff --git a/docs/zh/cli-client/gov/query-tally.md b/docs/zh/cli-client/gov/query-tally.md index 66a083a3b..db5edfb20 100644 --- a/docs/zh/cli-client/gov/query-tally.md +++ b/docs/zh/cli-client/gov/query-tally.md @@ -17,7 +17,7 @@ iriscli gov query-tally --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --proposal-id | | [string] 提议ID | Yes | diff --git a/docs/zh/cli-client/gov/query-vote.md b/docs/zh/cli-client/gov/query-vote.md index b9e93a51c..f766c11c7 100644 --- a/docs/zh/cli-client/gov/query-vote.md +++ b/docs/zh/cli-client/gov/query-vote.md @@ -16,7 +16,7 @@ iriscli gov query-vote --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --proposal-id | | [string] 提议ID | Yes | | --voter | | [string] bech32编码的投票人地址 | Yes | diff --git a/docs/zh/cli-client/gov/query-votes.md b/docs/zh/cli-client/gov/query-votes.md index 97bae4270..3fab5864c 100644 --- a/docs/zh/cli-client/gov/query-votes.md +++ b/docs/zh/cli-client/gov/query-votes.md @@ -17,7 +17,7 @@ iriscli gov query-votes --help ## 标志 -| 名称, 速记 | 默认值 | 描述 | 是否必须 | +| 名称, 缩写 | 默认值 | 描述 | 是否必须 | | --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | --proposal-id | | [string] 提议ID | Yes | diff --git a/docs/zh/cli-client/stake/unjail.md b/docs/zh/cli-client/stake/unjail.md index abbad5ca5..86c191477 100644 --- a/docs/zh/cli-client/stake/unjail.md +++ b/docs/zh/cli-client/stake/unjail.md @@ -2,7 +2,10 @@ ## 介绍 -Unjail validator previously jailed for downtime + +在PoS网络中,验证人的收益主要来自于staking抵押获利,但是若他们不能保持在线,就会被当作一种作恶行为。系统会剥夺它作为验证人参与共识的资格。这样一来,它的状态会变成`jailed`,他们的投票权将立刻变为零。这种状态降持续一段时间。当jailed期结束,验证人节点的operator需要执行 +`unjail`操作来让节点的状态变为unjailed,再次成为候选验证人。 + ## 用法 @@ -16,12 +19,47 @@ iriscli stake unjail [flags] iriscli stake unjail --help ``` -## 特有flags +## 例子 + +### Unjail验证人节点 + +``` +iriscli stake unjail --from= --fee=0.004iris --chain-id= +``` +### 常见问题 + +* 检查这个验证人保持`jail`状态的截止时间: + +```$xslt +iriscli stake signing-info fvp1zcjduepqewwc93xwvt0ym6prxx9ppfzeufs33flkcpu23n5eutjgnnqmgazsw54sfv --node=localhost:36657 --trust-node +``` + +如果此验证人状态为`jailed`,那么你可以看到它的jail状态的截止时间 -没有特有的flags +``` +Start height: 565, index offset: 2, jailed until: 2018-12-12 06:46:37.274910287 +0000 UTC, missed blocks counter: 2 +``` -## 示例 +如果你在jail状态的截止时间前执行`unjail` 命令,你会看到以下错误: + +```$xslt +ERROR: Msg 0 failed: {"codespace":10,"code":102,"abci_code":655462,"message":"validator still jailed, cannot yet be unjailed"} +``` + +过了jail状态的截止时间后,你可以发送一个 `unjail` 交易. ``` iriscli stake unjail --from= --fee=0.004iris --chain-id= ``` + +输出: +```$xslt +Committed at block 15016 (tx hash: 6FA77DA9334EF5FA4279FB8DBDDBAED5B4B8CEA672A41F63B7E62112296CB73F, response: {Code:0 Data:[] Log:Msg 0: Info: GasWanted:200000 GasUsed:4593 Tags:[{Key:[97 99 116 105 111 110] Value:[117 110 106 97 105 108] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0} {Key:[118 97 108 105 100 97 116 111 114] Value:[102 118 97 49 50 122 103 116 57 104 99 53 114 53 109 110 120 101 103 97 109 57 101 118 106 115 112 103 119 104 107 103 110 52 119 122 106 120 107 118 113 121] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0} {Key:[99 111 109 112 108 101 116 101 67 111 110 115 117 109 101 100 84 120 70 101 101 45 105 114 105 115 45 97 116 116 111] Value:[34 57 49 56 54 48 48 48 48 48 48 48 48 48 48 48 34] XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0}] Codespace: XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0}) +{ + "tags": { + "action": "unjail", + "completeConsumedTxFee-iris-atto": "\"918600000000000\"", + "validator": "fva12zgt9hc5r5mnxegam9evjspgwhkgn4wzjxkvqy" + } + } +``` diff --git a/docs/zh/cli-client/status/README.md b/docs/zh/cli-client/status/README.md index 3c6dabf22..e124179aa 100644 --- a/docs/zh/cli-client/status/README.md +++ b/docs/zh/cli-client/status/README.md @@ -12,7 +12,7 @@ iriscli status [flags] ## 标志 -| 名称, 速记 | 默认值 | 描述 | 必需 | +| 名称, 缩写 | 默认值 | 描述 | 必需 | | --------------------- | --------------------- | ----------------------------------- | -------- | | --help, -h | | 状态命令帮助 | | | --node, -n | tcp://localhost:26657 | [string] 连接的节点 | | diff --git a/docs/zh/cli-client/upgrade/README.md b/docs/zh/cli-client/upgrade/README.md index bdde59d82..c80f84406 100644 --- a/docs/zh/cli-client/upgrade/README.md +++ b/docs/zh/cli-client/upgrade/README.md @@ -20,6 +20,6 @@ iriscli upgrade [command] ## 标志 -| 名称, 速记 | 默认值 | 描述 | 必需 | +| 名称, 缩写 | 默认值 | 描述 | 必需 | | --------------- | ------- | ---------------- | -------- | | --help, -h | | 升级命令帮助 | | diff --git a/docs/zh/cli-client/upgrade/submit-switch.md b/docs/zh/cli-client/upgrade/submit-switch.md index 0dc51c6a2..1c5fe545e 100644 --- a/docs/zh/cli-client/upgrade/submit-switch.md +++ b/docs/zh/cli-client/upgrade/submit-switch.md @@ -16,7 +16,7 @@ iriscli upgrade submit-switch --help ``` ## 标志 -| 名称, 速记 | 默认值 | 描述 | 必需 | +| 名称, 缩写 | 默认值 | 描述 | 必需 | | --------------- | --------- | ------------------------------------------------------------ | -------- | | --proposalID | | 软件升级提议的ID | 是 | | --title | | switch消息对标题 | | diff --git a/docs/zh/features/guardian.md b/docs/zh/features/guardian.md new file mode 100644 index 000000000..e5c374a37 --- /dev/null +++ b/docs/zh/features/guardian.md @@ -0,0 +1,31 @@ +# Guardian User Guide + +## 简介 +IRISnet引入了两种由基金会控制的特权系统用户,profiler和trustee。 + +* Profiler的特权[TODO] + 1. 通过治理提交软件升级/停止提议。 + 2. 使用profiling模式发起服务调用,profiling模式会免除服务费。 + +* Trustee的特权[TODO] + 1. 如果`TxTaxUsage`提议的使用类型是`Distribution`或`Grant`,作为目的地地址。 + 2. 发送交易从系统服务费税池中提取代币到账户。 + +## 使用场景 +1. 添加profiler + + 只有profiler能添加新的profiler + ```shell + iriscli guardian add-profiler --profiler-address=[profiler address] --profiler-name=[name] --chain-id=[chain-id] --from=[key name] --fee=0.004iris + ``` + +2. 查询profiler和trustee列表 + + 查询profiler列表 + ```shell + iriscli guardian profilers + ``` + 查询trustee列表 + ```shell + iriscli guardian trustees + ``` \ No newline at end of file diff --git a/docs/zh/get-started/Full-Node.md b/docs/zh/get-started/Full-Node.md index dbf312c48..b7deeb6d8 100644 --- a/docs/zh/get-started/Full-Node.md +++ b/docs/zh/get-started/Full-Node.md @@ -2,7 +2,13 @@ ## 配置 -### 设置软件运行的目录 +### 初始化节点 + +通过执行以下操作完成节点的初始化: + +``` +iris init --moniker= --home=$IRISHOME --chain-id= +``` iris在运行过程中所依赖的配置文件和数据会存放在\$IRISHOME下,所以在运行iris前,需要指定一个目录作为\$IRISHOME。\$IRISHOME默认为:/Users/$user/.iris。 @@ -17,13 +23,13 @@ genesis文件中定义了区块链网络的初始状态,而config.toml指定 ``` cd $IRISHOME/config/ -wget https://raw.githubusercontent.com/irisnet/testnets/master/fuxi/fuxi-5000/config/config.toml -wget https://raw.githubusercontent.com/irisnet/testnets/master/fuxi/fuxi-5000/config/genesis.json +wget https://raw.githubusercontent.com/irisnet/testnets/master/fuxi/fuxi-6000/config/config.toml +wget https://raw.githubusercontent.com/irisnet/testnets/master/fuxi/fuxi-6000/config/genesis.json ``` ### 修改配置文件 在config.toml文件中可以配置以下信息: * 将`moniker`字段配置称为自定义的名称,这样便于区分不同的节点 -* `seed`字段用语设置种子节点,在fuxi-5000中的官方种子节点为: +* `seed`字段用语设置种子节点,在fuxi-6000中的官方种子节点为: ``` c16700520a810b270206d59f0f02ea9abd85a4fe@ts-1.bianjie.ai:26656 a12cfb2f535210ea12731f94a76b691832056156@ts-2.bianjie.ai:26656 @@ -56,7 +62,7 @@ iriscli status ``` 示例输出: ```json -{"node_info":{"id":"3fb472c641078eaaee4a4acbe32841f18967672c","listen_addr":"172.31.0.190:26656","network":"fuxi-5000","version":"0.22.6","channels":"4020212223303800","moniker":"name","other":["amino_version=0.10.1","p2p_version=0.5.0","consensus_version=v1/0.2.2","rpc_version=0.7.0/3","tx_index=on","rpc_addr=tcp://0.0.0.0:26657"]},"sync_info":{"latest_block_hash":"7B1168B2055B19F811773EEE56BB3C9ECB6F3B37","latest_app_hash":"B8F7F8BF18E3F1829CCDE26897DB905A51AF4372","latest_block_height":12567,"latest_block_time":"2018-08-25T11:33:13.164432273Z","catching_up":false},"validator_info":{"address":"CAF80DAEC0F4A7036DD2116B56F89B07F43A133E","pub_key":{"type":"AC26791624DE60","value":"Cl6Yq+gqZZY14QxrguOaZqAswPhluv7bDfcyQx2uSRc="},"voting_power":0}} +{"node_info":{"protocol_version":{"p2p":"4","block":"7","app":"0"},"id":"8dcf60b9166b4da757e40f6980bd9f9a7422ab4b","listen_addr":"tcp://0.0.0.0:36656","network":"fuxi-6000","version":"0.26.4","channels":"4020212223303800","moniker":"ford","other":{"tx_index":"on","rpc_address":"tcp://0.0.0.0:36657"}},"sync_info":{"latest_block_hash":"3DE2D74EACD66D9D70893A78326EC74B656DC7AD6987C5B8A812820C43E83948","latest_app_hash":"DA624B17D1E8B6024B530C27FE88F001169710112BC85B0168486891BC994706","latest_block_height":"12886","latest_block_time":"2018-12-12T03:46:51.048808535Z","catching_up":false},"validator_info":{"address":"D431C4FDB184C2FF3E85F4CF2E9DE60E3506F18E","pub_key":{"type":"tendermint/PubKeyEd25519","value":"y52CxM5i3k3oIzGKEKRZ4mEYp/bAeKjOmeLkicwbR0U="},"voting_power":"0"}} ``` 通过以上命令可以查看状态: diff --git a/docs/zh/get-started/Install-the-Software.md b/docs/zh/get-started/Install-the-Software.md index 4de4bfb7d..b7c69c7f0 100644 --- a/docs/zh/get-started/Install-the-Software.md +++ b/docs/zh/get-started/Install-the-Software.md @@ -28,10 +28,10 @@ tar -C /usr/local/bin -xzf iris$VERSION.$OS-$ARCH.zip ``` $ iris version -v0.7.0 +v0.8.0 $ iriscli version -v0.7.0 +v0.8.0 ``` #### 方法2:源码编译安装 @@ -88,7 +88,7 @@ source ~/.bash_profile mkdir -p $GOPATH/src/github.com/irisnet cd $GOPATH/src/github.com/irisnet git clone https://github.com/irisnet/irishub -cd irishub && git checkout v0.7.0 +cd irishub && git checkout v0.8.0 curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh make all ``` @@ -97,21 +97,21 @@ make all ``` $ iris version -v0.7.0 +v0.8.0 $ iriscli version -v0.7.0 +v0.8.0 ``` ### 如何升级IRISHub -通过执行一下命令可以完成IRISHub从v0.6.2到v0.7.0的升级 +通过执行一下命令可以完成IRISHub从v0.7.0到v0.8.0的升级 ``` iris unsafe_reset_all --home cd $GOPATH/src/github.com/irisnet/irishub git fetch -a origin rm Gopkg.lock -git checkout v0.7.0 +git checkout v0.8.0 make get_tools make get_vendor_deps make install diff --git a/docs/zh/get-started/Validator-Node.md b/docs/zh/get-started/Validator-Node.md index 8e421b4d6..feae33dab 100644 --- a/docs/zh/get-started/Validator-Node.md +++ b/docs/zh/get-started/Validator-Node.md @@ -1,6 +1,6 @@ # 运行一个验证人节点 -在配置验证人节点之前,请保证已经按照此[文档](Install-the-Software.md)正确安装了**Iris** +在配置验证人节点之前,请保证已经按照此[文档](Install-Iris.md)正确安装了**Iris** 在IRISHub枢纽中,验证人负责将交易打包并提交区块。成为一个验证人需要满足很多条件,不仅仅是技术和硬件上的投资。同时,因为只有在有限验证人的条件下,Tendermint才能发挥最大的作用。目前,我们将IRISHub枢纽的验证人上限定为100。也就是说只有前100个验证人能够获得奖励,而大部分IRIS持有者不会成为验证人而是通过委托的方式决定谁会成为验证人。 @@ -56,7 +56,7 @@ iriscli status --node=tcp://localhost:26657 ``` 若 `catching_up` 字段为 `false`那么你的节点就是同步的。 -你需要获取当前节点的公钥信息来执行以下操作,公钥信息以 `fvp`为首字节,想要了解更多的编码信息,请参考以下 [文档](../features/basic-concepts/bech32-prefix.md) +你需要获取当前节点的公钥信息来执行以下操作,公钥信息以 `fvp`为首字节,想要了解更多的编码信息,请参考以下 [文档](Bech32-on-IRISnet.md) 通过执行以下命令获得节点的公钥信息,公钥信息将以`fvp1`开头: @@ -65,19 +65,19 @@ iris tendermint show_validator --home= < IRIS-HOME > ``` 示例输出: ``` -fcp1zcjduepq9l2svsakh9946n42ljt0lxv0kpwrc4v9c2pnqhn9chnjmlvagansh7gfr7 +fvp1zcjduepqv7z2kgussh7ufe8e0prupwcm7l9jcn2fp90yeupaszmqjk73rjxq8yzw85 ``` 然后,使用以上输出作为`iriscli stake create-validator`命令的 `` 字段: ``` -iriscli stake create-validator --chain-id= --from= --fee=0.004iris --pubkey= --commission-max-change-rate=0.01 --commission-max-rate=0.2 --commission-rate=0.1 --amount=100iris --moniker= +iriscli stake create-validator --from={key-name} --amount=XXiris --pubkey={pubkey} --moniker={moniker} --fee=0.05iris --gas=2000000 --chain-id=fuxi-6000 --node=http://localhost:26657 ``` -> 注意:**amount** 应为整数, **Fee** 字段可以使用小数,例如`0.01iris` 。 +> 注意:**amount** 应为整数, **Fee** 字段可以使用小数,例如`0。01iris` 。 -也就是说,如果你想要抵押100IRIS,你可以执行以下操作: +也就是说,如果你想要抵押1IRIS,你可以执行以下操作: ``` -iriscli stake create-validator --chain-id= --from= --fee=0.004iris --pubkey= --commission-max-change-rate=0.01 --commission-max-rate=0.2 --commission-rate=0.1 --amount=100iris --moniker= +iriscli stake create-validator --pubkey=pubkey --fee=0.04iris --gas=2000000 --from={name} --chain-id=fuxi-6000 --node=tcp://localhost:26657 --amount=1iris ``` ### 查询验证人信息 @@ -85,10 +85,10 @@ iriscli stake create-validator --chain-id= --from= --fee=0.0 你可以通过以下命令查询验证人的信息: ``` -iriscli stake validator {address-validator-operator} --chain-id={chain-id} --node=tcp://localhost:26657 +iriscli stake validator < address-validator-operator > --chain-id=fuxi-6000 --node=tcp://localhost:26657 ``` -请注意 `{address-validator-operator}` 字段是以`fva1`为首字母。 +请注意 `` 字段是以`faa1`为首字母。 ### 确认验证人是否在线 @@ -107,7 +107,7 @@ iriscli status --node=tcp://localhost:26657 你应该在`details`字段注明自定义的信息。 ``` -iriscli stake edit-validator --from= {val-name} --moniker="choose a moniker" --website="https://irisnet.org" --details="team" --chain-id={chain-id} +iriscli stake edit-validator --from= < name > --moniker="choose a moniker" --website="https://irisnet.org" --details="team" --chain-id=fuxi-6000 --details="details"--node=tcp://localhost:26657 --fee=0.04iris --gas=2000000 ``` ### 查询验证人信息 @@ -115,9 +115,13 @@ iriscli stake edit-validator --from= {val-name} --moniker="choose a moniker" - 你可以通过以下命令查询验证人的信息: ``` -iriscli stake validator {address-validator-operator} --chain-id= +iriscli stake validator < address-validator-operator > --chain-id=fuxi-6000 ``` ### 使用浏览器:IRISPlorer 你可以通过[浏览器](https://testnet.irisplorer.io)确认验证人节点的运行状况。 + +### 部署IRISHub Monitor监控 + +请根据以下[链接](../../tools/Deploy-IRIS-Monitor.md) 部署一个Monitor监控验证人。 diff --git a/docs/zh/introduction/README.md b/docs/zh/introduction/README.md index 757e430f7..74d37ff29 100644 --- a/docs/zh/introduction/README.md +++ b/docs/zh/introduction/README.md @@ -1,4 +1,6 @@ -# IRIS网络 +# 简介 + +## IRIS网络 IRIS网络是一个区块链互联网,它旨在提供便于构建分布式商业应用程序的技术基础。 @@ -6,7 +8,8 @@ IRIS网络是一个区块链互联网,它旨在提供便于构建分布式商 IRIS网络是更大的Cosmos网络的一部分 - 网络中所有分区都能够通过标准IBC协议与Cosmos网络中的任何其他分区进行交互。通过在网络中引入一层服务语义,我们将提供一种创新的解决方案,支持全新的业务场景,从而增加Cosmos网络的规模和多样性。 -# IRIS枢纽 + +## IRIS枢纽 在IRIS网络的“中心”是一个称为 *IRIS枢纽* 的区块链,它是一个基于Cosmos SDK和Tendermint构建的Proof-of-Stake(PoS)区块链。它将成为第一个连接Cosmos枢纽的地区级枢纽。IRIS枢纽配备了服务协议,该协议将链上的交易处理与链下的数据处理和业务逻辑执行进行协调。我们还增强了IBC协议,以促进那些链下服务在有需要的情况下被跨链调用。 @@ -14,38 +17,21 @@ IRIS网络是更大的Cosmos网络的一部分 - 网络中所有分区都能够 我们也会提供面向客户的、针对特定编程语言的SDK,方便在IRIS网络内轻松提供和使用链下服务。 -# IRIS通证 + +## IRIS通证 IRIS枢纽有自己的原生通证,称为 *IRIS*。它旨在为网络中的三个目的服务。 -* **Staking。** 与Cosmos Hub中的ATOM通证类似,IRIS通证将用作Staking通证以保护PoS区块链的安全运行。 +* **权益抵押** 与Cosmos Hub中的ATOM通证类似,IRIS通证将用作Staking通证以保护PoS区块链的安全运行。 -* **交易费用。** IRIS通证也将用于支付IRIS网络中所有交易的费用。 +* **交易费用** IRIS通证也将用于支付IRIS网络中所有交易的费用。 -* **服务费。** IRIS网络中的服务提供者需要以IRIS通证为单位收取服务费。 +* **服务费** IRIS网络中的服务提供者需要以IRIS通证为单位收取服务费。 IRIS网络最终将支持来自Cosmos网络的所有列入白名单的费用通证,它们可用于支付交易费用和服务费用。 -# IRIS服务 - -引入 *IRIS服务*(又名“iServices”)的目标是弥合区块链世界与传统商业应用世界之间的鸿沟,居中协调链下服务的整个生命周期 - 从定义,绑定(提供者注册),调用,直到它们的治理(描画和仲裁)。 - -## 生命周期 - -* **定义。** 根据接口定义语言(IDL)文件定义链下iService可以做什么。 - -* **绑定。** 声明实现给​​定iService定义的提供者端点的位置(地址),定价和服务质量。 - -* **调用。** 处理针对给定iService提供者端点的消费者请求以及相应的提供者响应。 - -## 提供者 -*提供者* 是提供一个或多个iService定义实现的网络用户,通常充当位于其他公有链、联盟链以及企业现有系统中的链下服务和资源的 *适配器*。它们监听和处理传入的请求,并将响应发送回网络。提供者可以通过向其他提供者发送请求来同时充当消费者。按照计划,提供者将被要求为他们可能提供的服务收取费用,默认情况下,服务费将以IRIS通证定价。 -## 消费者 -*消费者* 是那些使用iServices的用户,他们向指定的提供者端点发送请求并接收相关提供者的响应。 -## 描画者 -*描画者* 是代表IRIS基金会行动的特殊消费者,作为注册在香港的非盈利机构,IRIS基金会牵头推进IRIS网络的建设。描画者是仅有的被授权以 *描画模式* 调用iServices的用户,该模式旨在帮助创建和维护客观的提供者“画像”,便于消费者筛选提供者时参考。 +## IRIS服务 -## 仲裁员 -*仲裁员* 是自我声明的一类用户,他们通过协作为消费者对提供者绩效的投诉进行仲裁。有关仲裁机制的细节正在积极设计中,请关注我们的[白皮书](resources/whitepaper-zh.md)。 +引入 *IRIS服务* 的目标是弥合区块链世界与传统商业应用世界之间的鸿沟,居中协调链下服务的整个生命周期 - 从定义,绑定(提供者注册),调用,直到它们的治理(描画和仲裁)。 diff --git a/docs/zh/introduction/irisnet-intro.md b/docs/zh/introduction/irisnet-intro.md new file mode 100644 index 000000000..8987b7a1a --- /dev/null +++ b/docs/zh/introduction/irisnet-intro.md @@ -0,0 +1,51 @@ +# IRIS网络 + +IRIS网络是一个区块链互联网,它旨在提供便于构建分布式商业应用程序的技术基础。 + +![IRIS网络图](https://github.com/irisnet/irisnet/blob/master/images/chap2-1.png?raw=true) + +IRIS网络是更大的Cosmos网络的一部分 - 网络中所有分区都能够通过标准IBC协议与Cosmos网络中的任何其他分区进行交互。通过在网络中引入一层服务语义,我们将提供一种创新的解决方案,支持全新的业务场景,从而增加Cosmos网络的规模和多样性。 + +# IRIS枢纽 + +在IRIS网络的“中心”是一个称为 *IRIS枢纽* 的区块链,它是一个基于Cosmos SDK和Tendermint构建的Proof-of-Stake(PoS)区块链。它将成为第一个连接Cosmos枢纽的地区级枢纽。IRIS枢纽配备了服务协议,该协议将链上的交易处理与链下的数据处理和业务逻辑执行进行协调。我们还增强了IBC协议,以促进那些链下服务在有需要的情况下被跨链调用。 + +服务协议和增强的IBC协议最终可以回馈到Cosmos SDK中,允许SDK用户开发与IRIS网络兼容的区块链。 + +我们也会提供面向客户的、针对特定编程语言的SDK,方便在IRIS网络内轻松提供和使用链下服务。 + +# IRIS通证 + +IRIS枢纽有自己的原生通证,称为 *IRIS*。它旨在为网络中的三个目的服务。 + +* **权益抵押** 与Cosmos Hub中的ATOM通证类似,IRIS通证将用作Staking通证以保护PoS区块链的安全运行。 + +* **交易费用** IRIS通证也将用于支付IRIS网络中所有交易的费用。 + +* **服务费** IRIS网络中的服务提供者需要以IRIS通证为单位收取服务费。 + +IRIS网络最终将支持来自Cosmos网络的所有列入白名单的费用通证,它们可用于支付交易费用和服务费用。 + +# IRIS服务 + +引入 *IRIS服务* 的目标是弥合区块链世界与传统商业应用世界之间的鸿沟,居中协调链下服务的整个生命周期 - 从定义,绑定(提供者注册),调用,直到它们的治理(描画和仲裁)。 + +## 生命周期 + +* **定义。** 根据接口定义语言(IDL)文件定义链下iService可以做什么。 + +* **绑定。** 声明实现给​​定iService定义的提供者端点的位置(地址),定价和服务质量。 + +* **调用。** 处理针对给定iService提供者端点的消费者请求以及相应的提供者响应。 + +## 提供者 +*提供者* 是提供一个或多个iService定义实现的网络用户,通常充当位于其他公有链、联盟链以及企业现有系统中的链下服务和资源的 *适配器*。它们监听和处理传入的请求,并将响应发送回网络。提供者可以通过向其他提供者发送请求来同时充当消费者。按照计划,提供者将被要求为他们可能提供的服务收取费用,默认情况下,服务费将以IRIS通证定价。 + +## 消费者 +*消费者* 是那些使用iServices的用户,他们向指定的提供者端点发送请求并接收相关提供者的响应。 + +## 描画者 +*描画者* 是代表IRIS基金会行动的特殊消费者,作为注册在香港的非盈利机构,IRIS基金会牵头推进IRIS网络的建设。描画者是仅有的被授权以 *描画模式* 调用iServices的用户,该模式旨在帮助创建和维护客观的提供者“画像”,便于消费者筛选提供者时参考。 + +## 仲裁员 +*仲裁员* 是自我声明的一类用户,他们通过协作为消费者对提供者绩效的投诉进行仲裁。有关仲裁机制的细节正在积极设计中,请关注我们的[白皮书](resources/whitepaper-zh.md)。 diff --git a/docs/zh/software/README.md b/docs/zh/software/README.md new file mode 100644 index 000000000..3d3553549 --- /dev/null +++ b/docs/zh/software/README.md @@ -0,0 +1,7 @@ +#IRIShub + +IRIS网络是一个区块链互联网,它旨在提供便于构建分布式商业应用程序的技术基础。 + +![IRIS网络图](https://github.com/irisnet/irisnet/blob/master/images/chap2-1.png?raw=true) + +IRIS网络是更大的Cosmos网络的一部分 - 网络中所有分区都能够通过标准IBC协议与Cosmos网络中的任何其他分区进行交互。通过在网络中引入一层服务语义,我们将提供一种创新的解决方案,支持全新的业务场景,从而增加Cosmos网络的规模和多样性。 diff --git a/docs/zh/software/cli-client.md b/docs/zh/software/cli-client.md index 1836183e4..daf816a5a 100644 --- a/docs/zh/software/cli-client.md +++ b/docs/zh/software/cli-client.md @@ -4,6 +4,8 @@ iriscli是参与IRISnet网络的客户端。IRISnet的用户都可以通过iriscli来发送各种不同的交易或者进行各种查询。 +有关`iriscli`的子命令的具体介绍在这个目录下:[cli-client](../cli-client) + ## iriscli目录 iriscli客户端的默认目录是`$HOME/.iriscli`,主要用来保存配置文件和数据。 IRISnet `key` 的数据就保存在iriscli的HOME目录下。也可以通过`--home`来指定客户端的HOME目录。 diff --git a/docs/zh/software/node.md b/docs/zh/software/node.md index c2e2a9adf..3d996cec8 100644 --- a/docs/zh/software/node.md +++ b/docs/zh/software/node.md @@ -8,7 +8,7 @@ iris可执行文件是运行IRISnet网络节点的入口,包括验证人节点 ### 初始化节点 -首先需要为自己创建对应的验证人账户 +首先需要为自己创建对应的验证人账户,如果之前已经创建了账户,可以重复使用。 ```bash iriscli keys add {account_name} ``` @@ -23,10 +23,11 @@ witness exotic fantasy gaze brass zebra adapt guess drip quote space payment far ``` 初始化genesis.json和config.toml等配置文件 + ```bash iris init --home={path_to_your_home} --chain-id={your_chain_id} ``` -该命令会在home目录下创建相应文件 +该命令会在home目录下创建相应文件。 创建申请成为验证人的交易,并使用刚才创建的验证人账户对交易进行签名 ```bash @@ -36,9 +37,18 @@ iris gentx --name={account_name} --home={path_to_your_home} ### 配置genesis -手动修改genesis.json文件,为上述验证人账户分配初始账户余额,如:150个iris +使用如下命令修改`home`目录下的`genesis.json` + +```bash + +iris add-genesis-account faa13t6jugwm5uu3h835s5d4zggkklz6rpns59keju 150iris + +``` + +然后你可以发现genesis.json文件中为上述验证人账户分配初始账户余额,如:150个iris ```json - "accounts": [ + { + "accounts": [ { "address": "faa13t6jugwm5uu3h835s5d4zggkklz6rpns59keju", "coins": [ @@ -50,7 +60,8 @@ iris gentx --name={account_name} --home={path_to_your_home} "sequence_number": "0", "account_number": "0" } - ], + ] + } ``` 配置验证人信息